昨夜升级nvidia一个什么东西 进不了图形界面 现在连grub都毁了

对不起 这些信息我都没提供

先激活那个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

1赞

太感谢您了!
按照你说的方法,在执行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
出错了
%E5%9B%BE%E7%89%87

错误信息是 /usr/lib/grub2/x86_64/modinfo.sh不存在,照片里满屏的字 是我用ls /usr/lib查看了一下

这我也不是很明白咋回事了。你chroot之后,联网(用网线会简单一点),然后

zypper in -f grub2-x86_64-efi shim

重装一下这两个包,看看会不会好一点。

1赞

非常感谢你的帮助,但还是出错了,错误信息如下


但我可以运行那个半图形界面的yast,就在里面像设置一下boot loader但也还是出错

楼主 大过年的 休息一下吧 你的问题可能就是出在你的分区是LVM的方式上 我不是很懂这个东西
这里给你我自己曾经修复的记录吧 这个博客刚付款了 三个月之后还不知道能不能访问 希望能有所帮助http://tianwaifeixian.leanote.com/post/5d79f6d36de7
論壇裏面的鏈接:https://forum.suse.org.cn/t/grub2/398/5

1赞

+1,过年了歇歇吧,这样我也不是很明白了。碰到特别棘手的问题我还是会重装,因为有时候查不到资料浪费时间太严重。

1赞

还是出错,grub2-install /dev/sda 出错
错误信息如下
如果是grub2-install /dev/sda7也不行 错误信息完全一致。
另外加—target=x86_64-efi也不行

@swiatoslaw 过了一遍帖子,我感觉是你没 mount 你原来系统的 /usr,所以你运行 grub2 install 的时候才会提示那个 modinfo.sh 找不到。

我想看看你的 vgscan 和 vgchange -a 的结果。

另外别忘了把那些日子拷贝出来让我看看。

1赞

现在是拷贝不出来呀 马上上结果!

前一个图,需要复制 /etc/resolv.conf。后一个图,bind mount /run 试试。

1赞

@lilydjwg

openSUSE 的 TTY,要是之前用 NetworkManager 联网的话, 需要用 nmcli 联网。所以他才出现无法解析那些东西,不是 chroot 没网,宿主都没网。

不懂 是说我现在连不上网?

在 rescue 下,先 ping baidu.com 看看能不能连上网。不能上网就先运行 yast,网络设置,把网络弄上。另外你最早 grub2 install 的时候,用的不是 “—target=x86_64-efi”,而是 “—taget”,没有那个选项的 :joy:

1赞

把网络弄上又能干嘛呢?全是命令行

弄上你就能 zypper install grub2 那些东西了啊…之前你不是装不上么

1赞

我错了 我错了 我错了

查看无线网卡的设备名:

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 一下就可以。

2赞