问题
sudo nano /etc/default/grub
打开grubsudo update-grub
现在我得到如下错误:
/usr/sbin/grub-probe:error:failed to get canonical path of /cow.
答案1
从Ubuntu live CD引导(尝试14.04和16.04)后,通过对grub分区运行update-grub chroot 'ed来解决此问题。将下面的/dev/sda1
替换为你安装grub的分区,
mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2 # inside chroot
答案2
这可以修复该问题:
mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2 # inside chroot
另一个(更简单)解决方案如果继续遇到问题,应该将/boot分区复制到/(root )分区,为此,使用Ubuntu live boot dvd启动系统,并打开终端,在里面键入:
sudo su
fdisk -l
查找你拥有的分区,在我的情况下,sda1是我的/boot分区,它的大小约为250MB,而sda5约为500GB。我使用以下命令中的值:
mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/
mkdir /mnt/root/
mount /dev/sda5 /mnt/root/
cp -R /mnt/boot/ /mnt/root/boot/
设置数据分区的可引导标志,并将它删除:
fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR
mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/
mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/
chroot /mnt/chrootdir/
grub-install /dev/sda