自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Linux 中使用 fsck 命令檢查和修復(fù)文件系統(tǒng)錯(cuò)誤

系統(tǒng) Linux
fsck(file system check,文件系統(tǒng)檢查)用于處理可能損壞的文件系統(tǒng),本文對(duì)該命令做個(gè)簡(jiǎn)單介紹。

一般來(lái)說(shuō),有這么幾種情況,你可能會(huì)用到 fsck 命令:系統(tǒng)無(wú)法啟動(dòng),設(shè)備(外部驅(qū)動(dòng)器或存儲(chǔ)設(shè)備)運(yùn)行不正常,或者有文件損壞的情況等。 fsck 實(shí)際上是許多文件系統(tǒng)特定檢查器的“前端”,比如 fsck.vfat, fsck.ext2 等。使用 fsck 的時(shí)候不需要指定具體使用的是哪個(gè)檢查器。

fsck 命令簡(jiǎn)介

fsck 命令與大多數(shù) Linux 命令的結(jié)構(gòu)相同,如下為其使用方式:

fsck [options] [filesystem]

如果未指定文件系統(tǒng),系統(tǒng)將分析你的 fstab 文件(/etc/fstab)以查找要掃描的設(shè)備。另外,需要使用 root 用戶(hù)或者 sudo 來(lái)運(yùn)行該命令。

我們可以使用 fdisk 或 df 命令列出 Linux 中的硬盤(pán)驅(qū)動(dòng)器,然后就可以使用 fsck 命令來(lái)指定要檢查的設(shè)備了。

Disk /dev/nvme0n1: 238.49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: THNSN5256GPUK NVMe TOSHIBA 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 014A45DC-22A2-4FC0-BEEA-25A6F2406380Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 98563270 97512647 46.5G Linux filesystem
/dev/nvme0n1p3 98564096 500117503 401553408 191.5G Linux filesystem

在運(yùn)行 fsck 之前卸載設(shè)備

不要在已安裝或掛載的設(shè)備上運(yùn)行 fsck,否則的話(huà)會(huì)損壞文件。所以在運(yùn)行 fsck 之前需要先卸載設(shè)備。

如果你嘗試在已安裝的設(shè)備上運(yùn)行 fsck,會(huì)看到如下錯(cuò)誤:

$ sudo fsck /dev/sda3
fsck from util-linux 2.34
e2fsck 1.45.5 (07-Jan-2020)
/dev/sda3 is mounted.
e2fsck: Cannot continue, aborting.

而在正常的驅(qū)動(dòng)器上運(yùn)行 fsck,輸出是這樣的:

$ sudo fsck /dev/sda2
fsck from util-linux 2.34
fsck.fat 4.1 (2017-01-24)
/dev/sda2: 5 files, 1967/1972 clusters

雖然 fsck 命令接受設(shè)備名稱(chēng)(比如 /dev/sda)作為參數(shù),但是你可以選擇輸入 UUID,以免將已安裝的和卸載的設(shè)備混淆。UUID是分配給設(shè)備的固定值,不會(huì)受這些系統(tǒng)更改的影響。

fsck 命令的退出代碼

如下是使用 fsck 檢查磁盤(pán)后返回的一個(gè)代碼列表。如果分析一個(gè)磁盤(pán),退出代碼是這些代碼的總和,如果在多個(gè)設(shè)備上使用 fsck,那么返回的是兩個(gè)和的邏輯或(OR,||)。

  • 0 - 沒(méi)有報(bào)錯(cuò);
  • 1 - 文件系統(tǒng)錯(cuò)誤已更正;
  • 2 - 應(yīng)重新啟動(dòng)系統(tǒng);
  • 4 - 未更正的文件系統(tǒng)錯(cuò)誤;
  • 8 - 操作錯(cuò)誤;
  • 16 - 用法或語(yǔ)法錯(cuò)誤;
  • 32 - 用戶(hù)請(qǐng)求取消了 fsck
  • 128 - 共享庫(kù)錯(cuò)誤。

你可以使用 echo $? 來(lái)檢查上次運(yùn)行命令的退出代碼。

fsck 命令的應(yīng)用

上述我們對(duì) fsck 做了一個(gè)基本的介紹,下面我們來(lái)看看這個(gè)命令的使用。

修復(fù)USB磁盤(pán)和其他可移動(dòng)設(shè)備

作為演示,我們假定有問(wèn)題(待檢查)的設(shè)備為 /dev/sdb。 首先,我們需要確保驅(qū)動(dòng)器已卸載:

sudo umount /dev/sdb

