我有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。
安装您将使用的分区
/
(我将调用驱动器/dev/sdb
和/
分区sdb1
,您的系统上的名称可能不同,您需要使用正确的名称)某处:sudo mount /dev/sdb1 /mnt/foo
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
设置
chroot
环境sudo chroot /mnt/foo
创建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
现在将 grub 安装到驱动器的 MBR(记得更改
/dev/sdb
为你实际想要安装它的驱动器)grub-install /dev/sdb grub-install --recheck /dev/sdb
退出
chroot
并卸载所有内容,以便您的运行系统恢复正常:exit sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
尝试从驱动器启动,这次您应该有一个 grub 菜单。