GRUB의 삼중 부팅 MBR을 사용하여 Windows 부팅 관리자 방지

GRUB의 삼중 부팅 MBR을 사용하여 Windows 부팅 관리자 방지

MBR 파티션 디스크의 세 가지 다른 파티션에 트리플 부팅 시스템(Windows 10 Home 21H1/Windows 7 Pro/Debian 11)이 설치되어 있고 부팅 시 문제 없이 각 시스템을 부팅할 수 있습니다. 그러나 GRUB 메뉴에서는 "Windows 10"(첫 번째 설치로 인해)이라는 단일 항목에서 모든 Windows 시스템에 액세스할 수 있습니다.윈도우 부팅 관리자부팅하려는 Windows 시스템을 선택하겠습니다. 따라서 모든 Windows 시스템은 시작 시 2개의 메뉴를 표시합니다. 이것은 실용적이지 않습니다.

WBM을 통하지 않고 GRUB 메뉴에서 WBM의 Windows 항목에 직접 액세스할 수 있는 솔루션이 있는지 스스로에게 물었습니다. 다양한 솔루션을 검색하고 테스트했지만 그 중 아무 것도 작동하지 않았습니다.

나는 이것이 가능하다고 믿지만, 어떻게 해야 할지 모르겠습니다...

내가 시도한 마지막 시도:

root@host:~# lsblk -lo NAME,FSTYPE,LABEL,UUID
NAME FSTYPE LABEL UUID
sda               
sda1 ntfs   W10H  7A42F6E942F6A8D1
sda2 ntfs   W7P   0628B81B28B80C25
sda3 ext4         a696a4ab-3120-4028-bd87-c2aaa40499bd
...  
root@host:~# cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
...
menuentry "Windows 7" --class windows --class os {
   insmod part_msdos
   insmod ntfs
   insmod ntldr
   set root='(hd0,msdos2)'   
   search --no-floppy --set=root --fs-uuid 0628B81B28B80C25
   ntldr ($root)/bootmgr
   chainloader +1
}
root@host:~# update-grub

이 항목을 시작하면 다음을 얻습니다. error : /bootmgr file not available


@telcoM이 제안한 대로 SE의 글로벌 섹션에서 도움을 찾았습니다. 마침내 @oldfred와 @Tom Yan의 도움으로 문제를 해결했습니다.거기거기에 내 구현을 자세히 설명합니다.

답변1

GRUB 명령이 현재 첫 번째 HDD의 두 번째 파티션에 지정된 파일을 ntldr찾고 있지만 해당 파일이 존재하지 않습니다. bootmgrWindows 10과 Windows 7은 모두 동일한 Windows 부팅 관리자를 사용할 수 있습니다. 현재 시스템에서 이 작업을 수행하도록 구성되어 있으며 부팅 관리자는 사용 가능한 운영 체제 메뉴를 표시하도록 구성되어 있습니다. 최신 Windows 운영 체제용 설치 프로그램은 기존 Windows 부팅 관리자를 찾고, 존재하는 경우 다른 인스턴스를 설치하는 대신 새로 설치된 운영 체제를 기존 부팅 관리자 메뉴에 추가합니다.

GRUB은 운영 체제 선택 정보를 Windows 부팅 관리자에 전달할 수 없으므로(즉, WBM은 다른 부트 로더의 입력을 사용자가 직접 입력할 수만 있음) 두 가지를 모두 설치해야 합니다. 예: 하나는 다음과 같이 구성됩니다. Windows 10을 부팅하고 다른 하나는 Windows 7만 부팅하도록 구성됩니다. 그런 다음 GRUB 메뉴를 사용하여 사용하려는 부팅 관리자를 선택한 다음 Windows 버전을 선택할 수 있습니다.

Windows 부팅 관리자의 두 번째 복사본을 설치하는 것은 Unix&Linux.SE의 범위를 벗어납니다. 이에 대한 조언이 필요하면 물어볼 수도 있습니다.수퍼유저SE대신에.

관련 정보