前要介绍:
笔者在移动硬盘上安装了windows 10的win to go (WTG),后来由于工作需要,把一个UEFI启动方式的ubuntu迁移到该硬盘,做成双系统移动硬盘。并把ubuntu的ESP分区的/efi/ubuntu目录拷贝到windows的ESP分区。ESP分区目录结构如下:
└─EFI
├─Microsoft
├─Boot
└─ubuntu
此时,用这个移动硬盘进系统,默认是进windows,无法进入ubuntu。
方法一:
在开机进BIOS设置,在里边增加UEFI启动项,选择ESP分区的ubuntu目录下的shimx64.efi( \EFI\ubuntu\shimx64.efi ),保存重启按F12(具体看主板型号,有些是按F10)就能看到新增的启动项了。再选新建的启动项就可以进ubuntu了。
请注意:这个方法需要主板支持,不同主板设置方法大同小异。
方法二:
如果方法一太难,可以试试其他的方法,跟方法一原理一样,只是方法不同,都通过修改主板参数增加UEFI启动项, https://blog.youkuaiyun.com/qq_24253277/article/details/106046414
方法三
使用grub。把移动硬盘里的ESP分区的\EFI\Boot\bootx64.efi 替换成ubuntu系统的bootx64.efi。如果 你没有找到ubuntu系统的bootx64.efi,可以从github下一个,https://github.com/pbatard/UEFI-Shell/releases/tag/23H2。这时候,用移动硬盘进系统,默认进ubuntu系统。在ubuntu系统下,修改/boot/grub/grub.cfg文件,增加以下选项:
## win10 boot (2023.12.25 by Ablen)
menuentry 'Win10' -class windows --class os $menuentry_id_option 'osprober-efi-DA18-EBFA' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root BFD0-9CFE
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
并保存文件。其中,“search --no-floppy --fs-uuid --set=root BFD0-9CFE”中的BFD0-9CFE为ESP分区的UUID。关于怎么获取磁盘UUID,请自行搜索。
再次强调:
方法一、二 是修改主板配置,对于我拿着移动硬盘到处插,到处启动我的系统的使用是不适用的,所以,只能使用方法三。方法三是把引导写进移动硬盘里的。另外,windows真gou,它的EFI不能引导启动ubuntu。但是ubuntu的EFI(grub)可以用来引导启动windows。
至此,搞定!!!
2023-12-25 首编