在启动过程中,一些/许多挂载点/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 文件后,不需要添加该行。
如果电脑断电/强制关机,这曾经再次出现故障。然后上述步骤可以解决问题。