GRUB 配置文件中 root 的含义

GRUB 配置文件中 root 的含义

参考这里,配置为

grub> root (hd0,0)
grub> kernel /vmlinuz-i686-up-4GB root=/dev/hda9
grub> boot

前面的内容通常足以启动 Linux 机器。 standaloneroot语句告诉包含内核的分区。该kernel语句描述了路径和文件名,在包含内核的分区内,内核的。该语句root=的参数的参数kernel告诉包含 的分区/sbin/init,这当然是引导系统中的根分区。

小心这些相互冲突的root关键词。独立的是从 grub 中看到的根目录,包含内核。该kernel语句的参数是从完全启动的系统中看到的根,并包含/sbin/init.

我不太明白这两个root配置的含义。这是否意味着操作系统保持在待/dev/hda9安装状态(hd0, 0),或者操作系统将/vmlinuz被安装到/dev/had9

答案1

我的系统位于 /dev/sda1-3 上。我的硬盘的第一个分区是 sda1,包含启动分区。我在 sda2 中有一个交换驱动器。我的主分区在 sda3 中。 Sda3 包含根“/”目录及其所有子目录,如 /etc 和 /usr。

在我的 Grub.cfg 中我设置了

set root=(hostdisk//dev/sda,gpt1)

这使得引导加载程序可以在任何文件系统准备就绪之前找到内核文件。从技术上讲,您正在启动 sda1。

当内核在 fstab 中加载并挂载驱动器时,根“/”本身位于 sda3 上,但 /boot(引导的文件)被挂载到 sda1 上。

linux /kernel-genkernel-x86_64-4.9.144-3 root=/dev/sda3 real_root=/dev/sda3 rootfstype=ext4
initrd /early_ucode.cpio /initramfs-genkernel-x86_64-4.9.144-3

因此,即使系统使用 sda1 上的文件启动,根目录“/”实际上位于 sda3 上。

答案2

root (hd0,0) - 配置 GRUB 的根分区,例如 (hd0,0) 第一个硬盘、第一个分区并挂载该分区。

kernel /vmlinuz-i686-up-4GB root=/dev/hda9 - 指定 /boot 文件夹内的内核位置。该位置与root(hd0,0)语句相关。根分区是根据Linux命名约定指定的(/dev/hda9/)

内核映像将安装在根文件系统(/dev/hda9)上

相关内容