一、问题描述
redhat系统,由于电脑未正常关机,在重启过程中出现/dev/VolGroup00/LogVo100出现文件系统错误,如下:
Checking filesystems /dev/VolGroup00/LogVol00 contains a file system with errors, check forced.
/dev/VolGroup00/LogVol00:
Inodes that were part of a corrupted orphan linked list found
/dev/VolGroup00/LogVol00:
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options) [FAILED]
解决办法:
输入root密码登陆之后尝试以下命令修复重启成功:fsck.ext3 /dev/VolGroup00/LogVol00 。
二、fsck简介
fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。值得注意的是fsck 扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。
警告:如果扫描运行中的系统,会造成系统文件损坏。
文件系统扫描工具有 fsck,fsck.ext2,fsck.jfs,fsck.msdos,fsck.vfat,fsck.ext3,fsck.reiserfs(reiserfsck)。其中fsck 默认支持文件系统ext2,如果想支持ext3文件系统的扫描,应该加-j 参数。最好是根据不同的文件系统来调用不同的扫描工具,比如ext3的文件系统使用fsck.ext3,ext2文件系统使用fsck.etx2等。
三、查看磁盘分区和文件系统类型的方法
df -T 只可以查看已经挂载的分区和文件系统类型。
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 20642428 3698868 15894984 19% /
tmpfs tmpfs 32947160 0 32947160 0% /dev/shm
fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
Disk /dev/sda: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors/track, 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000576df
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2611 20971520 83 Linux
/dev/sda2 2611 3134 4194304 82 Linux swap / Solaris
/dev/sda3 3134 36404 267248282 83 Linux
parted -l 可以查看未挂载的文件系统类型,以及哪些分区尚未格式化。
Model: LSI MR9240-8i (scsi)
Disk /dev/sda: 299GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 21.5GB 21.5GB primary ext4 boot
2 21.5GB 25.8GB 4295MB primary linux-swap(v1)
3 25.8GB 299GB 274GB primary ext4
lsblk -f 也可以查看未挂载的文件系统类型。
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
|-sda1 ext4 c4f338b7-13b4-48d2-9a09-8c12194a3e95 /
|-sda2 swap 21ead8d0-411f-4c23-bdca-642643aa234b [SWAP]
`-sda3 ext4 2872b14e-45va-461e-8667-43a6f04b7bc9
四、fsck的使用实例
检查文件系统错误并自动修复
使用选项-a进行一致性检查并自动修复这些错误。也可以用-y替代-a选项。
$fsck-a/dev/sdb1
检查文件系统错误但并不进行修复
若我们只想知道文件系统上有哪些错误而不想修复这些错误,那么可以使用选项-n,
$fsck-n/dev/sdb1
检查所有分区中的错误
-A选项一次性检查所有分区上的文件系统错误,
$fsck-A
若要禁止对根文件系统进行检查可以使用选项-R,
$fsck-AR
只检查指定文件系统类型的分区
使用选项-t及文件系统类型,可以让fsck只检查指定文件系统类型的分区,比如指定文件系统类型为“ext4”,
$fsck-text4/dev/sdb1
或者,
$fsck-t-Aext4
只在卸载的磁盘上进行一致性检查
要保证fsck只在卸载的磁盘上操作,可以使用选项-M,
$fsck-AM