grub2未能获得/cow的规范路径

分享于 

3分钟阅读

ubuntu

  繁體

问题

  • 从安装了plop的CD驱动器开始
  • 选择plop中的USB启动选项
  • 从USB启动
  • 监视器最终给出"超出频率"错误
  • 按Shift+Alt+F1获取终端
  • sudo nano /etc/default/grub打开grub
  • 进行必要的更改
  • sudo 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
    
    
    
    

    CAN  路径  GRUB  canonical