前几天折腾黑苹果的时候, 不小心把EPS分区里的ubuntu目录删了, 然后就发现开机找不到grub了, 这是个悲伤的故事, 然后我就各种查资料啊, 后来发现这种问题还是满好解决的.
1.手动引导进入ubuntu
首先,下载ubuntu的安装镜像(里边有grub2引导), 或者直接下个grub2, 然后装在U盘里.
开机选择u盘进入grub引导. 然后按c进去命令行模式.
然后手动引导进入原先的ubuntu,我的boot分区是独立出来的, 在(hd0,gpt6)里边, 根分区在(hd0,gpt7)里.
如果忘了自己的分区情况, 可以ls,
setroot=(hd0,gpt6)
linux/vmli...roroot=/dev/sda7
initrd/initrd...
boot
省略号部分直接按Tab键补全.然后就能进入ubuntu了.
2.重建ESP分区里的grub引导
在ubuntu里打开命令行,先su进入root模式.然后grub-install -v 注意, 这里的v是小写的.然后屏幕一顿弹出消息, 然后就重建好了.
看有没有重建好的话, 可以mount ESP分区, 然后 看里面有没有个ubuntu的目录, 里面应该有4个文件.
如图所示:
为了以后不再发生这种悲剧, 建议折腾前先把ESP分区备份下来, 以防不测.
先用fdisk -u -l 看一下哪个是ESP分区.
这里看到我的ESP分区是在/dev/sda4, 记下Sectors, 这里是522240.
然后:
dd if=/dev/sda4 bs=512 count=522240 of=./efi.backup
dd的作用是把指定的输入文件拷贝到指定的输出文件.
if=源文件路径, 这是填我们要备份的分区
of=目标文件路径, 这里我写的是在当前目录下生成一个efi.backup的文件
bs=512是指块的大小为512字节
count 就是你要复制多少个块, 这里我们就填上面获得的Sectors.
以后恢复的话,直接dd if=./efi.backup bs=512 of=/dev/sda4恢复就行了.