根文件系统在挤压下安装得很好,在我升级到喘息后。我已经忍受了一段时间了,所以我不太确定,但我认为它是在对 wheezy 进行 dist 升级之后开始的,但这可能是巧合。该机器是联想 T400 FWIW。
开机画面照片1显示有关只读文件系统的第一个警告;显然没有记录任何内容
fsck 没有发现问题2
mount -o remount,rw /
以上工作正常
(但我必须重新启动网络管理器和 gdm3 才能获得可用的系统;我不确定它是否相关,但我似乎无法连接到本地主机上运行的服务,例如 python -m SimpleHTTPServer 8080 和另一个终端 w3m 向本地主机端口 8080 发送请求超时)
我没有注意到 fstab 有什么问题
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=2934c627-6f1a-438b-a877-1544108c7418 / ext3 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=39b1f59e-6193-4c46-8b4d-80b183f0b19c none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sdb1 /media/usb0 auto rw,user,noauto 0 0
任何指示将不胜感激。希望我正在做一些明显错误且可以修复的事情,但如果没有任何关于如何调试的提示?
...
tune2fs -l /dev/sda1
输出
tune2fs 1.42.2 (27-Mar-2012)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 2934c627-6f1a-438b-a877-1544108c7418
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 14893056
Block count: 59547904
Reserved block count: 2977395
Free blocks: 50391869
Free inodes: 14576981
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1009
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Tue May 3 01:44:56 2011
Last mount time: Wed Apr 18 13:11:25 2012
Last write time: Tue Apr 17 23:51:46 2012
Mount count: 5
Maximum mount count: 25
Last checked: Tue Apr 17 23:51:46 2012
Check interval: 15552000 (6 months)
Next check after: Sun Oct 14 23:51:46 2012
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 9145036
Default directory hash: half_md4
Directory Hash Seed: af8ca7f0-bcad-49f3-98c0-9b19a531a885
Journal backup: inode blocks
...
看来 /etc/init.d/checkroot.sh 并未在启动时运行,而该脚本最终将 root 重新安装为 rw(如果我在启动后运行它,它就会执行此操作)。我正在使用 Debian 测试/喘息。 /etc/init.d 文件中有依赖项注释,但除此之外,我不确定如何告诉有关 init 系统的更多信息。
...
已修复,但不知道它是如何发生的,也不知道修复是否正是系统应有的样子。我注意到 /etc/rcS.d 中有 checkfs 和 mtab,但没有 checkroot,所以我添加了它:
cd /etc/rcS.d
ln -s ../init.d/checkroot.sh S06checkroot.sh
重新启动两次后(第一次可能是我的困惑,但我在它们之间向 checkroot.sh 添加了一些进一步的工具),我在启动时使用 rw 进行备份(并且从本地主机监听/请求的问题消失了,所以我猜测是相关的)。
(我在挤压系统上看到我可以访问它的 S07checkroot.sh;我可能已经很接近了。)
答案1
您的 /root 文件系统上存在错误,并且 fstab 将 /root 重新挂载为只读。
fstab 中的行
UUID=2934c627-6f1a-438b-a877-1544108c7418 / ext3 errors=remount-ro 0 1
是什么导致 /root 以只读方式挂载。
从mount (8)
手册页
errors={continue|remount-ro|panic}
Define the behaviour when an error is encountered. (Either ignore errors
and just mark the filesystem erroneous and continue, or remount the
filesystem read-only, or panic and halt the system.) The default is set in
the filesystem superblock, and can be changed using tune2fs(8).
您最终应该找出 /root 文件系统出了什么问题。您可以轻松地从救援磁盘启动并在 /root 上运行 fsck。如果您选择忽略潜在的错误,只需将 fstab 中的行更改为errors=continue
.
答案2
我遇到了这个问题,这是由于 /etc/fstab 中设置的根 FS 的 UUID 错误引起的。我猜某些升级会自动检测到它并出错。
重新挂载 / 分区 rw,使用blkid
获取正确的 UUID 并替换 /etc/fstab 为我修复它。
答案3
你的根文件系统没有被挂载为读/写,因为你没有告诉它。
UUID=2934c627-6f1a-438b-a877-1544108c7418 / ext3 errors=remount-ro 0 1
您的安装选项只有errors=remount-ro
,其中没有关于读/写的内容。标准做法是defaults
在您的安装选项中包含此内容。defaults
提供了其他几个安装选项,其中之一是rw
,从而提供读/写。
因此,您需要将defaults
或添加rw
到 fstab 的选项字段中。
编辑:
如果再多思考一下(以及下面评论中的讨论),defaults
和rw
选项可能无法修复它。原因是重新安装行为完全取决于发行版的初始化脚本。我见过发行版在启动时从 fstab 中提取挂载设置,但也有可能 init 脚本在重新挂载 root 时完全忽略 fstab 选项(并在脚本中使用一些硬编码设置)。