您尚未登录。

#1 2024-07-30 23:36:08

beginner
会员
注册时间: 2019-10-07
帖子: 269

双系统没有windows启动项

以下是我的操作步骤:

  1. mount /dev/nvme0n1p4 /mnt

  2. mount --mkdir /dev/nvme0n1p1 /mnt/boot

  3. mount --mkdir /dev/nvme1n1p1 /mnt/boot/windows-efi

  4. arch-chroot /mnt

  5. grub-mkconfig -o /boot/grub/grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg的输出:

Generating grub configuration file ...
Found linux image: /boot/vnlinuz-linux
Found lnitrd image: /boot/initramfs-linux.img
Fount fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Warning:os-prober will be executed to detect other bootable partitions
Adding boot menu entry for UEFI Firmware Settinge ...
done

不知道哪里出错了, 我之前也是类似的步骤, 一次成功, 不知道这次为什么出这样的问题
windows的引导分区应该没问题, 至少能进入windows
另外, 这是GRUB wiki提到的, 要探测其他操作系统, 需要以下步骤:

  1. 安装软件os-prober并挂载包含其它系统引导程序的磁盘分区

  2. 编辑/etc/default/grub并取消GRUB_DISABLE_OS_PROBER=false这一行的注释

最近编辑记录 beginner (2024-07-30 23:36:36)

离线

#2 2024-07-30 23:40:11

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 双系统没有windows启动项

也许是要装 ntfs-3g?不过我都是用 boot menu 或者 efibootmgr 进入 Windows 的。

离线

#3 2024-07-30 23:52:07

beginner
会员
注册时间: 2019-10-07
帖子: 269

Re: 双系统没有windows启动项

恩...我也是用类似的方式切换系统的...只是感觉太麻烦了...而且以前又成功加入过windows启动项
没事, 这个问题不大, 大不了继续用上面的方式切换系统
----
至于ntfs-3g....我不会用, wiki的信息...也没看懂...
而且我之前也没装ntfs-3g,  同样能添加windows启动项
-----
另外, 需要其他信息请说明

最近编辑记录 beginner (2024-07-30 23:55:03)

离线

#4 2024-08-04 17:15:03

OldFish
会员
注册时间: 2024-01-13
帖子: 19

Re: 双系统没有windows启动项

grub的wiki上说还要先用root运行os-prober一次再grub-mkconfig

离线

#5 2024-08-04 19:09:07

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 双系统没有windows启动项

这 wiki 写得不太对。应该是安装 os-prober,然后编辑 /etc/default/grub 取消禁用 os-prober,再重新 grub-mkconfig。不过我不推荐这种方案啦,有时候发现不了 Windows。

离线

#6 2024-08-05 15:45:21

Xu_xian
会员
注册时间: 2024-07-28
帖子: 6

Re: 双系统没有windows启动项

我也是第一次没出现windows的选项,是又进了一遍windows,然后到arch重新加载grub才出现的

离线

#7 2024-10-11 16:31:31

zhueiyue
会员
注册时间: 2021-03-14
帖子: 16

Re: 双系统没有windows启动项

虽然时间过去这么久,我还是回一下 , os-prober 在arch-choot 模式下不起作用,这点在wiki中有说明

新系统安装grub引导正确步骤是安装:

arch-choot /mnt
pacman -S grub os-prober efibootmgr
grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
passwd root
exit
umount -R /mnt
reboot
以root登录后
os-prober
nano /etc/default/grub
取消 GRUB_DISABLE_OS_PROBER=false 前面的  # 按crtl+s保存,crtl+x退出

grub-mkconfig -o /boot/grub/grub.cfg

这样os-prober才能探测到你计算机上的其他系统


当然你也可以把手动编写 grub.cfg
nano /boot/grub/grub.cfg

以下为我的机器上的windows启动项:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $men>
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-e>
        else
          search --no-floppy --fs-uuid --set=root 4FB6-D430    //4FB6-D430  这个UUID你需要更换为你自己的 ESP分区的UUID  (ls -al /dev/disk/by-uuid/)
        fi
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###


以下为wiki上grub探测其它系统的部分内容
注意:
分区挂载点并不重要,os-prober读取mtab信息来确认并搜索引导程序的位置。
记得每次运行 grub-mkconfig 之前都把包含其他操作系统引导程序的分区挂载上,以免这些操作系统的启动项丢失。
os-prober在chroot中可能无法正常运作。如果遇到这种情况,重启并引导进入系统后再次尝试。

最近编辑记录 zhueiyue (2024-10-11 16:39:15)

离线

页脚