您尚未登录。

#1 2020-07-10 17:25:31

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

[已解决]关于双系统引导问题

直接把linux的位置和window的位置记录到window的efi分区解决了该问题。

之前无知。导致格式化了原window的efi分区。
-----------
UEFI,grub

探测其他操作系统
想要让 grub-mkconfig 探测其他已经安装的系统并自动把他们添加到启动菜单中,安装 软件包 os-prober 并 挂载 包含其它系统的磁盘分区。然后重新运行 grub-mkconfig。
MS Windows
os-prober 通常能自动发现包含 Windows 的分区。当然在载入默认的 Linux 驱动的情况下,NTFS 分区也不是总能够被探测到。如果 GRUB 没能发现它,尝试安装 ntfs-3g,然后重新挂载这个分区再试一次。
加密的 Windows 分区需要在解密之后才能挂载。对于 BitLocker,可以使用 dislockerAUR。这足够 os-prober 来添加正确的启动条目了。 

安装了os-prober,挂载了window系统所在的分区,执行grub-mkconfig -o /boot/efi/grub/grub.cfg后输出以下信息:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done

按照"os-prober 通常能自动发现包含 Windows 的分区。当然在载入默认的 Linux 驱动的情况下,NTFS 分区也不是总能够被探测到。如果 GRUB 没能发现它,尝试安装 ntfs-3g",
我安装了ntf-3g,执行了grub-mkconfig -o /boot/efi/grub/grub.cfg后,输出的也是上面的信息。
---------
我以为上次能成功,是因为window的引导分区还在。
而现在执行了mkfs.vfat /dev/sda1命令,可能格式化了分区,导致os-prober检测不到window。

设备            起点      末尾      扇区   大小 类型
/dev/sda1       2048    206847    204800   100M EFI 系统
/dev/sda2     206848    239615     32768    16M Microsoft 保留
/dev/sda3     239616 310210505 309970890 147.8G Microsoft 基本数据
/dev/sda4  310210560 311371775   1161216   567M Windows 恢复环境
/dev/sda5  311371776 437200895 125829120    60G Linux 文件系统
/dev/sda6  437200896 439298047   2097152     1G Linux swap
/dev/sda7  439298048 500118158  60820111    29G Linux 文件系统

目前:window进不去,只能进入arch linux
------
我想知道怎么在只用一个uefi分区的情况下启动2个系统

最近编辑记录 beginner (2020-07-27 18:05:52)

离线

#2 2020-07-10 18:42:30

luxni
会员
注册时间: 2014-06-08
帖子: 280

Re: [已解决]关于双系统引导问题

如果你去了解下UEFI,你就会知道EFI分区的文件格式,然后什么引导多系统的问题就可以解决了。

如果你想解决现在无法引导windos的问题,简单呀。

虚拟机再安装一次windows,然后把efi分区里面的东西复制出来,这样不就搞定了?


虽然人菜菜的,但也想做个有趣的人。

离线

#3 2020-07-10 18:49:53

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

Re: [已解决]关于双系统引导问题

你把 EFI 分区格式化了,Windows 的引导没了,当然就进不去了。从别处拷一份过去,os-prober 就能发现了。或者你使用 Windows 安装盘修复系统试试。

多系统引导,既可以使用 UEFI 的功能(需要你的主板支持不残废),也可以使用 grub。

离线

#4 2020-07-10 18:58:59

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

Re: [已解决]关于双系统引导问题

依云 说:

你把 EFI 分区格式化了,Windows 的引导没了,当然就进不去了。从别处拷一份过去,os-prober 就能发现了。或者你使用 Windows 安装盘修复系统试试。

多系统引导,既可以使用 UEFI 的功能(需要你的主板支持不残废),也可以使用 grub。

如果不格式化window的引导分区,怎么在不增加一个引导分区的情况下创建grub的引导分区?
不格式化的话无法执行grub-install.它会说这个看起来不像efi分区什么的。
grub难道可以不执行grub-install只执行grub-mkconfig吗?那样的话-o后面的路径应该传什么?依据什么?

离线

#5 2020-07-10 18:59:46

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

Re: [已解决]关于双系统引导问题

luxni 说:

如果你去了解下UEFI,你就会知道EFI分区的文件格式,然后什么引导多系统的问题就可以解决了。

如果你想解决现在无法引导windos的问题,简单呀。

虚拟机再安装一次windows,然后把efi分区里面的东西复制出来,这样不就搞定了?

主要不是window引导啦,我是希望通过grub来引导2个系统(window,archlinux)
--------
当然,不一定非得用grub,只是希望越简单越好
smile

最近编辑记录 beginner (2020-07-10 19:02:47)

离线

#6 2020-07-10 19:07:44

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

Re: [已解决]关于双系统引导问题

beginner 说:

