如何修复/安装/重新安装 grub?

the*_*.nc 9 boot laptop bootable linux-mint

所以我开始使用 250GB 硬盘,这是来自 EeePC 1015pem 的库存驱动器,我正试图将其变成 MintBook。该驱动器在物理上是可操作的,但所有数据都已被清除,包括旧操作系统。鉴于此,我将硬盘连接到我的桌面,并从通过 Unetbootin-585 创建的实时 USB 安装了 Linux Mint 16 Xfce。抛开为10GBswap和240GB的ext4/

该驱动器现在拒绝为台式机或上网本启动。两块主板都发出正确的哔哔声序列,所以它们看起来很健康,我可以在两个系统上成功访问 BIOS。但是,启动计算机后唯一出现的就是无响应的命令行。没有错误消息,没有 grub 或 grub-rescue,什么都没有。

除了重新格式化和重新开始之外,还有什么我可以尝试的吗?我将如何安装可以引导我的操作系统的引导加载程序?

ter*_*don 16

因此,听起来您还没有在磁盘上安装引导加载程序(例如 grub)。这意味着尽管您有一个有效的操作系统,但无法启动它,因此您无法使用它。

您需要将硬盘连接到工作计算机(您可以使用 live CD),设置 chroot 环境并在其上安装 grub。

  1. 在某处挂载您将使用的分区/(我将调用驱动器/dev/sdb/分区sdb1,系统上的名称可能不同,您需要使用正确的名称):

    sudo mount /dev/sdb1 /mnt/foo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 绑定grub需要访问的目录

    sudo mount --bind /dev /mnt/foo/dev && 
    sudo mount --bind /dev/pts /mnt/foo/dev/pts && 
    sudo mount --bind /proc /mnt/foo/proc && 
    sudo mount --bind /sys /mnt/foo/sys
    
    Run Code Online (Sandbox Code Playgroud)
  3. 设置chroot环境

    sudo chroot /mnt/foo
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建 grub 的配置文件:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
    
    Run Code Online (Sandbox Code Playgroud)

    如果您安装了多个操作系统,请确保上面的命令列出了所有操作系统。例如:

    $ sudo grub-mkconfig -o /boot/grub/grub.cfg
    Generating grub.cfg ...
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    Found linux image: /boot/vmlinuz-3.10-2-amd64
    Found initrd image: /boot/initrd.img-3.10-2-amd64
    Found linux image: /boot/vmlinuz-3.2.0-4-amd64
    Found initrd image: /boot/initrd.img-3.2.0-4-amd64
    Found linux image: /boot/vmlinuz-3.2.0-3-amd64
    Found initrd image: /boot/initrd.img-3.2.0-3-amd64
    Found linux image: /boot/vmlinuz-3.2.0-2-amd64
    Found initrd image: /boot/initrd.img-3.2.0-2-amd64
    Found memtest86+ image: /boot/memtest86+.bin
    Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
    Found Windows 7 (loader) on /dev/sda2
    done
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在将 grub 安装到驱动器的 MBR(记住更改/dev/sdb为您真正想要安装它的驱动器)

    grub-install /dev/sdb
    grub-install --recheck /dev/sdb
    
    Run Code Online (Sandbox Code Playgroud)
  6. 退出chroot并卸载所有内容,以便您正在运行的系统恢复正常:

    exit
    sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
    
    Run Code Online (Sandbox Code Playgroud)
  7. 尝试从驱动器启动,这次你应该有一个 grub 菜单。