fsck命令简介
fsck命令遵循与大多数Linux命令类似的模式。fsck [options] [filesystem]
如果不指定文件系统,系统将分析fstab文件(/etc/fstab ),以便设备扫描。
您将需要以root用户身份运行命令或将其与sudo一起使用。
你可以使用fdisk或df命令来在Linux中列出硬盘,这样,你就可以指定使用fsck命令检查哪个设备。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-25A6F2406380
Device 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
在运行fsck之前卸载设备
不要在挂载的设备上运行fsck,你需要首先卸载目标以避免损坏你的文件。
如果尝试在已挂载的设备上运行fsck,应该会看到如下错误:[email protected]:~$ 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.
正常,健康的驱动器上的fsck如下所示:[email protected]:~$ 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接受一个设备名,比如/dev/sda,但是你可以选择输入UUID,以避免与挂载和卸载设备混淆,UUID是分配给设备的固定值,不会受到这些系统更改的影响。
fsck命令的实际用法
现在你对fsck命令有点熟悉了吧,现在看看这个命令的实际用例。
修复USB磁盘和其他可移除设备
首先,你需要确保驱动器已被卸载:sudo umount /dev/sdb
现在运行fsck命令:sudo fsck /dev/sdb
检查输出是否有错误,如果没有显示,用echo $?检查退出代码。
通常可以使用-p允许fsck自动应用修复。sudo fsck -p /dev/sdb
同样,-y将对检测到的文件系统损坏应用更正。