我正在尝试使用 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