为什么 grub2-install 能够逃脱 chroot 监狱?

为什么 grub2-install 能够逃脱 chroot 监狱?

我有一个奇怪的经历。场景:我正在编写一个在 initrd(实际上是 initramfs)中运行的 Linux 安装程序(基于 OpenSUSE 12.2),并且我正在尝试更新引导加载程序。新安装的文件系统的副本安装在 /root 上。

所以我运行这个命令并得到这个输出:

+ echo 'Installing boot loader'
Installing boot loader
+ chroot /root bash -c '(ls -l /lib/modules/*/modules.dep; grub2-install /dev/sda)'
-rw-r--r-- 1 root root 45590 Apr 24 15:32 /lib/modules/3.4.47-default/modules.dep
modprobe: FATAL: Could not load /lib/modules/3.4.47-default/modules.dep: No such file or directory

该错误重复多次,然后显示“安装完成。未报告错误。”信息。

如果我将此代码放在命令之前:

mkdir -p /lib/modules/
ln -s ../../root/lib/modules/3.4.47-default/ /lib/modules

它工作得很好!

Installing boot loader
Installation finished. No error reported.

谁能解释一下吗?

答案1

这是 Linux 模块自动加载的实际操作,grub2-install它尝试挂载多种类型的文件系统,从而让 Linux 加载模块并执行它们。

相关内容