问题:
在 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 buffer
到syslog
,/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
立即启动。