如何使用 UUID 在磁盘驱动器上安装 grub?

如何使用 UUID 在磁盘驱动器上安装 grub?

在我的 Arch Linux 上,我尝试按如下方式安装 GRUB:

grub-install /dev/sda

而不是/dev/sda用UUID来做。

不过有两点需要提出:

  1. 我找不到/dev/sda仅用于/dev/sda1或的UUID/dev/sda2

  2. /dev/sda1例如, 当尝试在 UUID 上安装时,它会显示:

    *' error cannot find a grub drive for UUID. check your device.map '*
    

顺便说一下,device.map下面也不存在/boot/grub/device.map

怎么做?

诗。已编辑:谢谢您超越0nd帮我找出 /dev/sda 的 UUID。但是我仍然对第二个有疑问。

我想做的是:

" /dev/sdXX 是您希望 GRUB 写入引导信息的驱动器(盘符)。通常用户不应包含分区号,否则会产生错误消息,因为命令会尝试将信息写入分区。

sudo grub-install /dev/sdX

这将重写 MBR 信息以指向当前安装并重写一些 GRUB 2 文件(已在运行)。由于它不是在执行上一个命令期间完成的,因此在安装后运行 sudo update-grub 将确保 GRUB 2 的菜单是最新的。”

这展示了如何重新安装 GRUB,但我想指出的要点是我试图在/dev/sdbdevice 中安装操作系统,在/dev/sda.它将导致的效果是,唯一开始的方法/dev/sdb是我/dev/sda也已插入电源。我之所以要处理UUID而不是名称,/dev/sda是因为有时名称/dev/sdX会从一台电脑更改到另一台电脑。

诗。编辑2:我不知道它是否更清楚,但我需要将引导加载程序(USB1)与操作系统(USB2)分开。只是还没弄清楚怎么办。

答案1

通常,您应该能够/dev/sda使用以下命令找到分区表的 UUID (PTUUID):

sudo blkid /dev/sda

我从未尝试过使用此 PTUUID 来安装grub磁盘驱动器。因此,我无法告诉您这是否有效或者您的磁盘是否正常干净的在这之后。
编辑:PTUUID <>分区表的澄清。
edit2:我做了更多研究,PTUUID 是不是你想在什么上安装grub!!
因为有整个硬盘的 UUID 你的第一点必须得到回答: 您找不到 /dev/sda 的 UUID,因为没有。
至于你的第二点,你可以(或者可以?)将 GRUB 安装到分区中。如果您遵循此操作,有一个关于如何执行此操作的很好的解释关联

答案2

一旦安装到 MBR,GRUB 就不再关心是哪个数字驱动器在安装期间有。 GRUB 第 1 阶段加载 GRUB 第 2 阶段,据我所知 -必须驻留在同一磁盘上。然而,内核可以位于另一个驱动器上,并且该驱动器上的分区可以通过 UUID 来识别。假设您的 Linux 当前已启动sdb并且您已经准备了一个辅助分区sdax

mount /dev/sdax /mnt
grub-install /dev/sda --boot-directory=/mnt
grub-mkconfig -o /mnt/grub/grub.cfg

这会将 GRUB 第 1 阶段安装到 的 MBR sda,第 2 阶段的配置数据将安装到 上的文件系统sdax

使用它来保证安全是可怕主意。默默无闻的安全性不起作用。任何拥有 Super GRUB2 磁盘的人都可以启动您的系统。

相关内容