我已经将 Ubuntu 的可启动备份创建到外部 USB 硬盘上。现在,当从内置硬盘加载 grub 时,我可以从 grub 启动到外部备份,但无法在外部硬盘上启动 grub。在告诉我的 PC BIOS 从 USB 启动后,我只收到消息“重新启动并选择正确的启动设备”。外部 USB 硬盘是“WD My Passport Ultra 1TB 驱动器”。
以下是我实现这一目标所采取的步骤:
- 删除并重新创建外部驱动器上的 msdos 分区表。
创建分区如下..
Model: WD My Passport 0820 (scsi) Disk /dev/sdb: 1000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 483GB 483GB primary ext3 boot 2 483GB 698GB 215GB primary fat32 3 698GB 1000GB 302GB primary ntfs
结果是:
Disk /dev/sdb: 1000.2 GB, 1000170586112 bytes 255 heads, 63 sectors/track, 121597 cylinders, total 1953458176 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00019d8c Device Boot Start End Blocks Id System /dev/sdb1 * 2048 943720447 471859200 83 Linux /dev/sdb2 943720448 1363150847 209715200 b W95 FAT32 /dev/sdb3 1363150848 1953458175 295153664 7 HPFS/NTFS/exFAT
第二和第三个分区用于其他非 Linux 的备份。
使用 rsync 将我的整个 Ubuntu(从根目录往下)复制到 /dev/hdb1 上的外部驱动器(我的 Ubuntu 备份分区),主要使用此作为指南:https://wiki.archlinux.org/index.php/Full_system_backup_with_rsync
修改了备份的 /etc/fstab(即 /media/LinuxBackup/etc/fstab,其中 /media/LinuxBackup 是 /dev/sdb1 的挂载点)以仅包含两个条目:
proc /proc proc defaults 0 0 UUID=ba0ad23c-1625-4dbf-ae50-0e4e68f469a6 / ext3 relatime,errors=remount-ro 0 1
其中上述 UUID 是 /dev/sdb1 的 UUID。
在内部驱动器的 Ubuntu 分区(/dev/hda7)中,我修改了 /boot/grub/menu.lst 以包含以下条目:
title USB BOOT, Ubuntu 12.04.4 LTS, kernel 3.2.0-67-generic uuid ba0ad23c-1625-4dbf-ae50-0e4e68f469a6 kernel /boot/vmlinuz-3.2.0-67-generic root=UUID=ba0ad23c-1625-4dbf-ae50-0e4e68f469a6 ro quiet splash initrd /boot/initrd.img-3.2.0-67-generic quiet
我重新启动并选择了上述条目,并成功从外部硬盘启动到 Ubuntu。我通过检查 /dev/sdb1 是否已安装为 /(而不是 /dev/sda7,因为它是从内部驱动器启动时安装的)来确认这一点。
我尝试通过运行以下命令将 grub 加载到外部硬盘的主引导记录 (MBR) 中:
# sudo grub-install /dev/sdb
这运行成功。
我重新启动,将我的 PC BIOS 更改为仅从 USB 启动,希望出现 grub,但却出现“重新启动并选择正确的启动设备”,看起来好像 grub 不在外部驱动器上。
我现在有点不知所措。这可能是我的主板 BIOS 或 My Passport Ultra 的问题吗?
答案1
在我的问题的第 8 步中,我指出我“将 PC BIOS 更改为仅从 USB 启动”。也就是说,我进入 BIOS 设置,将 USB 设备设置为第一启动设备,并禁用所有其他设备。
为了弄明白为什么这不起作用,我绞尽脑汁,对 Ubuntu 和 grub 进行了多次试验,最后我尝试在首次启动时按 F8 键来获取 PC 的启动选择弹出窗口。然后,我选择了 USB 硬盘,瞧!我配置在 USB 驱动器上的 grub 菜单出现了,我可以在外部驱动器上使用 Ubuntu,完全忽略内部驱动器。
我仍然不明白为什么使用 BIOS 的启动选择弹出窗口时可以正常工作,但在我的 BIOS 设置中选择 USB 设备作为第一个启动设备时却不起作用。不过,这显然不是 Ubuntu 或 grub 的问题,而是我的主板 BIOS 出了问题(我使用的是华硕 P5KPL-CM)。