GRUB은 USB 스틱의 두 번째 파티션에서 부팅하는 것을 원하지 않습니다. 어떻게 고치나요?

GRUB은 USB 스틱의 두 번째 파티션에서 부팅하는 것을 원하지 않습니다. 어떻게 고치나요?

4개의 파티션이 있는 64GB USB 스틱이 있습니다.

  1. Windows 데이터 전송을 위한 FAT
  2. 리눅스 부팅 가능
  3. 암호화된 Linux 파티션
  4. 리눅스 파티션

부팅 가능한 파티션에서 부팅하는 것은 대부분의 컴퓨터에서 잘 작동합니다. (Intel CPU를 탑재한 구형 MacBook에서는 실행되지 않습니다.)

오래된 노트북을 찾아서 부팅 가능한 파티션을 통해 Linux를 다시 설치하려고 했지만 F12 메뉴에서 찾을 수 없습니다(USB 스틱).

그래서 GRUB에 가서 다음을 입력합니다:

grub>ls
(proc) (hd0) (hd0,msdos1)  (hd0,msdos2)  (hd0,msdos3)  (hd0,msdos4)  (hd1,gpt1) (hd1,gpt2) (hd1,gpt3) (hd1,gpt4)

올바른 파티션은 " (hd0,msdos2)"인 것으로 나타났습니다.

Partition hd0,msdos2: Filesystem type iso9660 - Label 'EOS_202209' - ...

Tab파일 별로 .EFI검색 하면 다음과 같습니다 .

set root=(hd0,msdos2)/EFI/BOOT/BOOTx64.EFI

이 파일은 확실히 존재하며 GRUB에서 볼 수 있습니다. 그 이유는 다음과 같습니다.

grub> chainloader +1

error: disk ‘(hd0,msdos2)/EFI/BOOT/BOOTx64.EFI’ not found.

어떻게 해야 합니까?

답변1

PC 세계에는 현재 클래식 BIOS 방법과 최신 UEFI 방법의 두 가지 부팅 방법이 있습니다. .EFI파일은 UEFI 부팅 방법으로만 작동합니다. 구형 노트북은 클래식 BIOS 방법만 지원할 수 있습니다. GRUB에는 i386-pc클래식 BIOS 부팅용과 x86_64-efiUEFI용으로 별도의 아키텍처 버전이 있습니다 .

GRUB root변수는 개별 파일이 아닌 파티션, LVM 논리 볼륨 또는 기타 파일 시스템 컨테이너를 식별해야 합니다. chainloader +1변수로 식별되는 파티션 외부의 첫 번째 디스크 블록에 있는 코드를 읽고 실행하도록 GRUB에 지시합니다. root이는 Windows 부트 로더가 BIOS 부팅 방법을 체인 로드하는 데 적합한 명령이 됩니다.

UEFI의 경우 .EFI 파일을 실행하려면 다음을 수행해야 합니다.

set root=(hd0,msdos2)
chainloader /EFI/BOOT/BOOTx64.EFI

그러나 이는 이미 GRUB로 이동한 부팅 프로세스 부분을 수동으로 반복하는 것일 가능성이 높습니다.

Linux(또는 해당 설치 프로그램)를 부팅하려는 경우 일단 GRUB에 도달하면 .EFI 파일을 실행하고 싶지 않을 것입니다. 커널 파일(보통 다음과 같은 명령을 사용하여 linux vmlinuz-<version number>) 및 initramfs/를 로드하려고 합니다. initrd 파일: 이름은 배포판마다 다르지만 Mint(Debian의 친척)에서는 명령이 다음과 같습니다 initrd initrd.img-<kernel version number>.

파일 시스템 라벨을 EOS_202209보면 여러분이 가지고 있는 것이 아마도 Arch 기반의 EndeavourOS일 것이라는 것을 알 수 있는데, 왜 Linux Mint를 언급하는지 잘 모르겠습니다.

관련 정보