如何让 Ubuntu 开机自动启动?

如何让 Ubuntu 开机自动启动?

我在用Ubuntu GNOME 13.10。我制作了一个备份图像克隆兹拉。备份包含 2 个分区 — 一个是/dev/sda1,其中有 EFI(只有 中的 EFI 文件夹/boot/efi/EFI),另一个是/dev/sda2/,其中有我的根目录和所有其他文件(/)。我已通过 EFI 安装了操作系统。

一切都很好——我可以毫无问题地恢复我的备份。但由于旧硬盘驱动器出现故障,我购买了新的硬盘驱动器。

我安装了新硬盘,一切都恢复正常,除了一件事。我正在恢复备份,没有任何问题,但在 POST 屏幕之后,操作系统没有启动——它每次都会打开 GRUB 命令行界面!

我使用以下命令启动操作系统:

linux (hd0,gpt2)/vmlinuz root=/dev/sda2
initrd (hd0,gpt2)/initrd.img
boot

操作系统启动了,但屏幕上显示此错误:The disk drive /boot/efi is not ready yet or not present。好的,我找到了解决方案 — 操作系统在 BIOS 模式下启动,而不是在 EFI 模式下启动,我删除了 EFI 行/etc/fstab。错误不再显示在屏幕上。

但是每次启动时,GRUB 命令行界面都会在操作系统之前启动。每次启动时我都需要手动加载内核。如何让操作系统自动启动?

以及如何让操作系统再次在 EFI 中启动(这不是强制性的,但我正在寻找解决方案)?

谢谢你!

答案1

看起来你的 /boot/grub/grub.cfg 文件坏了。也许 GRUB 尝试通过 UUID 启动你的系统分区,但你的新分区有不同的 UUID?你可以在终端中运行以下命令来检查分区 UUID:

sudo blkid

该 UUID 也应该位于您的 /boot/grub/grub.cfg 文件中,因此如果它不存在,则可能是问题所在。您可以手动更正它或仅更新 GRUB 文件:

sudo update-grub

如果没有帮助,您可以尝试重新安装 GRUB:

sudo grub-install /dev/sdX
sudo update-grub

(其中 /dev/sdX 是您的系统驱动器)。

如果您无法启动系统,您当然可以使用 Live CD,但您需要绑定您的 /dev、/proc 和 /sys 目录:

  1. 下载 Ubuntu GNOME 13.10 ISO 文件。
  2. 将其刻录到 CD 或 U 盘上(使用 UNetbootin)。
  3. 从该 Live CD 启动。
  4. 在终端:

    挂载您的系统根驱动器,其中 /dev/sdXY 是系统的分区,您可以在 GParted 中检查它以确保无误。

    sudo mount /dev/sdXY /mnt
    

    绑定 GRUB 需要访问的一些目录。

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    

    更改你的根目录。

    sudo chroot /mnt
    

    安装 GRUB(/dev/sdX 是安装 GRUB 的位置,例如系统驱动器的 MBR 扇区)。

    grub-install /dev/sdX
    update-grub
    

    返回到您的正常根目录并卸载所有内容。

    exit
    
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    sudo umount /mnt
    
  5. 现在重新启动,你的 GRUB 就可以工作了。

相关内容