分别介绍Arch和Ubuntu系统下chroot安装grub的方法。

  • Arch

下载一张Arch系统的光盘镜像,烧录到优盘或者光盘,从优盘或光盘启动系统。将待修复的系统挂载到当前live系统下,这里以挂载到/mnt为例,待修复系统所在分区假设为/dev/sda1。假如待修复系统挂载了多个分区,则需要分别挂载到live系统下,也就是说,在live系统的挂载点上有一个完整的文件系统,这是为了保证grub软件正常工作。下面以上面提到的例子来说明修复过程。

挂载分区:

#mount /dev/sda1 /mnt

chroot到待修复系统挂载点

#arch-chroot /mnt

安装grub工具包

#pacman -S grub-pc #BIOS模式启动的系统
#pacman -S grub-efi-amd64 #UEFI模式启动的系统(64位)

更新grub配置文件

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

退出chroot

#exit

重启

#reboot
  • Ubuntu

下载Ubuntu Server或者Desktop镜像,烧录到U盘或光盘,从U盘或光盘启动。Server版在启动安装选择语言的界面的帮助按钮下能够找到shell的入口,桌面版则打开一个Terminal,当然也可以在虚拟终端下进行。

先挂载分区,仍然假设待修复系统根分区为/dev/sda1

#mount /dev/sda1 /mnt

此外,为保证grub程序运行,仍需要挂载另外几个几个分区,需要加上–bind选项,挂载的是目录内容

#mount --bind /dev /mnt/dev
#mount --bind /dev/pts /mnt/dev/pts
#mount --bind /proc /mnt/proc
#mount --bind /sys /mnt/sys

挂载完毕,chroot

#chroot /mnt

安装grub

#apt install grub-pc #BIOS模式
#apt install grub-efi-amd64 #UEFI模式

更新grub配置文件

#update-grub

以上就是Arch和Ubuntu两个系统chroot修复grub的方法,如果有什么问题,欢迎给我留言。

Leave a Reply

Your email address will not be published. Required fields are marked *