You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Windows命令提示符为ext4分区中的GRUB添加手动启动项

如何通过Windows命令提示符为ext4分区中的GRUB添加手动启动项

嘿,我之前也踩过Insyde BIOS的坑,这种基础款BIOS完全不给手动添加EFI启动项的选项,确实闹心。不过别慌,咱们可以通过Windows的命令提示符来搞定这个问题,步骤很清晰:

步骤1:挂载EFI系统分区(ESP)

首先得把那个存着GRUB EFI文件的FAT32分区(你说的Volume3)给挂载上,Windows默认不会自动挂载ESP:

  • 右键点击开始菜单,选择「Windows终端(管理员)」或者「命令提示符(管理员)」,一定要用管理员权限哦
  • 输入 diskpart 进入磁盘分区管理工具
  • 输入 list disk,找到你的第二块SSD(看容量就能区分开),记下来它的磁盘号(比如Disk 1
  • 输入 select disk X(把X换成你刚才找到的磁盘号)
  • 输入 list partition,找到那个FAT32格式的分区(一般是几百MB大小,类型显示为「系统」),记下来分区号
  • 输入 select partition Y(Y是分区号)
  • 输入 assign letter=Z: 给这个分区分配一个盘符,选一个没被占用的就行,这里用Z举例
  • 输入 exit 退出diskpart工具

步骤2:把GRUB添加到Windows启动引导项

回到命令提示符窗口,执行下面的命令来添加启动项:

  1. 先创建一个新的启动项:
    bcdedit /create /d "Arch Linux (GRUB)" /application bootsector
    
    这里的"Arch Linux (GRUB)"是启动项的显示名称,你可以改成自己喜欢的,比如「Arch引导」都行
  2. 执行完上面的命令后,会返回一个类似{1a2b3c4d-5e6f-7g8h-9i0j-klmnopqrstuv}的GUID,把这个字符串复制下来,后面要用到
  3. 设置启动项对应的设备:
    bcdedit /set {你的GUID} device partition=Z:
    
    {你的GUID}替换成刚才复制的那个字符串
  4. 指定GRUB EFI文件的路径:
    bcdedit /set {你的GUID} path \EFI\grub\grubx64.efi
    
  5. 把这个新启动项加到开机选择菜单里:
    bcdedit /displayorder {你的GUID} /addlast
    
    要是你想让它排在菜单最前面,就把/addlast改成/addfirst

步骤3:验证和收尾

  • 重启电脑,你就能在Windows启动管理器里看到刚才创建的「Arch Linux (GRUB)」选项了,选它就能进入GRUB引导Arch了
  • 如果以后不需要那个ESP分区的盘符Z了,可以再打开diskpart,选中对应分区后输入remove letter=Z:来移除盘符

哦对了,这里要提一句:UEFI本身是不支持读取ext4分区的,所以你说的GRUB EFI文件在ext4里其实是个误区——GRUB的EFI引导文件必须放在FAT32格式的ESP分区里才能被UEFI识别。你用LinuxReader看到的路径应该是ESP分区里的路径,不是ext4的。如果真的是在ext4分区里,那得先把grubx64.efi复制到ESP分区的EFI/grub目录下,再按上面的步骤操作。

备注:内容来源于stack exchange,提问作者DavidGordiienko

火山引擎 最新活动