Error:no such device:3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
Failed to boot default entries.
Press any key to continue.
原因是电脑不支持 uuid的搜索, soier 的修复过程证实了这个问题,见 viewtopic.php?f=77&t=238175
原贴使用的是 live DVD进入修复系统模式,的shell 下chroot 修复,livecd 没有修复系统模式,现的根据他的方法写个 livecd (能支持ext4读写的其他版本的live Linux一可以)下的修复办法,希望有这个问题的朋友测试下看行不行(我电脑没这个问题,没办法测试

1、livecd 启动进入试用系统
2、挂载 / 分区,比如 / 分区为 /dev/sda7
sudo mount /dev/sda7 /mnt
如果有 /boot 单独分区,则挂载 /boot 分区
3、修改 grub.cfg
sudo chmod +w /mnt/boot/grub/grub.cfg
sudo chmod +w /mnt/grub/grub.cfg (/boot 单独分区的)
sudo gedit /mnt/boot/grub/grub.cfg
sudo gedit /mnt/grub/grub.cfg (/boot 单独分区的)
找到 grub.cfg 可所有的这句
search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
的前面加上 # 号注释掉
# search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
这句的grub.cfg中有好几处,后面的uuid不尽相同,要全部找到并注释掉
4、重启试试能否进入系统,可这进系统再进行下个步
5、sudo gedit /usr/lib/grub/grub-mkconfig_lib
找到173-175行
if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
fi
前面全部加#注释掉,记住从 if 开始到 fi结束,以防止语法错误
# if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
# echo "search --no-floppy --fs-uuid --set ${fs_uuid}"
# fi
然后
sudo update-grub
这样重建出来的 grub.cfg 就没有
search --no-floppy --fs-uuid --set 3c7c1d30-86c7-4ea3-ac16-30d6b0371b02
的语句