然后運(yùn)行 fsck 命令:

sudo fsck /dev/sdb

檢查是否有錯(cuò)誤輸出,如果沒(méi)有顯示任何信息,可使用 echo $? 來(lái)檢查退出代碼。

我們可以添加一些選項(xiàng),允許命令進(jìn)行自動(dòng)更正。但是這些命令沒(méi)有進(jìn)行標(biāo)準(zhǔn)化,所以在使用前需要驗(yàn)證文件系統(tǒng)并比較 man 手冊(cè)中的描述信息。 盡管如此,通常我們可以使用 -p 選項(xiàng)來(lái)讓 fsck 自動(dòng)修復(fù):

sudo fsck -p /dev/sdb

類(lèi)似的,-y 選項(xiàng)可以對(duì)檢測(cè)到的任何損壞的文件系統(tǒng)進(jìn)行更正。

修復(fù)根文件系統(tǒng)

當(dāng)系統(tǒng)處于活動(dòng)(active)狀態(tài)時(shí),我們無(wú)法卸載 root 分區(qū)。如果我們懷疑主文件系統(tǒng)已損壞,那就需要使用其他的方法了。

對(duì)于這種情況,有幾個(gè)方案可以使用。比如可以在系統(tǒng)啟動(dòng)時(shí),在救援模式(rescue mode)下運(yùn)行 fsck,或者使用恢復(fù)主題的引導(dǎo)盤(pán)(recovery-themed live cd)。

許多 Linux 發(fā)行版,在經(jīng)過(guò)幾次系統(tǒng)啟動(dòng)失敗后,重新啟動(dòng)時(shí)會(huì)自動(dòng)強(qiáng)制 fsck。如果你喜歡自己動(dòng)手,可以手動(dòng)設(shè)置“幾次”這個(gè)數(shù)值。 大多數(shù)現(xiàn)代 Linux 版本都有一個(gè)名為 tune2fs 的工具,假如你的 root 設(shè)備為 /dev/sda,可以使用如下命令:

sudo tune2fs -c 1 /dev/sda

上述命令是對(duì)系統(tǒng)設(shè)置的更改,設(shè)置為每 n 次(上述例子中為1)引導(dǎo)(系統(tǒng)啟動(dòng)),運(yùn)行一次 fsck。你還可以將其設(shè)置為標(biāo)準(zhǔn)的時(shí)間間隔,單位可以設(shè)置為天、周或月。 假如我們希望在任何時(shí)間啟動(dòng)系統(tǒng)時(shí),如果一周內(nèi)沒(méi)有檢查,就運(yùn)行 fsck。那么可以使用 -i 選項(xiàng)來(lái)指定時(shí)間間隔,如下:

sudo tune2fs -i 1w /dev/sda

如果你使用的是 systemd,則可以通過(guò)輸入以下命令在下次啟動(dòng)時(shí)強(qiáng)制運(yùn)行 fsck:

fsck.mode=force
fsck.repair=yes

關(guān)于 fsck 的更多信息,大家可以參考 man 手冊(cè),在終端中運(yùn)行 man fsck 即可。

以上就是本次分享全部?jī)?nèi)容,歡迎討論。

責(zé)任編輯:龐桂玉 來(lái)源: TIAP
相關(guān)推薦

2019-03-04 14:40:46

Linux文件系統(tǒng)修復(fù)

2018-01-02 11:55:59

Linux文件系統(tǒng)FSCK命令

2014-04-09 10:16:28

Linux文件系統(tǒng)fsck工具

2018-01-09 09:00:01

Linux命令文件壓縮

2022-10-25 09:07:28

Linuxxargs命令

2009-12-14 13:33:31

linuxramdisk文件系統(tǒng)

2018-06-26 09:15:24

Linux命令history

2022-11-18 10:16:26

Linuxwc 命令

2018-05-16 10:32:06

Linux命令find

2018-04-28 09:12:42

Linux

2022-05-25 08:41:48

Linuxfd 命令文件

2015-12-16 16:01:13

2023-09-14 15:05:33

grep正則表達(dá)式

2018-02-25 09:48:36

LinuxUbuntu文件系統(tǒng)

2021-01-13 09:40:26

Linuxexport命令

2018-10-09 08:30:55

UbuntuLinuxRAR文件

2023-01-31 17:36:22

IPLinux網(wǎng)絡(luò)

2021-07-13 07:52:02

Linuxgrep命令

2017-10-12 13:43:27

LinuxUbuntuZFS文件系統(tǒng)

2023-09-15 13:31:00

Linuxattr
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)