一、
今天我的虚拟机上面的一台linux机器出现了问题,在启动的时候检查file system报错了。问题的原因可能是我的物理机器被人非正常关机了。唉......
错误的大概内容如下所示:
-----------------------------------------------------------
Checking filesystem
/ contains a file system with errors, check forced.
/:
Extended attribute block 6161415 has reference count 404, should be 402.
/: UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY.
(i.e., without -a or -p options)
[FAILED]
***An error occurred during the file system check.
***Dropping you to a shell; the system will reboot
***when you leave the shell.
***Warning --SELinux is active
***Disabling security enforcement for system recovery.
***Run 'setenforce 1' to reenable.
Give root password for maintenance
(or type Control-D to continue:)_
--------------------------------------------------------------
解决
1.输入root的密码.
2.根据上面的错误提示,应该是/(根)除了问题,然后用df -h 查看/对应的设备,我这里对应的是/dev/sda3
3.运行fsck.ext3 -p /dev/sda3,如果未能修复,接着运行下面的命令。
4.运行fsck.ext3 -y /dev/sda3 ; repair ok,之后reboot就可以了(我用这个命令解决了该问题)。注意:在修复其它filesystem时要umount掉。
NOTE:有时候是fsck.ext4
备注:
错误的原因,网络上的朋友说还有别的原因:
1.上次非正常关机引起的,用fsck /dev/hdaX后reboot进入,或只用fsck来修复,只管y回车
2.第二种情况:由于/etc/fstab文件编辑错误 而引起的不能正常进入系统
解决方法就是修改/etc/fstab文件成原来正常格式 删除错误的或者是不存在的挂载目录
操作:根据提示进入修复模式 Login incorrect.
(Repair filesystem) 1 # vim /etc/fstab
但是修复模式下(read-only system) 文件是被保护的不能修改 运行下面命令 把系统文件权限改成可读写(rw)
(Repair filesystem) 1 # mount -o remount,rw /
使根目录可写.即可以修复/etc/fstab文件,使之可写.然后就可以vi修改了
保存 wq
(Repair filesystem) 1 #reboot
二、
介绍fsck命令的使用:
使用权限 : 超级使用者
使用方式 : fsck --help
fsck 1.35 (28-Feb-2004)
fsck.ext3: invalid option -- h
Usage: fsck.ext3 [-panyrcdfvstDFSV] [-b superblock] [-B blocksize]
[-I inode_buffer_blocks] [-P process_inode_size]
[-l|-L bad_blocks_file] [-C fd] [-j ext-journal]
[-E extended-options] device
Emergency help:
-p Automatic repair (no questions) ;自动修复
-n Make no changes to the filesystem ;模拟修复
-y Assume "yes" to all questions ;所有的问题都回答yes
-c Check for bad blocks and add them to the badblock list
;检查坏块,并记录下坏块列表
-f Force checking even if filesystem is marked clean
;对标记为“干净”的文件系统进行强制检查 v Be verbose ;详细信息
-b superblock Use alternative superblock
-B blocksize Force blocksize when looking for superblock
-j external-journal Set location of the external journal
-l bad_blocks_file Add to badblocks list
-L bad_blocks_file Set badblocks list