EFI 및 GRUB2 바이너리를 얻을 수 있는 위치와 부팅 시스템을 마운트하는 방법

EFI 및 GRUB2 바이너리를 얻을 수 있는 위치와 부팅 시스템을 마운트하는 방법

UEFI 및 GRUB2

grub2를 부팅하기 위한 바이너리
(bootia32.efi 및 bootx64.efi)를 가져오는 사이트를 아는 사람은 누구나 있습니다...
GRUB2 바이너리도... 그리고 이에 대한 좋은 튜토리얼 도움말이 있습니다...

이런 멀티부팅 디스크를 만들고 싶은데...

EFI
    \BOOT
        \bootia32.efi
        \bootx64.efi
        \<grub-binaries>
        \<grub-background-image>
        \<grub-configuration-file>

    \AndroidX86v6
    \Microsoft
    \Ubuntu
    \Tails
    \Kali
    ...

답변1

이름은 bootx64.efiEFI bootia32.efi폴백 부트 로더 프로그램을 참조합니다. 이 프로그램은 다음과 같습니다.아무것-- GRUB, Windows 부트 로더, EFI 셸, 맬웨어 등. 따라서 해당 이름으로 프로그램을 검색하면 안 됩니다. 오히려 실제 이름(질문의 경우 GRUB)으로 프로그램을 검색하고 부팅 미디어에서 EFI\BOOT\bootx64.efi또는 (플랫폼에 따라)로 이름을 바꿔야 합니다. EFI\BOOT\bootia32.efi실제로 컴퓨터의 내부 하드 디스크에 설치하는 경우 해당 이름을 전혀 사용해서는 안 됩니다. 대신 EFI 자체 내장 부팅 관리자를 사용하여 원하는 바이너리 이름을 기억해야 합니다. 개시하다. (일부는 여전히 그렇듯이 펌웨어가 심하게 손상된 경우는 예외입니다.) boot{arch}.efi파일 이름은 원래 OS 설치 프로그램 및 응급 복구 도구와 같은 부팅 가능한 이동식 디스크에서만 사용하도록 고안되었습니다. 그러나 내부 하드 디스크의 최후 수단인 부트 로더에도 사용됩니다. 예를 들어 NVRAM 항목이 손상된 경우입니다.

질문의 주요 부분에 관해서 GRUB 바이너리는 개별 배포판에 의해 구축되는 경향이 있습니다. AFAIK, EFI용 ""GRUB 바이너리에 대한 공식 소스는 없습니다. 일반적인 획득 방법GRUB 바이너리는 이를 사용하는 Linux 배포판을 설치하는 것입니다. 일반적 으로 Ubuntu 또는 Fedora 와 같은 배포판에서 사용되는 코드는 /boot/efi/EFI/{distname}/grubx64.efi다음 과 같이 설치됩니다 . 그러나 구성 파일에 대한 하드 코딩된 경로가 있을 수 있으므로 이 바이너리를 단순히 이동하고 이름을 바꾸는 것만으로는 작동하지 않을 수 있습니다. 대상 컴퓨터에서도 보안 부팅을 사용하는 경우 또는 파일의 이름을 대체 파일 이름으로 바꾸고 해당 이름을 사용하여 Shim과 동일한 디렉터리에 을 복사해야 합니다. 한 대의 컴퓨터에 설치하는 경우 GRUB을 이동하거나 이름을 바꾸느라 고생할 필요가 없습니다. 정상적으로 설치하면 부팅 프로세스를 대신하게 됩니다. 적어도 다음 배포판을 설치하거나 부팅 순서를 재구성할 때까지 말이죠.{distname}ubuntufedorashimx64.efishim.efigrubx64.efi

여러 Linux 배포판이 있는 시스템의 경우 GRUB는 약간 번거로울 수 있습니다. 이는 GRUB이 부팅 옵션 메뉴를 생성하기 위해 복잡한 구성 파일에 의존하고 해당 구성 파일이 GRUB를 설치한 배포판 내에서 유지되기 때문입니다. 이는 하나의 Linux 배포판만 설치할 때 제대로 작동하지만 여러 배포판의 경우에는 설치된 배포판에서 GRUB를 업데이트해야 새 커널이 설치됩니다.다른배포판. 대안은 하나의 GRUB를 다른 GRUB에서 체인로드하는 것인데, 이는 더 잘 작동할 수 있지만 부팅 시 더 번거롭습니다.

또 다른 접근 방식은 덜 복잡한 구성을 포함하는 부팅 관리자를 사용하는 것입니다. 내 자신의재정의이것을 할 수 있다; 부팅할 때마다 Linux 커널을 감지하므로 일단 설정되면 자체 구성을 변경하지 않고도 최신 커널을 부팅할 수 있습니다. SYSLINUX 및 ELILO와 같은 다른 부트 로더에는 중앙 집중식 구성 파일에 GRUB 스타일 구성이 필요하지만 해당 파일이 더 간단하므로 수동으로 유지 관리하기가 더 쉽습니다. 이동식 디스크에서 이러한 도구를 사용하는 경우 해당 도구를 파일 이름에 복사해야 합니다 boot{arch}.efi.

이 모든 것에는 다른 많은 주의 사항과 단점이 있지만, 귀하의 의도된 용도와 하드웨어에 대해 더 많이 알지 못하기 때문에 작은 책을 쓰지 않고서는 여기서 그 모든 사항을 다룰 수 없습니다. 자세한 내용은 다음 사이트 중 하나 이상을 확인해 보세요.

답변2

UEFI PXE 부팅 또는 UEFI HTTP 부팅에 grub을 사용하려는 경우 설치 없이 여기에서 미리 빌드된 바이너리를 얻을 수 있습니다. https://images.maas.io/ephemeral-v3/stable/bootloaders/uefi/amd64/20230222.0/

shim-signed.tar.xz
grub2-signed.tar.xz

압축을 풀면 얻을 수 있습니다.

bootx64.efi
grubx64.efi

그런 다음 이를 제공할 TFTP 서버와 HTTP 서버를 준비하고 TFTP/HTTP를 통해 grub/grub.cfg를 준비합니다.

나는 위의 방법을 성공적으로 사용하고 있습니다.

설치하지 않고도 얻을 수 있는 또 다른 편리한 장소도 있습니다. http://archive.ubuntu.com/ubuntu/dists/jammy/main/uefi/grub2-amd64/current/

(잼미를 초점 또는 생체 공학으로 변경할 수 있습니다)

...
grubnetx64.efi
grubnetx64.efi.signed
grubx64.efi
grubx64.efi.signed

나는 그것을 시도하지 않았습니다 . grubnetx64.efi.signed. grubx64.efi.signed그러나 *.efi.signed와 *.efi의 차이점에 대해서는 명확하지 않습니다.

bootx64.efi는 여기에서 찾을 수 있습니다. http://archive.ubuntu.com/ubuntu/dists/jammy/main/signed/shim-amd64/current/, 압축이 풀린 파일의 이름을 bootx64.efi로 바꾸십시오.

관련 정보