如何在现有的 Lubuntu 安装上安装 grub?

如何在现有的 Lubuntu 安装上安装 grub?

我有Lubuntu 16.04一个 USB 闪存。它有点用,但grub无法安装。

现在我正在努力安装grub

我现在正在使用 Live CD。有什么想法我应该做什么吗?

我尝试挂载分区并运行:

grub-install --root-directory=/mnt /dev/sda

但这失败了

The file /mnt/boot/grub/stage1 not read correctly..

如何解决这个问题?

答案1

您需要安装本地驱动器,设置 chroot 环境并在其上安装 grub。

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

    sudo mount /dev/sdb1 /mnt/foo
    
  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
    
  3. 设置chroot环境

    sudo chroot /mnt/foo
    
  4. 创建grub的配置文件:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
    

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

    $ 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
    
  5. 现在将 grub 安装到驱动器的 MBR(记得更改/dev/sdb为你实际想要安装它的驱动器)

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

    exit
    sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
    
  7. 尝试从驱动器启动,这次您应该有一个 grub 菜单。

相关内容