Deepin v20 EFI 启动错误!
Tofloor
poster avatar
二十六画生
deepin
2020-10-12 21:33
Author
安装系统后,经测试,EFI 启动存在问题。
1. 安装系统后,EFI 分区会包含:
  1. root@Deepin:~# tree /boot/efi/EFI
Copy the Code

  1.     tree /boot/efi/EFI
  2.     /boot/efi/EFI
  3.     ├── boot
  4.     │   ├── bootx64.efi
  5.     │   ├── grub.cfg
  6.     │   └── grubx64.efi
  7.     ├── ubuntu
  8.     │   ├── grub.cfg
  9.     │   └── grubx64.efi
  10.     └── UOS
  11.     ├── fbx64.efi
  12.     ├── grub.cfg
  13.     ├── grubx64.efi
  14.     ├── mmx64.efi
  15.     └── shimx64.efi

  16.     3 directories, 10 files
Copy the Code

2. 经过删减后,必须保留  /boot/efi/EFI/boot 和  /boot/efi/EFI/ubuntu 目录,否则无法引导!:
  1. root@Deepin:~# tree /boot/efi/EFI
Copy the Code
  1. /boot/efi/EFI
  2. ├── boot
  3. │   ├── bootx64.efi
  4. │   ├── grub.cfg
  5. │   └── grubx64.efi
  6. └── ubuntu
  7.     ├── grub.cfg
  8.     └── grubx64.efi

  9. 2 directories, 5 files
Copy the Code


3. 然后我们来试试删除 /boot/efi/EFI 目录后,重新安装 EFI 试试
  1. root@Deepin:~# apt install grub-efi
  2. root@Deepin:~# rm -rf /boot/efi/EFI
  3. root@Deepin:~# grub-install --efi-directory=/boot/efi
  4. root@Deepin:~# update-grub
  5. root@Deepin:~# tree /boot/efi/EFI
Copy the Code
  1. /boot/efi/EFI
  2. └── deepin
  3.     ├── fbx64.efi
  4.     ├── grub.cfg
  5.     ├── grubx64.efi
  6.     ├── mmx64.efi
  7.     └── shimx64.efi

  8. 1 directory, 5 files
Copy the Code

4. 此时EFI只存在 /boot/efi/EFI/deepin 目录,重启后进入 GRUB SHELL,无法进入系统!

我们可以在 GRUB SHELL 执行命令
  1. grub> configfile /EFI/deepin/grub.cfg
Copy the Code


5. 总结
深度系统启动相关的包存在不清不楚的情况,安装后,efi里面会出现ubuntu和UOS,并且如果清除 ubuntu 目录,会导致系统无法启动,使用 grub-install 工具也无法修复,这有证明 grub-install 相关包中包含的 EFI 固件存在问题,启动这么重要的事情为什么没有人严格测试呢?希望深度越来越好!


Reply Favorite View the author
All Replies
二十六画生
deepin
2020-10-12 22:48
#1
使用 efibootmgr 添加 EFI 启动项后,仍然不能解决问题,我估计保留 ubuntu 下面的文件就可以?




Reply View the author
忘记、过去
deepin
2020-10-13 10:54
#2
别说了,祖传问题了......从 15.11 甚至更早以前的版本开始一直是这样子的。当初作死干过删除的事儿,然后因为不会恢复只能重装了...... XD

deepin 或者 UOS 文件夹可以没有,boot 文件夹少数电脑能自定义启动项的话没有也可以,ubuntu 文件夹不行。

不过我记得以前说是可以合并文件夹啥的,不太记得有没有这个操作了......

以前一直以为是 deepin 需要借用 ubuntu 的 UEFI 平台秘钥才这么搞得,想通过 BIOS安全启动 好像有要求来着......也不晓得对不对......

https://zhuanlan.zhihu.com/p/25279889
Reply View the author
dp-tiny-driver
deepin
2021-02-27 03:57
#3
忘记、过去
别说了,祖传问题了......从 15.11 甚至更早以前的版本开始一直是这样子的。当初作死干过删除的事儿,然后因为不会恢复只能重装了...... XD

deepin 或者 UOS 文件夹可以没有,boot 文件夹少数电脑能自定义启动项的话没有也可以,ubuntu 文件夹不行。

不过我记得以前说是可以合并文件夹啥的,不太记得有没有这个操作了......

以前一直以为是 deepin 需要借用 ubuntu 的 UEFI 平台秘钥才这么搞得,想通过 BIOS安全启动 好像有要求来着......也不晓得对不对......

https://zhuanlan.zhihu.com/p/25279889

我分析了一下,对于deepin v20,是UOS的grub预置的证书可以校验deepin的内核,而ubuntu的grub校验不了deepin v20的内核。

我装了ubuntu和deepin v20 两个系统,用 efibootmgr -o 命令把ubuntu的efi调到最前面时启动后进deepin系统会报kernel 签名校验不通过的错误。必须把UOS的efi设成第一启动,然后才能正常进deepin系统。确实是UOS的efi读得grub.cfg配置是ubuntu/grub.cfg,这个感觉是deepin shimx64.efi或者哪个程序有bug,不去读ubuntu/grub.cfg完全可以的。

Reply View the author
duanyao
deepin
2021-07-01 03:02
#4

现在(deepin 20.2.2)的 efi bug 和修正方法是这样的:

https://bbs.deepin.org/zh/post/222049

Reply View the author
Comments
二十六画生
2021-07-02 07:55
已经解决更新系统后引导问题!谢谢你!!
二十六画生
deepin
2021-07-02 07:38
#5
duanyao

现在(deepin 20.2.2)的 efi bug 和修正方法是这样的:

https://bbs.deepin.org/zh/post/222049

今天更新了系统后,又遇到问题了

https://bbs.deepin.org/zh/post/222218

我去试试你的方法,谢谢你!~

Reply View the author