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

我对我所找到的两个grub.cfg都执行了cat 内容没有什么差别
结果如图

你说的应该是不对的。我通过 blkid 看到的硬盘分区的功能如下(最好能提供 chroot 外,fdisk -l 的结果辅助确认下):

分区    功能
sda1    windows 恢复分区
sda2    windows 的 EFI
sda3    windows 保留分区
sda4    windows 主分区
sda5    windows 数据分区(标签是 OS X?:joy:)
sda6    windows 数据分区(标签是新加卷)
sda7    openSUSE 的 EFI
sda8    openSUSE 的 LVM

也就说,你暴露在 lvm 外的只有一个 sda7。

另外你 fstab 看的也不对,那两个通过 uuid 判断应该是你的在 lvm 中的 system-root。不知道这样 grub2 能否识别到 lvm 里面的东西。回头我再查下。

下面就是给我在 chroot 下,efibootmgr -v 的结果和 gdisk -l /dev/sda7 的结果。

啊呀 你还全部抄下来了?那个是我还能引导进入的时候用yast查看的结果吧?我拍了照片 你说的是对的 sda6应该是我最大的一个分区 是在windows下面当作E盘来用的。
sda5的标签确实是OSX 本来打算装三个系统 在这个分区装个苹果来着
现在看来我真是糊涂 既然用了lvm 那么swap,root和home都在用一个分区里!

另外 chroot 之后,/boot/grub2/grub.cfg 也给我看下。

/boot/grub2/grub.cfg这个没有 ,其他的你要的内容容都在这幅照片里

你看看我说的对不对:

efibootmgr 显示的启动顺序是 /dev/sda7, /dev/sda2, /dev/sda1, cdrom, hd。

其中,sda7 是启用了 secureboot 的 openSUSE 引导,sda2 是没启用 secureboot 的 openSUSE 引导。

你关闭了 secureboot,但是你的 /etc/fstab 指向的依然是启用了 secureboot 的 openSUSE 引导。问题可能出现在这里。

另外你的 /boot 文件夹下的内容能不能给我看下啊,ls -l /boot。

另外 chroot 下面,uname -r 的结果也给我看一下,你的那个 i386 的项目可能要删掉

真厉害 要是能引导进入opensuse 重新设置bootloader之后 估计windows10的引导问题也就可以解决了!
这两个命令的结果分别是照片中最下面几行:

是的。我现在不知道你怎么会弄出两个 EFI 分区的,也许 /dev/sda2 的是原来 Windows 的 EFI 分区,被你乱试装上 openSUSE 了。你是否有印象原来 sda2 是干嘛的?

要是上面那种情况的话,你应该先修 Windows 的 EFI 引导(重装应该就可以,注意不要重新分区,原有盘符格式化就可以了)…因为 openSUSE 的引导用 rescue 修,即使在 efibootmgr 里丢了也能找回来。先修 openSUSE 的话,后修 Windows 就会把 openSUSE 的又覆盖了。

另外我明白为什么 /boot/grub2/grub.cfg 为什么没有了……我让你把 sda7 挂载到了 /boot,实际上应该是先挂 dev/mapper/system-root 到 /mnt,然后下面应该是有个 /boot 文件夹的。然后再挂 sda7,mount /dev/sda7 /mnt/boot/efi。你试试重建下 chroot 再查找那个 grub.cfg……

另外 uname 命令我打错了,不是 -r,应该是 -m 能够看到架构是不是 x86_64。

uname -rm返回的结果是4.4.76-1-default x86_64
退出chroot,执行 mount /dev/sda7 /mnt/boot/efi
再执行cat /boot/grub2/grub.cfg还是没有这个文件或者目录
重启之后 重新来一遍,这次好了


文件很长,有没有办法分页显示?

sda2应该就是windows的EFI分区,装opensuse的时候 我选择了LVM、专家模式 不知道怎么软件又给我乱分区来着。windows我也不想重装,重装之后装软件又得花时间。
如果先修好opensuse,不能通过重建grub2的引导来把windows引导出来么?

我想看 grub.cfg 里的那些 menuentry。你上下键翻翻看看有没有。

openSUSE 引导 Windows 是可以的,但你那个 /sda2 就废啦。

修复 openSUSE 引导简单,就是进入 chroot 之后:

用 efibootmgr 把 sda2 和 sda7 的引导删掉:

efibootmgr -bB 0000
efibootmgr -bB 0002

然后重装 grub:

grub2-install —target=x86_64-efi/dev/sda7 
grub2-mkconfig -o /boot/grub2/grub.cfg

然后把 /etc/fstab 的内容发给我,需要删掉一些东西。

上下键只能在输入的命令当中找,需要分页显示,以下四张图就是全部内容了

如果只是废掉一个sda2这个损失不大,sda3或者4是C盘 sda5是D盘,sda6是E盘, sda7和8是opensuse。

看样子,里面跟menuentry有关的是这些:

if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="–id"
else
menuentry_id_option=""
fi

export menuentry_id_option

另外还有一条
if [ -n “$extra_cmdline” ]; then
submenu “Bootable snapshot #$snapshot_num” {
menuentry “If OK, run ‘snapper rollback’ and reboot.” {true; }
}
fi

另外,退出chroot之后用fdisk -l得到:


sda4、5、6分别是windows下的CDE三个盘符。

把 chroot 下的 /etc/fstab 发出来看看。

跟lvmid有关的在这里,用电脑看的时候右单击在新的页面显示可以放大,也可以右单击保存,用图片浏览软件看,绝对够清晰。

cat /etc/fstab结果如下

现在没有网络,直接用liveCD可以装上grub2么?

看一下 vgdisplay system 的结果,那里面有 lvmid

可以。你 chroot 里面那个系统的 grub2 还在的。

另外 btrfs subvolume list 看下你的 btrfs 子卷。