我想使用Clonezilla 的 dd 模式,使用“e2、j2、icds 和 iefi”的高级选项,这些选项在 Clonezilla 的高级菜单中有描述,该链接中引用:
- “e2”:sfdisk 使用来自 EDD 的硬盘 CHS(用于非 GRUB 引导加载程序)CHS 是柱面、磁头和磁扇区EDD(假设现有磁盘驱动器)。
- “j2”:克隆 MBR 和第一个分区之间的隐藏数据
- “icds”:在创建分区表之前跳过检查目标磁盘大小“
- iefi”:克隆后跳过更新 NVI 启动 RAM 中的条目
从 Clonezilla 完成磁盘到磁盘克隆后,仍然存在 GRUB UUID 不正确的问题,因为 GRUB 仍然具有所复制驱动器的配置。
来自 Stack Exchange Ask Ubuntu 问题,“如何更改 /boot/grub/grub.cfg 中的 UUID”,有许多有趣的方法。
例如,那个链接来自“Pierre ALBARÈDE”:
/boot/grub/grub.cfg
您可以像之前一样 直接在 中更改 UUID 。/boot/grub/grub.cfg
不会自动更新。但是,如果您想保留可启动性,您还需要在其他地方相应地更改 UUID,例如,在 EFI/UEFI 启动中、在/boot/efi/EFI/ubuntu/grub.cfg
和 中/etc/fstab
。
此外,“Vojtech Trefny”在回答以下问题时记录了如何从计算机的 BIOS 启动菜单启动到 GRUB,“如何在启动时进入 GRUB 菜单?“
如果您使用 BIOS 启动,在加载 Grub 期间按住 ,则会出现菜单Shift。当您的系统使用 UEFI 启动时,请按 Esc。
为了永久改变你需要编辑你的
/etc/default/grub
文件:
#
在行首放置一个符号GRUB_HIDDEN_TIMEOUT=0
来注释掉该行。如果该行不存在,那么您可以改为注释掉此行:# GRUB_TIMEOUT_STYLE=hidden
,然后更改GRUB_TIMEOUT=0
为GRUB_TIMEOUT=5
,例如,在 grub 菜单自动登录之前为其设置 5 秒超时。保存更改并运行
sudo update-grub
以应用更改。
这个问题的答案是“如何更改 /boot/grub/grub.cfg 中的 UUID“由“Pierre ALBARÈDE”给出的最佳方法是什么?那篇文章中有很多选择,我仍然有点困惑,不知道从那里或从其他地方得到的最佳方法是什么。不过,当我发出命令“sudo blkid”来获取系统上所有磁盘的 UUID 时,我得到了 EFI(启动)分区 sdc5 的条目,如下所示:
命令 blkid
/dev/sdc5:UUID="1887-E4A1" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="d05239a5-e32f-4d3c-bc80-76bca4afb0b8"
有 UUID,也有部分 UUID。哪个 UUID 需要添加到 GRUB 菜单?(我想我可以检查我正在复制的源磁盘的菜单来弄清楚这一点,但我希望问题的这一部分也可以在答案中得到解决。)
- 可以修改 etc/defualt/grub 文件以允许选择启动选项,并且可以使用“e”从磁盘成功启动到 Ubuntu:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
#enable OS PROBER
GRUB_DISABLE_OS_PROBER=false
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
在此之后,问题的答案是“如何更改 /boot/grub/grub.cfg 中的 UUID“Pierre ALBARÈDE” 给出的“可用于更新中的 UUID:直接更改中的 UUID/boot/grub/grub.cfg(自从/boot/grub/grub.cfg不会自动更新),并且/boot/efi/EFI/ubuntu/grub.cfg并且还 /etc/fstab.然后运行sudo 更新 grub。
我是否遗漏了更新文件所需的步骤sudo 更新 grub不更新然后运行sudo 更新 grub一旦启动到新磁盘。
最好的方法是什么,以便新的克隆磁盘可以像旧磁盘一样启动,并在每个相应的配置文件中使用正确的 UUID?