对不起 这些信息我都没提供
先激活那个vg
ls /mnt(没东西的话继续,有东西的话umount /mnt/目录名 全取消挂载)
mount /dev/mapper/system-root /mnt
mount --bind /dev /mnt/dev
mount /dev/sda7 /mnt/boot/efi
chroot /mnt
到此为止你应该已经有正确的chroot环境了,我没有leap真机测试,这都是查的。
grub2-install /dev/sda7(重装grub到你第二个efi分区)
efibootmgr -c -d /dev/sda -p 7 -L opensuse-secureboot -l '\EFI\opensuse\shim.efi'(在EFI NVRAM注册启动项)
efibootmgr --verbose | grep "opensuse"
最后一条命令有输出一行带”opensuse-secureboot“的项目就对了,重启电脑,按F10/F2/F6(具体得看电脑)进BIOS设置,确定刚刚添加的启动项顺序是最优先的,保存重启应该能进系统了就。这都是查的,上一次修太久了不记得了,出问题我不负责。
参考(有些不是针对efi系统的,千万别直接抄):
https://forums.opensuse.org/showthread.php/492039-Repair-Grub2-Efi-Boot-Entry-in-Rescue-Console-form-DVD
https://forums.opensuse.org/content.php/128-Re-install-Grub2-from-DVD-Rescue
https://wiki.debian.org/GrubEFIReinstall
https://wiki.archlinux.org/index.php/GRUB#Installation_2
https://forums.opensuse.org/showthread.php/528400-Repair-a-broken-UEFI-GRUB2-openSUSE-boot-scenario
太感谢您了!
按照你说的方法,在执行grub-install /dev/sda7 这一步的时候出问题了。
错误信息是
grub2-install: error: cannot find a device for /boot/grub2 (is /dev mounted?)
这不是首先就mount了么?
先退出chroot
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
下面一条换成grub2-install --target=x86_64-efi /dev/sda7
在rescue下 我依次执行了这些命令
vgscan
vgchange -a y system
mount /dev/mapper/system-root /mnt
mount --bind /dev /mnt/dev
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount /dev/sda7 /mnt/boot/efi
chroot /mnt
最后执行这一句
grub2-install --target=x86_64-efi /dev/sda7
出错了
错误信息是 /usr/lib/grub2/x86_64/modinfo.sh不存在,照片里满屏的字 是我用ls /usr/lib查看了一下
这我也不是很明白咋回事了。你chroot之后,联网(用网线会简单一点),然后
zypper in -f grub2-x86_64-efi shim
重装一下这两个包,看看会不会好一点。
楼主 大过年的 休息一下吧 你的问题可能就是出在你的分区是LVM的方式上 我不是很懂这个东西
这里给你我自己曾经修复的记录吧 这个博客刚付款了 三个月之后还不知道能不能访问 希望能有所帮助http://tianwaifeixian.leanote.com/post/5d79f6d36de7
論壇裏面的鏈接:https://forum.suse.org.cn/t/grub2/398/5
+1,过年了歇歇吧,这样我也不是很明白了。碰到特别棘手的问题我还是会重装,因为有时候查不到资料浪费时间太严重。
还是出错,grub2-install /dev/sda 出错
错误信息如下
如果是grub2-install /dev/sda7也不行 错误信息完全一致。
另外加—target=x86_64-efi也不行
@swiatoslaw 过了一遍帖子,我感觉是你没 mount 你原来系统的 /usr,所以你运行 grub2 install 的时候才会提示那个 modinfo.sh 找不到。
我想看看你的 vgscan 和 vgchange -a 的结果。
另外别忘了把那些日子拷贝出来让我看看。
前一个图,需要复制 /etc/resolv.conf。后一个图,bind mount /run 试试。
不懂 是说我现在连不上网?
在 rescue 下,先 ping baidu.com 看看能不能连上网。不能上网就先运行 yast,网络设置,把网络弄上。另外你最早 grub2 install 的时候,用的不是 “—target=x86_64-efi”,而是 “—taget”,没有那个选项的
把网络弄上又能干嘛呢?全是命令行
弄上你就能 zypper install grub2 那些东西了啊…之前你不是装不上么
我错了 我错了 我错了
查看无线网卡的设备名:
ip a
我的是 wlp0s20f0u9:
3: wlp0s20f0u9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 38:83:45:18:b9:62 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.25/24 brd 192.168.31.255 scope global wlp0s20f0u9
valid_lft forever preferred_lft forever
顺便说下我的有线网卡是 enp3s0。
下面切换到 root:
su
然后查看可用的 NetworkManager 连接:
nmcli con show
名称 UUID 类型 设备
D7-3-101 3ca45359-5d19-4574-b5b0-3d8251a82039 802-11-wireless --
Wired connection 1 bd119e48-f955-3a4a-9e5c-327b4199a75c 802-3-ethernet --
要是这里面有你之前的连接,连网的命令就是:
nmcli con up uuid 3ca45359-5d19-4574-b5b0-3d8251a82039
这里我连接的是无线,有线就用另一个 uuid 即可。
要是没有连接,新建无线连接用这个命令:
nmcli dev wifi connect <SSID> password <password>
新建有线连接用这个命令:
nmcli con add type ethernet con-name <SSID> ifname enp3s0
要是静态连接,在上面的命令后面添加:
ip4 192.168.1.50/24 gw4 192.168.1.1
连接创建好后,假如要修改 dns:
nmcli con mod <SSID> ipv4.dns “8.8.8.8 8.8.4.4”
然后 nmcli con down <SSID>
再重新 up 一下就可以。