为什么安装 GRUB 时需要 chroot?

为什么安装 GRUB 时需要 chroot?

我正在尝试使用 Linux 和 Windows 双重启动我的笔记本电脑。现在我可能需要做的一件事是,首先将 Linux 安装到我想要的分区,然后从 Live CD 引导,然后选择我的引导分区,然后在我的引导分区上安装和配置 grub。

已列出说明这里

现在我发现多余的是,如果安装命令如下所示,为什么我需要这样做chroot

grub-install /dev/sd1

如果 grub 可以简单地从命令行安装到我选择的分区,那么 chroot 甚至挂载 Linux 分区有什么用呢?

为什么我要通过以下方式挂载虚拟文件系统:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

是否因为当我从安装磁盘启动到实时模式时,已安装的 Linux 操作系统中存在 grub 文件,我必须访问这些文件才能继续安装? IE。能跑吗grub-install

如果 grub 文件存在于安装介质上,那么安装和 chroot 似乎就无关紧要了?

如果我错了,请纠正我,但所做的只是chroot更改当前进程和子进程的根目录,对吧?

答案1

在启动时,GRUB 需要能够查找并读取/boot/grub.

因此,GRUB 需要知道包含的磁盘和分区/boot/grub GRUB 可以从里面读取文件/boot/grub

因此,grub-install需要将此磁盘和分区嵌入到 GRUB 本身中。

因此,grub-install需要知道(或需要能够推断出)包含/boot/grub. (或者至少我怀疑是这样的。)

grub-install旨在/boot/grub通过确定磁盘和分区来推断磁盘和分区/boot/grub 在环境中grub-install本身正在运行。

换句话说,grub-install就是设计的假设grub-install本身将会运行里面GRUB 将引导的系统。

因此,您需要chroot进入要启动的系统,以便/boot/grub运行时与要启动的系统grub-install相同。/boot/grub

相关内容