Thinkpad 预装了正版 windows,虽然平时不用,不打算格式化掉,需要装双系统。
Thinkpad X1 carbon Gen10,预装 windows 11 家庭版,32G 内存,1T SSD
Fedora 38 workstation x86_64
secure boot 和 GPT 是UEFI的特色,UEFI 是独立于操作系统的。
secure boot 是允许被认可的证书签名了的操作系统启动管理器引导系统,增强了安全性。
虽然预装 windows 的机器上默认含有签名windows启动管理器的证书,secure boot 并不是 windows 独有的。微软只是 UEFI 的参与方,UEFI 并不属于微软。
证书可以自已生成并导入 UEFI 固件和数据库,为UEFI 所识别用于 secure boot。扩展阅读how-do-i-use-custom-signed-shim-for-secure-boot-fedora, booting-fedora-with-sd-boot-and-secure-boot-enabled
现在很多版本的 Linux 的启动管理都用公开认可的证书签名的,所以基本上大部分都支持 secure boot。Fedora 38 同样也支持。扩展阅读 Choosing a distribution that supports Secure Boot,how-to-boot-and-install-linux-on-a-uefi-pc-with-secure-boot, What is Secure boot?, fedora-wont-boot-in-uefi
在 UEFI BIOS 的Secure boot 中设置允许其它证书的签名。
使用官网下载的 Fedora Media Writer,将ISO镜像写入U盘,重启F12进入UEFI BIOS的启动菜单选择U盘启动
关闭微软在硬盘上的 bitlocker,使用windows 磁盘管理( WIN + R 运行diskmgmt.msc) 压缩卷释放空间
windows 下 efi 分区是隐藏的,磁盘管理器分配卷标也不能访问。用管理员方式运行 windows 下的终端或者命令提示符使用命令 mountvol
进行挂载访问。
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\doubl> mountvol B: /s
PS C:\Users\doubl> cd B:
PS B:\> ls
目录: B:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/8/29 16:40 EFI
d----- 2022/8/29 16:40 BOOT
PS B:\> ls .\EFI\Microsoft\Boot\bootmg*
目录: B:\EFI\Microsoft\Boot
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/9/13 7:35 2019656 bootmgfw.efi
-a---- 2021/9/13 7:35 2003272 bootmgr.efi
PS B:\>
扩展阅读 pros-and-cons-of-installing-ubuntu-alongside-windows-boot-manager, uefi-boot-how-does-that-actually-work-then, how-do-i-access-efi-system-partition, Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 文件的关系, UEFI启动视频详解:启动分析+N项操作实例,赶紧学习,不要落伍啦,该给自己充电啦, 【视频】手动/自动修复UEFI引导视频教程+挂载ESP分区的方法, 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解, efi-boot-bootx64-efi-vs-efi-ubuntu-grubx64-efi-vs-boot-grub-x86-64-efi-gru
安装 fedora 后
B:\
│ mach_kernel
│
├─EFI
│ ├─Microsoft
│ │ ├─Boot
│ │ │ │ memtest.efi
│ │ │ │ winsipolicy.p7b
│ │ │ │ boot.stl
│ │ │ │ bootmgfw.efi
│ │ │ │ bootmgr.efi
│ │ │ │ kdnet_uart16550.dll
│ │ │ │ kdstub.dll
│ │ │ │ kd_02_10df.dll
│ │ │ │ kd_02_10ec.dll
│ │ │ │ kd_02_1137.dll
│ │ │ │ kd_02_14e4.dll
│ │ │ │ kd_02_15b3.dll
│ │ │ │ kd_02_1969.dll
│ │ │ │ kd_02_19a2.dll
│ │ │ │ kd_02_1af4.dll
│ │ │ │ BCD
│ │ │ │ kd_02_8086.dll
│ │ │ │ kd_07_1415.dll
│ │ │ │ kd_0C_8086.dll
│ │ │ │
│ │ │ ├─bg-BG
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─CIPolicies
│ │ │ │ └─Active
│ │ │ │ {5DAC656C-21AD-4A02-AB49-649917162E70}.cip
│ │ │ │ {82443e1e-8a39-4b4a-96a8-f40ddc00b9f3}.cip
│ │ │ │ {CDD5CB55-DB68-4D71-AA38-3DF2B6473A52}.cip
│ │ │ │
│ │ │ ├─cs-CZ
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─da-DK
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─de-DE
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─el-GR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─en-GB
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─en-US
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─es-ES
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─es-MX
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─et-EE
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─fi-FI
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─fr-CA
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─fr-FR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─hr-HR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─hu-HU
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─it-IT
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─ja-JP
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─ko-KR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─lt-LT
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─lv-LV
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─nb-NO
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─nl-NL
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─pl-PL
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─pt-BR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─pt-PT
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─qps-ploc
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─ro-RO
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─ru-RU
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─sk-SK
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─sl-SI
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─sr-Latn-RS
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─sv-SE
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─tr-TR
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─uk-UA
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │
│ │ │ ├─zh-CN
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─zh-TW
│ │ │ │ bootmgfw.efi.mui
│ │ │ │ bootmgr.efi.mui
│ │ │ │ memtest.efi.mui
│ │ │ │
│ │ │ ├─Fonts
│ │ │ │ segmono_boot.ttf
│ │ │ │ segoen_slboot.ttf
│ │ │ │ segoe_slboot.ttf
│ │ │ │ chs_boot.ttf
│ │ │ │ cht_boot.ttf
│ │ │ │ jpn_boot.ttf
│ │ │ │ kor_boot.ttf
│ │ │ │ malgunn_boot.ttf
│ │ │ │ malgun_boot.ttf
│ │ │ │ meiryon_boot.ttf
│ │ │ │ meiryo_boot.ttf
│ │ │ │ msjhn_boot.ttf
│ │ │ │ msjh_boot.ttf
│ │ │ │ msyhn_boot.ttf
│ │ │ │ msyh_boot.ttf
│ │ │ │ wgl4_boot.ttf
│ │ │ │
│ │ │ └─Resources
│ │ │ │ bootres.dll
│ │ │ │
│ │ │ ├─en-US
│ │ │ │ bootres.dll.mui
│ │ │ │
│ │ │ └─zh-CN
│ │ │ bootres.dll.mui
│ │ │
│ │ └─Recovery
│ │ BCD
│ │
│ ├─Boot
│ │ BOOTIA32.EFI
│ │ fbia32.efi
│ │ fbx64.efi
│ │ LenovoBT.EFI
│ │ License.txt
│ │ ReadMe.txt
│ │ bootx64.efi
│ │
│ └─fedora
│ grub.cfg
│ BOOTIA32.CSV
│ BOOTX64.CSV
│ gcdia32.efi
│ gcdx64.efi
│ grubia32.efi
│ grubx64.efi
│ mmia32.efi
│ mmx64.efi
│ shim.efi
│ shimia32.efi
│ shimx64.efi
│
├─BOOT
│ BOOT.SDI
│
└─System
└─Library
└─CoreServices
SystemVersion.plist
linux 查看 uefi 固件变量
efibootmgr -v
windows 查看 uefi 固件变量: power shell
bcdedit /enum firmware
不使用老式的 BCD 引导 linux 的方式。使用UEFI固件参数直接引导的方式。linux 下的 efibootmgr 可以方便的添加 UEFI 固件启动项,windows 没有自带的可以添加 UEFI固件启动项的工具。
由于fedora 安装后UEFI固件启动项的 windows 启动项破坏了,所以可以重新创建一个。
efibootmgr -c -L "Windows 11 Home Edition" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1
-d
是 disk,-p
是 partition, 是 efi 分区的位置。
使用 F12
可以看到这个启动项。
dual-boot-win-8-ubuntu-loads-only-win
linux File Hierarchy
Adding UEFI firmware boot entry using bcdedit
windows-equivalent-to-efibootmgr
how-do-i-stop-windows-10-install-from-modifying-bios-boot-settings
changing-uefi-boot-order-from-windows
efi分区 260M 机器安装 windows 创建的,一般多系统建议500M,懒得重装了,可以重装用 fedora 安装程序修改,windows 安装程序安装过程中也可以创建和格式化磁盘,就装这两个系统够用了,也不安装第三方启动工具
windows reserved 17M
windows ntfs 一个分区 160G
/boot/efi 挂载efi分区
/ 315G ext4
/home 300G ext4
/opt 100G ext4
swap 66G
windows RECOVERY 分区,不需要,但是不想折腾了,占了不到2G
linux filesystem hierarchy,
what-is-the-difference-between-opt-and-usr-local
Btrfs vs EXT4, What Are the Differences
Btrfs vs. EXT4: Full Comparison and Everything You Need to Know
Difference Between Ext4 VS Btrfs Filesystems in Linux
通过微软MediaCreationToolW11制作Win11系统安装U盘,安装纯净版Win11的教程
AOAC-4G笔记本电脑流量套餐激活教程更新202206