我有一台 Voyage Linux(Debian 衍生系统)计算机(无头,即无显示器)。根文件系统被标记为已损坏,实际上存在一些错误。
我想修复这些错误,但我做不到。我尝试了几种方法(立即关闭 -rF、touch /forcefsck、在 /etc/default/rcS 中设置 FSCKFIX=yes、tune2fs -c 1 -C 1 /myfilesystem):没有进行检查。
经过一番搜索,我发现检查根目录被设定为检查/dev/root文件系统:
fstabroot=/dev/root
#...
rootcheck=yes
尽管自由度告诉我这个:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 3541948 1156324 2205660 35% /
/dev/disk/by-label/ROOT_FS 3541948 1156324 2205660 35% /
tune2fs 表示:
# tune2fs -l /dev/disk/by-label/ROOT_FS
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: ROOT_FS
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: not clean with errors
Errors behavior: Continue
Filesystem OS type: Linux
Filesystem created: Tue Mar 13 09:49:14 2012
Last mount time: Sat Jan 1 02:36:20 2000
Last write time: Tue Apr 14 08:38:22 2026
Mount count: 3
Maximum mount count: 1
Last checked: Fri Jun 15 20:55:44 2012
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
我的 fstab 如下所示:
#/dev/hda1 / ext2 defaults,noatime,rw 0 0
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0
#tmpfs /rw tmpfs defaults,size=32M 0 0
我发现强制运行 fsck 的唯一方法是修改 /etc/init.d/checkroot.sh 设置以下值:
fstabroot=/dev/disk/by-label/ROOT_FS
#...
rootcheck=yes
然后'touch /forcefsck'
执行reboot
我相信这是一个快速而粗糙的修复方法,可以修复我的 FS。
我该怎么做才能用更好的方法修复这个卷?
答案1
如果您希望在启动期间检查分区,则必须打开第六个字段 -fsckorder
位 ON /etc/fstab
。如果您将该字段设置为零,则 fsck 将不会检查文件系统。例如,对于根 (/) 分区,您可以这样做 -
/dev/hda1 / ext2 defaults,noatime,rw 0 1
答案2
我认为 e2fsck 无法纠正它所运行的卷上的某些错误。这就是为什么我总是安装一个小的附加 Linux。
如何在损坏的文件系统上进行更改(“在 /etc/default/rcS 中设置 FSCKFIX=yes”)?