这些命令是做什么用的?

Ay0*_*Ay0 10 linux mount grub2

昨天我不得不安装一个带有 Grub 覆盖的 Windows。

好吧,这不是我第一次必须修复 Grub,所以我使用了 LiveCD,挂载了根分区(我没有引导,只有/home)并运行grub-install --root-directory=/mnt/ /dev/sda. 然而,它没有用。

谷歌搜索有一段时间我发现了一个教程中,而不是仅仅安装了Linux分区,他也做了之后mount --bind /mnt/dev /devmount --bind /mnt/proc /proc/。之后chroot/mnt然后安装Grub,并使用这种方法,它起作用了。

什么mount --bind命令呢?我熟悉--bind used(man page)的用法,但我不知道为什么在这个例子中使用它。

Chr*_*own 10

procsys内核时没有运行,则不复存在-由运行内核提供的文件系统。这意味着当您 chroot 进入另一个操作系统时,这些文件系统不存在。许多程序希望它们存在以便它们可以运行,例如,它们可能需要有关正在运行的系统的信息,或者想要修改内核处理某些事情的方式。通常只需提供/proc/sys从当前内核中提供这些程序按预期工作就足够了。

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