如果不格式化window的引导分区,怎么在不增加一个引导分区的情况下创建grub的引导分区?
不格式化的话无法执行grub-install.它会说这个看起来不像efi分区什么的。
grub难道可以不执行grub-install只执行grub-mkconfig吗?那样的话-o后面的路径应该传什么?依据什么?

正常情况下就是直接 grub-install 啊。我怎么知道你的分区为什么不像 EFI 分区呢?

离线

#7 2020-07-10 19:21:00

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

Re: [已解决]关于双系统引导问题

依云 说:
beginner 说:

如果不格式化window的引导分区,怎么在不增加一个引导分区的情况下创建grub的引导分区?
不格式化的话无法执行grub-install.它会说这个看起来不像efi分区什么的。
grub难道可以不执行grub-install只执行grub-mkconfig吗?那样的话-o后面的路径应该传什么?依据什么?

正常情况下就是直接 grub-install 啊。我怎么知道你的分区为什么不像 EFI 分区呢?

我尝试把window的引导分区作为linux的引导分区使用。
要做到以上的效果,难道不是需要先mount /dev/sda1 /mnt/boot/efi;grub-install ...吗?
如果直接这样做,grub-install会报错。
而我的解决方法是:mkfs.vfat /dev/sda1;
有其他方法?

之前虽然成功的探测到其他系统,但代价是多了一个efi分区,这次我希望只用一个

离线

#8 2020-07-10 20:12:38

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

Re: [已解决]关于双系统引导问题

beginner 说:

我尝试把window的引导分区作为linux的引导分区使用。
要做到以上的效果,难道不是需要先mount /dev/sda1 /mnt/boot/efi;grub-install ...吗?
如果直接这样做,grub-install会报错。
而我的解决方法是:mkfs.vfat /dev/sda1;
有其他方法?

之前虽然成功的探测到其他系统,但代价是多了一个efi分区,这次我希望只用一个

是啊。报错就修正错误呀。
你的方法只是绕过了问题。

离线

#9 2020-07-10 20:30:11

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

Re: [已解决]关于双系统引导问题

依云 说:
beginner 说:

我尝试把window的引导分区作为linux的引导分区使用。
要做到以上的效果,难道不是需要先mount /dev/sda1 /mnt/boot/efi;grub-install ...吗?
如果直接这样做,grub-install会报错。
而我的解决方法是:mkfs.vfat /dev/sda1;
有其他方法?

之前虽然成功的探测到其他系统,但代价是多了一个efi分区,这次我希望只用一个

是啊。报错就修正错误呀。
你的方法只是绕过了问题。

因为一些原因,我无法复现grub-install报错信息。
它的大概意思是:--directory=/boot/efi 指定的目录不是efi分区。
而这个/boot/efi已经挂载了(mount /dev/sda1 /mnt/boot/efi)。
如果我的方法不是解决问题而是绕过的话。那应该怎么解决?
----
如果grub-install报的错误和路径有关,但不一定说/boot/efi目录不是efi分区的话,又可能是因为什么报错?
怎么解决?

离线

#10 2020-07-10 20:57:15

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

Re: [已解决]关于双系统引导问题

问题都没了,还怎么解决。

离线

#11 2020-07-10 22:23:09

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

Re: [已解决]关于双系统引导问题

依云 说:

问题都没了,还怎么解决。

既然如此,那这个问题我就不多问了。

不过,不对efi分区执行mkfs.vfat命令真的可以安装吗?
确实,wiki也没说要执行这条命令。
但为什么grub-install会报错。而且在执行了mkfs.vfat命令后就好了。
这真奇怪

离线

#12 2020-07-10 22:37:09

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

Re: [已解决]关于双系统引导问题

beginner 说:

既然如此,那这个问题我就不多问了。

不过,不对efi分区执行mkfs.vfat命令真的可以安装吗?
确实,wiki也没说要执行这条命令。
但为什么grub-install会报错。而且在执行了mkfs.vfat命令后就好了。
这真奇怪

真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。

离线

#13 2020-07-10 23:09:04

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

Re: [已解决]关于双系统引导问题

真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。

确认一下:你也是用grub吧?

离线

#14 2020-07-10 23:23:50

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

Re: [已解决]关于双系统引导问题

beginner 说:

真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。

确认一下:你也是用grub吧?

是啊。

离线

#15 2020-07-21 17:25:51

asd
会员
注册时间: 2020-07-21
帖子: 1

Re: [已解决]关于双系统引导问题

可以共用一个esp分区,找到windows的分区在哪就行,比如我的esp分区挂载在/mnt/esp, 一般有以下内容
EFI  'System Volume Information'
安装grub时候指定--efi-directory=/mnt/esp
sudo grub-install --target=x86_64-efi --efi-directory=/mnt/esp --bootloader-id=GRUB

离线

页脚