如何在UEFI模式下Win8与Ubuntu多系统的安装
1个回答
展开全部
UEFI自带引导的。Linux下可以用efibootmgr管理。添加win的引导也是相当容易。可以参考下arch的文档,基本通用的。Unified Extensible Firmware Interface
当然,UEFI的引导一般为Windows开了小门,很可能会自动激活win的引导为默认,你改了之后它还是改回来的(解决方案:禁用后重新添加新项,不可禁用的情况下,直接替换)。因为你先装的win,后装的Linux,所以应该没有这个问题,只要把win的efi引导文件配置进去就行了(efibootmgr)。
PS:如果你后装的Ubuntu,我不太清楚你是不是使用了新的efi分区(一个很小的FAT分区,很可能Ubuntu安装的时候没有自动识别原来windows的efi分区,又或者你手动指定了另一个分区),如果你没有使用windows原来的efi分区的话,那么win的引导显然是找不到的。当然,做法很简单,把win的efi文件从原来的分区拷贝到现在的分区即可。efi分区默认挂载点应该在/boot/efi
典型的efibootmgr输出如下:
-> % efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,3000,0001,0002,0003,2001,2002,2003
Boot0000* Windows Boot Manager HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0001* arch HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\arch\grubx64.efi)
Boot0002* Windows 8.1 HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\Microsoft\Boot\win.bootmgfw.efi)
Boot0003* Syslinux HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\syslinux\syslinux.efi)
Boot2001* USB Drive (UEFI) RC
Boot2002* Internal CD/DVD ROM Drive (UEFI) RC
Boot3000* Internal Hard Disk or Solid State Disk RC
、、、、、、、、、、、、、、、、、、、、、、、、
补充下grub在UEFI下的位置。
UEFI首先通过grub的EFI文件引导grub,然后grub通过其它efi文件引导别的(当然,也包括Linux内核)。
在UEFI环境下,grub不是必要的。实际上Linux内核可以直接作为efi文件引导。应该就是所谓的EFISTUB,具体我也不太清楚。这个我成功配置过,用了几个月,但是相当不稳定,可能会因为某次内核的更新而引导失败。所以,选择用grub之类的中转是一个相当稳妥的方案。
个人建议:不要用grub配置windows的引导。只要你的EFI分区配置正确,那么你总是可以通过UEFI来引导(在我这边是F9调出引导界面)。你也不需要考虑双硬盘,选择硬盘优先级什么的(这事我还真干过,但改优先级绝对不是一件很方便的操作,花费的时间远多于UEFI的配置)。
UEFI可以选择从EFI文件引导,如果你发现没有UEFI的windows引导项的话,可以直接找windows的efi文件。找不到?那显然是你的EFI分区配置有问题,把windows的efi下的目录拷贝到当前efi分区即可。这是一个不错的错误排查方案:)
当然,UEFI的引导一般为Windows开了小门,很可能会自动激活win的引导为默认,你改了之后它还是改回来的(解决方案:禁用后重新添加新项,不可禁用的情况下,直接替换)。因为你先装的win,后装的Linux,所以应该没有这个问题,只要把win的efi引导文件配置进去就行了(efibootmgr)。
PS:如果你后装的Ubuntu,我不太清楚你是不是使用了新的efi分区(一个很小的FAT分区,很可能Ubuntu安装的时候没有自动识别原来windows的efi分区,又或者你手动指定了另一个分区),如果你没有使用windows原来的efi分区的话,那么win的引导显然是找不到的。当然,做法很简单,把win的efi文件从原来的分区拷贝到现在的分区即可。efi分区默认挂载点应该在/boot/efi
典型的efibootmgr输出如下:
-> % efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,3000,0001,0002,0003,2001,2002,2003
Boot0000* Windows Boot Manager HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0001* arch HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\arch\grubx64.efi)
Boot0002* Windows 8.1 HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\Microsoft\Boot\win.bootmgfw.efi)
Boot0003* Syslinux HD(1,20000,100000,8c2edb26-db0f-49f4-8b08-e04cfd8413f1)File(\EFI\syslinux\syslinux.efi)
Boot2001* USB Drive (UEFI) RC
Boot2002* Internal CD/DVD ROM Drive (UEFI) RC
Boot3000* Internal Hard Disk or Solid State Disk RC
、、、、、、、、、、、、、、、、、、、、、、、、
补充下grub在UEFI下的位置。
UEFI首先通过grub的EFI文件引导grub,然后grub通过其它efi文件引导别的(当然,也包括Linux内核)。
在UEFI环境下,grub不是必要的。实际上Linux内核可以直接作为efi文件引导。应该就是所谓的EFISTUB,具体我也不太清楚。这个我成功配置过,用了几个月,但是相当不稳定,可能会因为某次内核的更新而引导失败。所以,选择用grub之类的中转是一个相当稳妥的方案。
个人建议:不要用grub配置windows的引导。只要你的EFI分区配置正确,那么你总是可以通过UEFI来引导(在我这边是F9调出引导界面)。你也不需要考虑双硬盘,选择硬盘优先级什么的(这事我还真干过,但改优先级绝对不是一件很方便的操作,花费的时间远多于UEFI的配置)。
UEFI可以选择从EFI文件引导,如果你发现没有UEFI的windows引导项的话,可以直接找windows的efi文件。找不到?那显然是你的EFI分区配置有问题,把windows的efi下的目录拷贝到当前efi分区即可。这是一个不错的错误排查方案:)
名片
2024-10-28 广告
2024-10-28 广告
Altair HyperWorks是一套功能强大的集成化CAE(计算机辅助工程)软件平台,由Altair公司开发。它涵盖了结构分析、流体动力学、优化、多体动力学、电磁场仿真等多个领域,提供了丰富的仿真工具和优化算法。HyperWorks以其...
点击进入详情页
本回答由名片提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询