启动时(本地)安装的问题 (sysvinit)

启动时(本地)安装的问题 (sysvinit)

在引导期间,某些/许多安装点/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 文件后,不需要添加到该行。

如果计算机断电/强行关机,则有一次会再次损坏。然后按照上述步骤即可解决问题。

相关内容