GRUB 配置文件中 root 的含义

Ken*_*nny 6 root-filesystem grub-legacy

参考这里,配置为

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

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

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

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

Sid*_*rma 1

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

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

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

  • *内核映像*不是“安装在根文件系统上”,而是“根文件系统”(由内核)。:-) (4认同)
  • 基本上 root= 告诉包含 /sbin/init 的分区,这当然是引导系统中的根分区。 (2认同)
  • @Kenny **root(hd0,0)** 告诉 grub 它的配置文件所在的位置。在本例中,它们可以在 (hd0,0)/boot/grub 下找到。并且, **kernel /vmlinuz-i686-up-4GB root=/dev/hda9** 指定可以读取的实际内核映像位置,该位置位于 /boot 文件夹内。可以有很多内核映像。**root=/dev/hda9** 指定操作系统的 **root (“/”)** 分区的位置。 (2认同)