页次: 1
直接把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)
离线
如果你去了解下UEFI,你就会知道EFI分区的文件格式,然后什么引导多系统的问题就可以解决了。
如果你想解决现在无法引导windos的问题,简单呀。
虚拟机再安装一次windows,然后把efi分区里面的东西复制出来,这样不就搞定了?
虽然人菜菜的,但也想做个有趣的人。
离线
你把 EFI 分区格式化了,Windows 的引导没了,当然就进不去了。从别处拷一份过去,os-prober 就能发现了。或者你使用 Windows 安装盘修复系统试试。
多系统引导,既可以使用 UEFI 的功能(需要你的主板支持不残废),也可以使用 grub。
离线
你把 EFI 分区格式化了,Windows 的引导没了,当然就进不去了。从别处拷一份过去,os-prober 就能发现了。或者你使用 Windows 安装盘修复系统试试。
多系统引导,既可以使用 UEFI 的功能(需要你的主板支持不残废),也可以使用 grub。
如果不格式化window的引导分区,怎么在不增加一个引导分区的情况下创建grub的引导分区?
不格式化的话无法执行grub-install.它会说这个看起来不像efi分区什么的。
grub难道可以不执行grub-install只执行grub-mkconfig吗?那样的话-o后面的路径应该传什么?依据什么?
离线
如果你去了解下UEFI,你就会知道EFI分区的文件格式,然后什么引导多系统的问题就可以解决了。
如果你想解决现在无法引导windos的问题,简单呀。
虚拟机再安装一次windows,然后把efi分区里面的东西复制出来,这样不就搞定了?
主要不是window引导啦,我是希望通过grub来引导2个系统(window,archlinux)
--------
当然,不一定非得用grub,只是希望越简单越好
最近编辑记录 beginner (2020-07-10 19:02:47)
离线
如果不格式化window的引导分区,怎么在不增加一个引导分区的情况下创建grub的引导分区?
不格式化的话无法执行grub-install.它会说这个看起来不像efi分区什么的。
grub难道可以不执行grub-install只执行grub-mkconfig吗?那样的话-o后面的路径应该传什么?依据什么?
正常情况下就是直接 grub-install 啊。我怎么知道你的分区为什么不像 EFI 分区呢?
离线
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分区,这次我希望只用一个
离线
我尝试把window的引导分区作为linux的引导分区使用。
要做到以上的效果,难道不是需要先mount /dev/sda1 /mnt/boot/efi;grub-install ...吗?
如果直接这样做,grub-install会报错。
而我的解决方法是:mkfs.vfat /dev/sda1;
有其他方法?之前虽然成功的探测到其他系统,但代价是多了一个efi分区,这次我希望只用一个
是啊。报错就修正错误呀。
你的方法只是绕过了问题。
离线
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分区的话,又可能是因为什么报错?
怎么解决?
离线
问题都没了,还怎么解决。
离线
问题都没了,还怎么解决。
既然如此,那这个问题我就不多问了。
不过,不对efi分区执行mkfs.vfat命令真的可以安装吗?
确实,wiki也没说要执行这条命令。
但为什么grub-install会报错。而且在执行了mkfs.vfat命令后就好了。
这真奇怪
离线
既然如此,那这个问题我就不多问了。
不过,不对efi分区执行mkfs.vfat命令真的可以安装吗?
确实,wiki也没说要执行这条命令。
但为什么grub-install会报错。而且在执行了mkfs.vfat命令后就好了。
这真奇怪
真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。
离线
真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。
确认一下:你也是用grub吧?
离线
真的可以啊。我就是这么装的。
你之前的 EFI 分区有点特殊吧。确认一下:你也是用grub吧?
是啊。
离线
可以共用一个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
离线
页次: 1