https://blog.csdn.net/Jane_Jessica/article/details/100104172
==========================================================
前段时间重装了系统,导致Grub2的引导消失,所以现在需要进行恢复。
首先需要使用livecd或者是其它工具进入rescure环境,然后按默认操作chroot到/mnt/sysimage
我首先尝试使用经典方法:grub2-install /dev/sdb1
sdb1是我的/boot/efi分区,这里要注意不要装到/boot下
然后系统报错grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory
手动去/usr/lib/grub目录下发现的确没有x86_64-efi这个目录
使用Ctrl+D退出chroot的环境重新进入rescure的bash,然后使用cp命令将/usr/lib/grub/x86_64-efi/下的所有文件拷贝到/mnt/sysimage/usr/lib/grub/x86_64-efi/
# cp -R /usr/lib/grub/x86_64-efi/* /mnt/sysimage/usr/lib/grub/x86_64-efi/
然后使用chroot切换到/mnt/sysimage环境,继续运行
# grub2-install /dev/sdb1,即可成功安装grub2
然后我们还需要重新生成配置文件:
# grub2-mkconfig -o /boot/grub2/grub.cfg
为了保险起见我重新运行了一次
# grub2-install /dev/sdb1
重起之后即可正常引导进入Linux系统
————————————————
版权声明:本文为CSDN博主「ytingone」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ytingone/java/article/details/59209526
==========================================================
源码编译grub2
官网
下载
./configure make make install(yum install bison flex -y)
默认安装路径[root@arm-centos /]# ls usr/local/lib/grub/arm64-efi/
或指定路径
./configure --disable-werror --prefix=/usr/local/xxx
./configure --with-platform=efi --target=x86_64 --disable-werror --prefix=/usr/local/xxx
在选择解决方案上,方案1是个弯路,按照通用的编译原理,如果一个源码支持多个平台,不应该是通过“在不同平台的环境上进行编译来获得不同的产品”,这样的思路成本太高,而应该是“一个编译环境,通过不同的编译参数来进行”,这样才能一份代码,多种产品编译支持。
阅读(6509) | 评论(0) | 转发(0) |