在引导期间,某些/许多安装点/etc/fstab
未安装。该/etc/mtab
文件包含这些安装点 - 我的理解是系统认为文件系统已经安装。
/etc/rc.d/init.d/mountfs
使用以下行修改我的脚本(取自 LFS)
grep -v root /proc/mounts > /etc/mtab
在调用之前(我添加了v
和#
以获得一些输出 - 系统声称已经安装)
mount -av -O no_netdev # > /dev/null
允许系统正确挂载文件系统。
但是,在这种情况下,文件系统在关闭时未正确卸载(通过采用参数的同一脚本stop
)。关闭时的错误与根文件系统有关。
df
返回显示我的文件系统状态的输出,因此很容易检查。mount
输出所有预期的安装点,即使它们没有安装(即,没有修改 /etc/rc.d/init.d/mountfs)
发出诸如mount /mountpoint/in/fstab
成功挂载点之类的命令,即使它已经在其中/etc/mtab
(大概这是因为mount -a
检查了mtab
, 而mount <specific point>
不是?)
出了什么问题?
我的/etc/fstab
:
# device mount-point fs-type options dump fsck-order
# Core mount points
proc /proc proc nosuid,noexec,nodev 0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
/dev/sda8 swap swap pri=1 0 0
/dev/sda9 / ext4 defaults 1 1
/dev/sda10 /home ext4 defaults 0 2
# Additional mount points
/dev/sda6 /mnt/Ubuntu ext4 defaults 0 0
/dev/sda11 /sources ext4 defaults 0 0
# Network mounts
//software.blah.blah/path /mnt/Licensed cifs credentials=/home/<user>/.smbpasswd,ro,_netdev 0 0
答案1
发行grep -v root /proc/mounts > /etc/mtab; echo "/dev/sda9 / ext4 defaults 1 1" >> /etc/mtab
解决了这个问题。
启动问题是由于 mtab 文件中的条目在关闭期间未正确删除所致。将根文件系统添加到 mtab 文件后(启动后),关闭会正常进行,然后启动也可以正常工作。
mountfs
正确设置 mtab 文件后,不需要添加到该行。
如果计算机断电/强行关机,则有一次会再次损坏。然后按照上述步骤即可解决问题。