分别介绍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的方法,如果有什么问题,欢迎给我留言。