다음에 따라 systemd-boot 구성을 업데이트해 보았습니다.https://wiki.archlinux.org/index.php/systemd-boot
부팅 메뉴에 Windows 10을 추가하려고 합니다. 이것은 내 드라이브입니다.
kaisellgren@pop-os:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 128M 0 part
└─sda2 8:2 0 931,4G 0 part
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 16M 0 part
├─sdb2 8:18 0 600M 0 part /boot/efi
└─sdb3 8:19 0 930,9G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
├─nvme0n1p1 259:1 0 499M 0 part
├─nvme0n1p2 259:2 0 99M 0 part
├─nvme0n1p3 259:3 0 16M 0 part
└─nvme0n1p4 259:4 0 465,2G 0 part
보시다시피 내 부팅 SATA3 드라이브는 sdb(파티션 sdb2)입니다.
내 /EFI/Microsoft/Boot/bootmgfw.efi
부트로더는 파티션 2의 nvme0n1 드라이브에 있습니다(확인했습니다).
그래서 저는 이것을 만들었습니다:
kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/entries/windows.conf
title Windows
efi /EFI/Microsoft/Boot/bootmgfw.efi
options root=UUID=4C58-E6DF
여기에서 루트 드라이브 UUID를 얻었습니다.
kaisellgren@pop-os:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jul 10 18:53 02165C56165C4D33 -> ../../sda2
lrwxrwxrwx 1 root root 15 Jul 10 18:53 160469B004699391 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 10 18:53 3C025449025409F2 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 10 18:53 4C58-E6DF -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 5B44-2C7F -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 646d95a4-1bb4-45c0-96bc-3ee20c4b4211 -> ../../sdb3
이것은 내 로더 구성입니다.
kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/loader.conf
default Pop_OS-current
timeout 5
컴퓨터를 시작하면 현재 PopOS와 기존 PopOS라는 두 가지 옵션이 있는 부팅 메뉴가 표시됩니다. 목록에 Windows 항목이 표시되지 않습니다. 내가 뭘 잘못했나요? 시간 초과 매개변수를 변경하면 부팅 메뉴에 영향을 미치므로 올바른 구성 파일을 반드시 편집하겠습니다.
모든 도움에 미리 감사드립니다!
답변1
오랜 시간 후에 해결책을 찾았습니다. Linux 파티션으로 부팅하고, Windows EFI 파티션을 폴더에 마운트하고, Microsoft 폴더를 /boot/EFI/
(Linux 시스템에서) 복사하는 것입니다. 그게 전부입니다.
로더 항목에 windows.conf를 수동으로 추가하는 문제에서 설명된 프로세스는 나에게 필요하지 않았습니다.
원래 언급된 자세한 복사 프로세스는 다음과 같습니다.
sudo fdisk -l
100M
크기와 유형의 파티션을 찾습니다 EFI System
. 크기와 유형이 다른 다른 파티션과 동일한 디스크에 있으면 499M
올바른지 알 수 있습니다 Windows recovery environment
. 예를 들어 EFI 파티션의 장치 이름을 기록해 둡니다 /dev/nvme0n1p2
(아래 mount 명령과 함께 사용).
디렉터리를 만들고 여기에 Windows-EFI 파티션을 마운트합니다.
sudo mkdir /mnt/winefi
sudo mount /dev/nvme0n1p2 /mnt/winefi
BCD(부팅 구성 데이터)를 systemd-boot EFI 메뉴에 복사하고 Windows 파티션을 마운트 해제합니다.
sudo cp -R /mnt/winefi/EFI/Microsoft/ /boot/EFI/Microsoft
sudo umount /mnt/winefi
sudo rm -rf /mnt/winefi
이 모든 것은 Arch의 GPT/MBR/UEFI/BIOS 구성이 Windows와 동일한 경우에만 작동합니다. 예를 들어 systemd-boot를 체인로드 Arch = GPT/UEFI
할 수 없습니다 . Windows=Bios/MBR
보다위키피디아.