使用fsck修复系统文件错误

一、问题描述

     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

你可能感兴趣的:(linux)