为双系统grub添加Windows10引导启动项

为双系统grub添加Windows10引导启动项

背景

笔记本只有一块SSD硬盘,在笔记本上装有一个win10 操作系统,经过分区后安装了ArchLinux,结果重启电脑后,grub引导界面没有win10的启动项:

使用grub的自动检测,结果没有检测到win10的启动项

mkdir -p /mnt/windows
mount /dev/sda1 /mnt/window
grub-mkconfig -o /boot/grub/grub.cfg

这是自动检测的命令,有兴趣的可以去试一下

所以自能自己手动添加

添加win10启动项

首先你得直到win10的EFI启动项在硬盘的哪个分区,在安装好的ArchLinux下使用fdisk -l查看

在这里插入图片描述

后面的Size Type表示分区类型,显示EFI的就是引导分区,不过这儿有两个EFI分区,所以这时候只能你自己判断一下是哪一个,因为我装ArchLinux系统的时候知道自己把Arch的EFI启动项装在了哪个地方,也就是/dev/sda6,之前的win10操作系统EFI启动项就在/dev/sda1

首先我们要知道win10启动项分区的UUID,使用blkid /dev/sda1或者grub命令均可,详情如下

blkid /dev/sda1
# 或者
grub-probe -t fs_uuid -d /dev/sda1

在这里插入图片描述

可以看到这两个UUID其实是一样的,后面的type是vfat,表示分区类型

然后在/boot/grub/grub.cfg的30_os-prober 中添加如下命令

menuentry 'Microsoft Windows 10' {
	insmod part_gpt	##  -> 现在一般是gpt格式的硬盘
	insmod fat ## -> 实际上是fat格式,可以自己试一下是vfat还是fat
	insmod chain
	search --fs-uuid --no-floopy --set=root XXXX-XXXX ## <- your windows EFI partion UUID
	chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi ## 注意大写
}

在这里插入图片描述

保存退出,reboot系统,就可以选择win10的引导项了。。。

### 如何在GRUB配置文件中正确添加Windows 11启动项 #### 配置GRUB引导程序 GRUB(Grand Unified Bootloader)是一种功能强大的多重引导加载程序,能够管理多个操作系统的启动过程。为了使GRUB支持Windows 11作为可选的启动项之一,需要编辑其配置文件并重新生成GRUB配置。 #### 编辑GRUB配置文件 GRUB的主要配置文件通常位于`/etc/default/grub`,而具体的启动条目则存储在`/etc/grub.d/`目录下的脚本中。以下是具体步骤: 1. **打开终端** 使用超级用户权限访问系统配置文件。 2. **备份原始配置文件** 在修改之前,建议先备份原文件以防出现问题。 ```bash sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup ``` 3. **编辑GRUB主配置文件** 打开`/etc/default/grub`文件进行编辑: ```bash sudo nano /etc/default/grub ``` 修改其中的关键参数如下: - `GRUB_TIMEOUT=10`: 设置等待时间以便手动选择启动项[^4]。 - `GRUB_DEFAULT=saved`: 将默认启动项保存到内存中,方便后续调整。 4. **创建自定义启动条目** 添加一个新的启动条目用于引导Windows 11。可以通过向`/etc/grub.d/40_custom`文件追加以下内容完成此操作: ```bash menuentry 'Windows 11' --class windows --class os { insmod part_gpt insmod ntfs set root='(hdX,Y)' # 替换为实际分区号,例如(hd0,msdos1) chainloader +1 # 加载NTLDR或Bootmgr } ``` 上述代码片段中的`(hdX,Y)`需替换为实际硬盘和分区编号,这取决于Windows 11所在的具体磁盘位置[^2]。 5. **更新GRUB配置** 完成上述更改后,运行以下命令刷新GRUB配置以应用新的设置: ```bash sudo update-grub ``` 6. **验证改动效果** 重启计算机进入GRUB菜单界面查看新增的Windows 11选项是否正常显示以及能否成功切换至对应操作系统环境[^3]。 #### 注意事项 如果遇到无法识别Windows分区的情况,则可能是由于缺少必要的模块驱动所致;此时可以尝试通过安装额外的支持包解决该问题,比如对于CentOS而言就需要引入阿里云EPEL仓库来获取最新版工具集。 ```python # 示例Python代码展示逻辑流程控制而非直接关联主题 def add_windows_entry(grub_config_path): with open(grub_config_path, 'a') as file: entry = """ menuentry 'Windows 11' --class windows --class os { insmod part_gpt insmod ntfs set root='(hdX,Y)' chainloader +1 } """ file.write(entry) add_windows_entry("/etc/grub.d/40_custom") ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值