这些命令有什么用?

这些命令有什么用?

昨天我必须安装一个带有 Grub 覆盖的 Windows。

好吧,这不是我第一次修复 Grub,所以我使用 LiveCD,安装根分区(我没有启动,只有/home)并运行grub-install --root-directory=/mnt/ /dev/sda。然而,这并没有奏效。

经过谷歌搜索一段时间后,我发现了一个教程,其中他不仅安装了 Linux 分区,还安装了mount --bind /mnt/dev /devmount --bind /mnt/proc /proc/。然后chroot安装/mntGrub,用这个方法,就成功了。

命令的用途是什么mount --bind?我熟悉--bind used(手册页)的用法,但我不知道为什么在这个示例中使用它。

答案1

proc文件sys系统由正在运行的内核提供——当内核不运行时,它们就不再存在。这意味着当您 chroot 到另一个操作系统时,这些文件系统不存在。许多程序期望它们存在以便它们能够运行,例如,它们可能需要有关正在运行的系统的信息,或者想要修改内核处理某些内容的方式。通常,只需提供当前内核即可使这些程序按预期工作/proc/sys

符号链接是不够的,因为 chroot 操作会使所使用的文件路径无效。在 Linux 中,您也不能硬链接目录(除了...,由 提供mkdir)。这意味着必须使用第三个选项将这些文件系统镜像到 chroot 环境——绑定安装。绑定挂载由内核直接提供,并在 chroot 中按预期工作。

答案2

--bind选项将允许安装点显示在chroot-ed 环境中。

相关内容