前言:
当前兄弟们对“启动文件efi在哪里”可能比较关注,姐妹们都需要剖析一些“启动文件efi在哪里”的相关知识。那么小编同时在网络上汇集了一些关于“启动文件efi在哪里””的相关知识,希望朋友们能喜欢,大家快快来了解一下吧!修改MBR,在主引导扇区和第一分区之间找个地方放grub是老黄历了。
电脑有nvme和SATA盘各一块,UEFI启动。nvme盘装的是debian和grub,SATA盘装的是Windows10。它们各有一个EFI分区。
~# blkid/dev/nvme0n1p1: UUID="BDEB-5168" TYPE="vfat" PARTUUID="85a71363-aa05-4ca2-ab37-b14e81559b25"/dev/sda1: UUID="485B-1474" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="30dfa707-6611-431f-ba2c-74247bde9167"
UUID和分区的UUID不同。BIOS看到485B-1474就基本上显示Windows Boot Manager。在操作过程中出现过Windows Boot Manager (debian)。
第一块nvme盘的名字是/dev/nvme0n1。
mount | grep boot
/dev/nvme0n1p1 on /boot/efi
即/boot/efi是EFI分区的根目录。mount /dev/sda1 /mnt后目录结构差一层,最好mount mount /dev/sda1 /mnt/efi,这样两者一致。
然后先备份再修改。建议用tar,我觉得它保存不同文件系统的文件属性比较保险。
# tree /boot/efi/boot/efi├── EFI│ ├── debian│ │ ├── BOOTX64.CSV│ │ ├── fbx64.efi│ │ ├── grub.cfg│ │ ├── grubx64.efi│ │ ├── mmx64.efi│ │ └── shimx64.efi# cat /boot/efi/EFI/debian/grub.cfgsearch.fs_uuid acc415d0-f703-4ab1-97e3-b0401ccf7c64 rootset prefix=($root)'/boot/grub'configfile $prefix/grub.cfg
/boot/grub/grub.cfg里:
insmod ext2search --no-floppy --fs-uuid --set=root acc415d0-f703-4ab1-97e3-b0401ccf7c64echo 'Loading Linux 6.1.0-18-amd64 ...'linux /boot/vmlinuz-6.1.0-18-amd64 root=UUID=acc415d0-f703-4ab1-97e3-b0401ccf7c64 ro quietecho 'Loading initial ramdisk ...'initrd /boot/initrd.img-6.1.0-18-amd64
debian的/是/dev/nvme0n1p2: UUID="acc415d0-f703-4ab1-97e3-b0401ccf7c64" TYPE="ext4" PARTUUID="5bc7c066-2dca-4835-9828-073c2cd85ae0";/boot是/下的一个子目录;/boot/efi是/dev/nvme0n1p1。
Windows10的则在Microsoft目录下。Microsoft/下有Boot和Recovery两个目录。grub引导Windows时:chainloader /EFI/Microsoft/Boot/bootmgfw.efi。和Microsoft同级的还有个Boot/,下面有个bootx64.efi,删掉后仍然可以启动:BIOS (N100, AMI)和grub都直接加载bootmgfw.efi。
我把SATA上的Microsoft的copy到了nvme下(UUID要相应地修改),删掉SATA上的Microsoft后把nvme上的debian copy了过去,BIOS设成从SATA启动。即启动Windows时:BIOS-SATA-NVME-SATA。[微笑]
我不是吃饱了撑的:BIOS-NVME,grub老说找不到485B-1474。CPU和nvme太快了,SATA(虽然也是SSD)还没来得及加载,详情见链接
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-485B-1474' {insmod part_gptinsmod fatsearch --fs-uuid --set=root BDEB-5168chainloader /EFI/Microsoft/Boot/bootmgfw.efi}
把os prober找到的485B-1474换成了BDEB-5168。Windows能这么启动是好事,也是坏事。我曾用傲梅分区助手把Windows从SATA搬到了nvme,从nvme启动后它还是用SATA当C:因为当初是装在SATA上的,系统(注册表?)里某个地方写死了C:=第1块SATA盘的第2个分区。
标签: #启动文件efi在哪里