Pop OS: systemd-boot가 Windows를 감지할 수 없습니다.

Pop OS: systemd-boot가 Windows를 감지할 수 없습니다.

나는 이중 부팅으로 Windows와 Linux를 설치하는 고전적인 절차를 따랐습니다. 먼저 Windows를 UEFI 모드로 설치한 다음 부팅 가능한 PopOS 키를 사용하여 기본 Windows 파티션의 크기를 조정했습니다. 남은 공간에 Linux 파티션과 /boot/efi500MB 파티션을 만들었습니다.

내 문제는 systemd-bootWindows 부트 로더가 감지되지 않는 것 같습니다.

시스템 부팅 메뉴를 표시하면 가능한 부팅 옵션으로 PopOS만 나열됩니다. 하지만 문제 없이 BIOS 메뉴에서 Windows를 부팅할 수 있습니다.

실행하면 bootctl다음과 같은 결과가 나타납니다.

System:
     Firmware: UEFI 2.70 (American Megatrends 5.14)
  Secure Boot: disabled
   Setup Mode: setup

Current Boot Loader:
      Product: systemd-boot 245.4-4ubuntu3.1pop0~1590695674~20.04~eaac747
     Features: ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✓ Boot loader sets ESP partition information
          ESP: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
         File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI

Random Seed:
 Passed to OS: yes
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.1pop0~1590695>
         File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.4-4ubuntu3.1pop0~1590695674~20.04~e>

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0003
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
         File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI

        Title: Windows Boot Manager
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/42f0d8f0-13e0-41cf-bc36-ac80dccc54fd
         File: └─/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI

        Title: UEFI OS
           ID: 0x0009
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
         File: └─/EFI/BOOT/BOOTX64.EFI

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515)

Default Boot Loader Entry:
        title: Pop!_OS
           id: Pop_OS-current.conf
       source: /boot/efi/loader/entries/Pop_OS-current.conf
        linux: /EFI/Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56/vmlinuz.efi
       initrd: /EFI/Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56/initrd.img
      options: root=UUID=3ce60b75-530a-4cad-9e80-5156a8e6bb56 ro quiet loglevel=0 systemd.sh>

Windows Boot Manager아래 항목을 참고하시기 바랍니다 Boot Loaders Listed in EFI Variables. systemd-boot는 어떻게든 내 Windows 파티션이 존재한다는 것을 알고 있지만 부팅할 수 있는 것으로 감지하지 못하는 것 같습니다.

(달려도 bootctl install아무 것도 바뀌지 않는 것 같습니다)

/boot/efi/디렉터리는 다음과 같습니다.

/boot/efi/EFI
├── BOOT
│   └── BOOTX64.EFI
├── Linux
├── Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56
│   ├── cmdline
│   ├── initrd.img
│   └── vmlinuz.efi
└── systemd
    └── systemd-bootx64.efi
/boot/efi/loader/entries/
└── Pop_OS-current.conf

따라서 Windows 부트로더로 채워져야 하는 디렉터리가 어떻게든 채워지지 않습니다.

이 문제를 진단하고 Windows를 systemd-boot의 부팅 옵션으로 추가하려면 어떻게 해야 합니까?

답변1

이 방법은 다중 드라이브 시스템에서만 테스트되었습니다.

Windows EFI 파티션 찾기

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

경로 생성 및 Windows EFI 파티션 마운트

sudo mkdir /mnt/win-efi
sudo mount /dev/sdb1 /mnt/win-efi

Windows EFI의 내용을 POP EFI로 복사합니다.

sudo cp -r /mnt/win-efi/EFI/Microsoft /boot/efi/EFI

부트로더에 타이머 추가

sudo micro /boot/efi/loader/loader.conf

loader.conf에 새 줄 timeout 5이나 초 수를 추가하십시오.

재시작

sudo reboot

답변2

이건 작동하지 않을 거야

설치 프로그램은 운영 체제를 설치할 때 bootctl install올바른 매개변수를 호출해야 하며, 설치 후에는 변경할 수 없습니다.

pop os가 잘못 구성되어 설치 시 bootctl에 대한 파티션 경로를 제공하지 않고 systemdboot가 Windows 파티션을 감지할 수 없습니다.

시스템 부팅을 잊어버리고 대신 grub을 사용해야 합니다.

답변3

rEFInd 설치

추가 조사 끝에 발견한 것은이 Reddit 주제같은 문제를 가진 사람에게서 왔습니다. 이 스레드와 다른 스레드의 여러 포스터에서는 대신 설치를 제안했습니다 rEFInd.

rEFInd는 설치가 매우 쉬웠고 Windows 파티션을 즉시 감지했습니다.

저는 제가 추천하는 다음 Youtube 튜토리얼을 따랐습니다.

답변4

uefi 모드에서 사용할 수 있는지는 모르겠습니다. 2010년 노트북에 레거시 모드를 설치할 때도 같은 문제가 발생했습니다. os-prober를 설치해서 해결했습니다. 그런 다음 "sudo os-prober"를 입력하면 설치된 Windows 10이 반환됩니다.

그 후 "sudo update-grub"을 입력했습니다.

드디어 윈도우 10을 찾았습니다.

이것이 다른 사람에게 도움이 되기를 바랍니다.

관련 정보