在我的 Arch Linux 上,我尝试按如下方式安装 GRUB:
grub-install /dev/sda
而不是/dev/sda
用UUID来做。
不过有两点需要提出:
我找不到
/dev/sda
仅用于/dev/sda1
或的UUID/dev/sda2
/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/sdX
X 是您希望 GRUB 写入引导信息的驱动器(盘符)。通常用户不应包含分区号,否则会产生错误消息,因为命令会尝试将信息写入分区。
sudo grub-install /dev/sdX
这将重写 MBR 信息以指向当前安装并重写一些 GRUB 2 文件(已在运行)。由于它不是在执行上一个命令期间完成的,因此在安装后运行 sudo update-grub 将确保 GRUB 2 的菜单是最新的。”
这展示了如何重新安装 GRUB,但我想指出的要点是我试图在/dev/sdb
device 中安装操作系统,在/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 磁盘的人都可以启动您的系统。