MBR 和卷引导加载程序

MBR 和卷引导加载程序

我正在尝试使用 Clonezilla (20140518) 并选择设备映像选项,将 Lubuntu 14.04 的可启动分区 (/dev/sda1) 创建到同一物理磁盘 (/dev/sda3) 上的另一个分区的映像副本;但它失败了,并显示一条错误消息,警告没有卸载的磁盘。有人知道我是否可以使用同一磁盘执行此操作,还是我需要第二个磁盘?

答案1

我想说这取决于引导加载程序的类型。

MBR 和卷引导加载程序

它是对于 BIOS/MBR,因为您必须重新安装引导程序并将克隆配置为从分区卷引导程序而不是 MBR 引导(例如,目标grub-install是分区sda2而不是sda)。尝试执行此操作时,GRUB2 会发出以下消息:

Attempting to install GRUB to a partition disk or to a partition.  This is a BAD idea.
Embedding is not possible.  GRUB can only be installed in this setup by using blocklists. 
However, blocklists are UNRELIABLE and their use is discouraged.

http://wiki.gentoo.org/wiki/GRUB2#Attempting_to_install_GRUB_to_a_disk_or_a_partition

因此,从 GRUB2 开始,在一个驱动器上链接引导加载程序是可能的,但不安全。只留下一个安装选项来管理引导加载程序及其配置(如os-prober生成的条目)。

UEFI 引导加载程序存根,仅复制文件

对于 UEFI/GPT 来说,这更简单。您甚至不需要创建原始磁盘映像。使用实时媒体时,您只需将内容从一个分区复制/rsync 到另一个分区即可。然后复制 ESP 的内容(例如\EFI\ubuntu\EFI\ubuntu2并修改 GRUBs EFI 存根的配置文件。我的看起来像这样:

$ cat /boot/efi/EFI/ubuntu/grub.cfg
search.fs_uuid e6822878-8045-43a6-ae17-6a45686afe4f root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

您只需要更改文件系统e6822878-8045-43a6-ae17-6a45686afe4f和分区的 UUID hd0,gpt2(例如hd0,gpt3)。另外,不要忘记使用在 UEFI NVRAM 中注册新的 EFI 引导加载程序efibootmanager。我还建议安装默认的 UEFI 引导加载程序,例如橡胶靴

我的经验

UEFI 确实是一个飞跃。不再需要原始映像(这需要更长的时间)或摆弄dd。只需复制文件并在 NVRAM 中注册存根。但一如既往,如果您购买了劣质硬件,它可能会变得复杂,就像您的 UEFI 实现无法启动 Windows 以外的任何其他系统一样。

相关内容