Linux에서 EFI Windows 부팅 수정

Linux에서 EFI Windows 부팅 수정

기본적으로 Windows 8 부팅 옵션이 손실되었으며 Windows 설치 미디어의 부팅 복구로 문제가 해결되지 않았습니다.

이것이 다소 Windows 문제라는 것을 알고 있지만 efibootmgr더 어색한 Windows 기반 명령을 사용하는 솔루션보다는 솔루션을 찾고 있습니다 bcdedit. 따라서 나는 슈퍼유저 대신 여기에 묻습니다.

자세한 배경은여기, 기본적으로 내 시스템은 처음에 BIOS/MBR/CSM 모드로 설정되었고 Windows 10이 거기에 설치를 거부했기 때문에 MBR 디스크를 GPT로 변환해야 했습니다. 그 후 Linux 측에서 모든 것이 제대로 작동했지만 Windows 설치 미디어를 통해 Windows 부팅을 수정하는 데 실패했습니다.

  • 모든 Linux OS/파티션을 찾았 update-grub지만 GRUB 메뉴에 Windows 8이 없습니다.
  • os-prober또한 내 Windows 8을 나열하거나 찾을 수 없습니다 .

다음 명령을 사용하여 Windows 8을 시작 항목으로 다시 추가하는 것이 해결 방법이기를 바라지만 efibootmgr, 여기에서 길을 잃고 도움이 필요합니다. 현재 파티션 모드 등 더 자세한 정보를 다시 확인할 수 있습니다.여기. 감사해요.

/EFI내 Windows 8이 BIOS/MBR/CSM 모드로 설치되어 있는데 거기에 디렉터리가 표시되지 않기 때문에 EFI 부팅 기능이 없는 것일까요 ? 내 Windows 8 파티션의 모든 루트 수준 디렉터리는 다음과 같습니다.

$Recycle.Bin/              ProgramData/
$WINDOWS.~BT/              Programs/
$Windows.~WS/              Recovery/
BOOTNXT                    Recovery.txt
BOOTSECT.BAK               System Volume Information/
Boot/                      Tmp/
Documents and Settings/    Users/
ESD/                       Windows/
Intel/                     bootmgr
Program Files/             pagefile.sys
Program Files (x86)/       swapfile.sys

efibootmgr아니면 전혀 필요하지 않고 /etc/grub.d/40_custom아래와 같은 사용자 정의 항목만 필요할 수도 있습니다.

menuentry "Windows 8 BIOS MBR" {
     insmod part_msdos
     insmod ntldr
     insmod ntfs
     ntldr (hd0,msdos1)/bootmgr
}

답변1

좋습니다. @FelixJN의 요청에 따라 링크 대신 답변이 여기에 있습니다.

적어도 ntldr "Windows 로드"를 사용하는 것이 bootmgr과거에 사용했던 방법이기 때문에 내 의도는 Linux 기반 솔루션을 선택하는 것이었습니다. 마찬가지로 다음과 같이 작동합니다.grubgrub4dos

menuentry "Windows 8 UEFI/GPT" {
    insmod part_gpt
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root 28cf-35de
    chainloader ($root)/EFI/Microsoft/Boot/bootmgfw.efi
}

그러나 나는 grub2와 그 문서에 대한 확신이 별로 없기 때문에 시도하지 않았고 대신 @telcoM이 요약한 것처럼 Windows용 솔루션으로 전환했습니다.

UEFI 모드에서 부팅 복구 프로세스를 실행하여 Windows UEFI 부팅 로더를 ESP 파티션에 씁니다.

자세한 단계는 다음과 같습니다.여기.

  1. 미디어(DVD/USB)를 컴퓨터에 삽입하고재시작.

  2. 미디어에서 부팅합니다.

  3. 선택하다컴퓨터를 수리하세요.

  4. 선택하다문제 해결.

  5. 선택하다명령 프롬프트메뉴에서:

    1. 다음 명령을 입력하고 실행하십시오.

      diskpart
      
    2. 다음 명령을 입력하고 실행하십시오.

      sel disk 0
      
    3. 다음 명령을 입력하고 실행하십시오.

      list vol
      
  6. EFI 파티션(EPS - EFI 시스템 파티션)이 FAT32 파일 시스템을 사용하고 드라이브 문자를 할당하는지 확인합니다(아직 사용하지 않는 드라이브 문자 할당).

  7. 다음 명령을 입력하고 실행하십시오.

     sel vol <number of volume>
    
  8. 다음 명령을 입력하고 실행하십시오.

     assign letter=<drive letter>:
    
  9. 다음 명령을 입력하고 실행하십시오.

     exit
    
  10. 부트 레코드를 복구하려면:

    1. 다음 명령을 입력하고 실행하십시오.

      cd /d <drive letter>:\EFI\Microsoft\Boot\
      
    2. 다음 명령을 입력하고 실행하십시오.

      bootrec /FixBoot
      

이 시점에서 다음 단계는 모든 운영 체제에서 동일합니다.

  1. BCD 스토리지 재구축

  2. 먼저 다음 명령을 실행하여 이전 BCD를 백업합니다.

     ren BCD BCD.old
    
  3. 이제 다음 명령을 사용하여 다시 생성하십시오.

     bcdboot c:\Windows /l en-us /s <boot letter>:All
    

관련 정보