글쎄, 설명하겠습니다. 이것은 UEFI 컴퓨터입니다. 두 개의 디스크가 있습니다. 기본 디스크는 GPT를 사용하여 분할되고 GRUB2를 통해 Arch Linux 파티션으로 부팅됩니다. 보조 디스크는 MBR을 사용하여 파티션이 나누어져 있으며 UEFI 설정 유틸리티에서 기본 디스크를 비활성화한 경우에만 부팅됩니다. 보조 디스크에는 Windows 10이 포함된 파티션이 있습니다. 내 질문은 부팅 보조 디스크에 있는 Windows 10 파티션의 기본 GRUB2 구성에 메뉴 항목을 어떻게 추가합니까?입니다. 시도했지만 grub-mkconfig
Windows os-prober
10 설치를 찾을 수 없습니다. Windows 10은 자체적으로 부팅되므로 아무런 문제 없이 설치된 것으로 보입니다. 그런 다음 grub.cfg에 다양한 메뉴 항목을 수동으로 추가하려고 시도했지만 작동하지 않았습니다. 다음은 내가 시도한 항목 중 일부입니다.
menuentry "Windows 10 (loader) (on /dev/sda3)" {
insmod part_msdos
insmod ntfs
insmod ntldr
ntldr (hd0,msdos3)/bootmgr
}
menuentry "windows 10 (loader) (on /dev/sda3) 2" {
insmod part_msdos
insmod ntfs
chainloader (hd0,msdos3)+1
}
menuentry "Windows 10 (loader) (on /dev/sda3) 3" {
insmod part_msdos
insmod ntfs
chainloader (hd0,msdos3)/Windows/Boot/EFI/bootmgfw.efi
}
가장 성공적인 것은 EFI FW 프로그램으로 부팅했지만 BCD 오류(정상적으로 부팅할 때는 나타나지 않음)가 발생한 마지막 것입니다.
답변1
UEFI에서 MBR 모드로 설치된 Windows를 부팅할 수 없습니다. 기간.
당신은해야
- Windows UEFI 부팅 파일을 어딘가에 가져와 압축을 풉니다.
/boot/efi/EFI/Microsoft/Boot
- 다시 만들다
BCD
- 모든 항목 삭제
HKEY_LOCAL_MACHINE\System\MountedDevices
이렇게 하면 Windows가 부팅 가능해질 수 있습니다.
답변2
최소한의 작업 예
내 시스템:
/dev/sda has a old windows 10 install on a MBR partition table
/dev/sdb has a gpt layout with grub and arch
--/dev/sdb1 efi system partition (esp) --this should be your main esp
일반적으로 Windows로 부팅하면 Windows 부팅 관리자는 MBR에서 Windows 파티션의 시작 부분을 찾습니다. grub uefi에서 부팅하려면 Windows 파티션 시작 부분에 해당하는 uefi 부팅 항목을 지정해야 합니다.
UEFI 부팅 파일 생성
Windows는 MBR에 있으므로 현재 그러한 파일은 없습니다. 이를 생성하려면 bcdboot[를 사용할 수 있습니다.1] 명령에. 기본 ESP(여기서는 Arch efi 시스템 파티션)가 Windows에 마운트되어 있는지 확인하세요(여기서는 문자에 \dev\sdb1이 마운트되어 있습니다)1디스크 /dev/sdb는 사용되지 않음)
bcdboot C:\Windows /s X: /f windows-uefi
이 예에서는 bcdboot를 사용합니다.1Windows 파티션(C:\Windows)에 대한 모든 관련 부팅 정보를 가져오고 efi 시스템 파티션이 있는 드라이브(/s X)에 대한 모든 정보가 포함된 windows-uefi(/f windows-uefi)라는 파일을 생성합니다. :) 보다 [1] 참고하세요.
참고 1: 물론 원하는 위치에 파일을 생성한 다음 복사할 수 있습니다. 흥미롭게도 os-prober는 모든 efi 시스템 파티션을 검색합니다. 이것이 바로 Windows gpt/uefi 설치를 먼저 찾는 이유입니다.
그럽 업데이트
아치를 사용하고 있으므로 데비안과 같은 update-grub이 없습니다. 이 작업은 다음 명령을 사용하여 수동으로 수행해야 합니다.
# grub-mkconfig -o /boot/grub/grub.cfg
구성 파일이 표준 위치에 있는 경우. 보다위키피디아자세한 내용과 극단적인 사례를 알아보세요. os-prober를 실행하고 있는지 확인하세요. 위키를 다시 확인하여 확인하세요. 이전에 만든 windows-uefi 파일을 감지하여 시작 항목에 추가해야 합니다.
참고 2: #은 높은 권한이 필요하다는 의미이므로 sudo로 실행하거나, 수행 중인 작업을 알고 있는 경우 루트로 실행합니다.
일화
제가 하드웨어 업그레이드를 했을 때 Windows를 다시 설치하기가 너무 귀찮아서 이 방법을 검색했습니다. 그 이후로 그것은 매력처럼 작동해 왔습니다. 가장 좋은 점: 이제 나는허용하다여전히 MBR 설치임에도 불구하고 Windows가 UEFI 모드로 부팅되었음을 감지하여 Windows 11을 설치합니다. xD
원천
답변3
UEFI가 GRUB로 부팅되면 GRUB가 Windows 파티션을 찾아 Windows 로더를 로드합니다. 따라서 이론적으로는 Windows가 MBR인 경우에도 작동해야 합니다. GRUB는 MBR을 사용하지 않기 때문에 GRUB는 C 파티션에서 로더를 직접 찾습니다.
hd0을 사용하지 마십시오. 그러나 다음을 수행하십시오.
검색 --set=root --fs-uuid 12345678-1234-1234-1234-1234567890
ntldr/bootmgr
--fs-uuid 뒤에 실제 uuid를 사용하세요
Windows 명령줄에서 이것을 사용하여 uuid를 찾으세요.
wmic 볼륨은 Driveletter, DeviceID를 가져옵니다.