在 Linux 启动过程中,文件系统何时从 /etc/fstab 挂载?

在 Linux 启动过程中,文件系统何时从 /etc/fstab 挂载?

问题:

在 Ubuntu Linux 启动过程中何时挂载文件系统(来自 /etc/fstab)?


合理的:

我定义如下共享文件夹在我的Ubuntu VirtualBox 虚拟机

openstack@ubuntu:~$ grep vboxsf /etc/fstab
tmp     /home/openstack/shared/tmp      vboxsf  defaults        0       0
images  /home/openstack/shared/images   vboxsf  defaults        0       0
openstack@ubuntu:~$

从外壳安装它们没有问题。

然而,在启动过程,其安装失败:

在此处输入图片描述

进入维护模式后,我确认问题出在vboxsf模块不是加载到内核中(并且随后,加载后,mount成功):

在此处输入图片描述

我想通过创建一个新rc文件来解决这个问题,该文件将在读取modprobe vboxsf之前执行命令。/etc/fstab

因此,我尝试modprobe vboxsf在开始时执行运行级别 2

openstack@ubuntu:/etc/rc2.d$ ls -ls /etc/rc2.d/S10modprobe-vboxsf
0 lrwxrwxrwx 1 root root 25 Apr 28 14:36 /etc/rc2.d/S10modprobe-vboxsf -> ../init.d/modprobe-vboxsf
openstack@ubuntu:/etc/rc2.d$ cat ../init.d/modprobe-vboxsf
/sbin/modprobe vboxsf
openstack@ubuntu:/etc/rc2.d$ ls -ls ../init.d/modprobe-vboxsf
4 -rwxr-xr-x 1 root root 22 Apr 28 14:33 ../init.d/modprobe-vboxsf
openstack@ubuntu:/etc/rc2.d$

共享文件夹仍然无法挂载/etc/fstab.

谷歌没有取得成果,所以 - 我的问题是:

如何将vboxsf模块加载到 Ubuntu 内核, /etc/fstab是否已读取并且文件系统是否已安装?

答案1

尝试添加vboxsf/etc/modules先检查它是否已经存在,尽管我感觉它不存在)并看看是否有帮助。

另外,在 askubuntu 上也有一个类似的问题。看看那里的答案是否对你有帮助:

https://askubuntu.com/questions/252853/how-to-mount-a-virtualbox-shared-folder-at-startup

编辑以尝试回答标题中提出的问题:我不确定在启动过程中挂载究竟发生于何时,但我怀疑它发生在(大多数?)内核模块加载之后,因为至少某些文件系统需要加载某些模块才能工作(例如,nfs、vboxfs等)。

答案2

免责声明:

该答案是针对那些通过谷歌搜索与问题标题相似的短语找到该问题的人的。

在 Linux 上systemd(至少在我使用的系统上),systemd进程挂载(以下是列出系统输出的两种变体,其中找到条目取决于消息是否已经从 移动ring buffersyslog/media/drive是否来自/etc/fstab

dmesg | grep media
dmesg -F /var/log/syslog | grep media
               [    4.494745] systemd[1]: Mounting /media/drive...
               [    4.499664] systemd[1]: Mounted /media/drive.

据我所知,内核完全加载后PSsystemd立即启动。

相关内容