ESP 및 GRUB 설치

ESP 및 GRUB 설치

목적은 debootstrap을 사용하여 데비안을 설치하는 것입니다. 먼저 작은 32GB 플래시 드라이브에 모든 시스템을 설치하고 싶습니다.

GPT 파티션 테이블과 GRUB의 개념은 명확합니다. 파티션 테이블이 있다는 것입니다. 각 파티션에는 고유한 ID가 있습니다. 또한 각 파티션에 파일 시스템이 생성됩니다. FileSystem 자체는 파일, 로그, 디렉터리 등을 저장하는 방법입니다. 이는 DataSturture입니다.

좋아요 분명한.

이제 ESP가 있습니다. BOOTLoader가 저장되는 파티션입니다. 그리고 FAT32여야 합니다. 그렇죠?

이제 커널, 램디스크를 가져와야 합니다. FlashStick에서 ESP를 생성합니다. ESP에 GRUB를 설치하고 적절한 커널과 Ramdisk를 선택하세요. 나는 여기에 갇혀있다.

  1. ESP를 만드는 방법은 무엇입니까? FAT32로 추가로 포맷된 단순 파티션입니까?
  2. GRUB를 설치할 위치를 어떻게 알 수 있나요? 어떻게 구성하나요? 나도 알아요 grub-mkconfig- 그리고 Linux와 initrd를 설정해야 한다는 것도 알고 있지만 여전히 약간 혼란스럽습니다.

여기서부터 일이 잘못되기 시작합니다.

ESP를 파일 시스템의 나머지 부분에 어떻게 연결합니까? 커널은 모든 파일과 구성을 검색할 위치를 어떻게 알 수 있습니까?

GRUB 시작에서 커널 시작, 매개변수 전달, FileSystm에 ESP 설치로 이동하는 과정이 이상하고 어색해 보입니다.

도움이 필요하다.

감사해요.

답변1

ESP를 만드는 방법은 무엇입니까? FAT32로 추가로 포맷된 단순 파티션입니까?

예, FAT32로 포맷된 단순 파티션입니다(최신 UEFI 버전에서는 다른 형식의 FAT도 허용할 수 있음).파티션 유형 UUIDGPT 스타일 파티션 테이블은 EFI 시스템 파티션(또는 줄여서 ESP)임을 나타내도록 설정됩니다. MBR 파티션된 디스크에서 UEFI 스타일을 부팅하는 경우 ESP 파티션 유형 코드는 0xef일반 FAT32 파티션 유형 코드 대신 으로 설정되어야 합니다 .

GRUB를 설치할 위치를 어떻게 알 수 있나요? 어떻게 구성하나요?

GRUB을 설치하려면 grub-install이 명령을 사용해야 합니다. GRUB를 설치해야 하는 디스크 또는 파티션의 장치 이름을 인수로 사용합니다.

디스크에 ESP가 하나만 있는 경우(일반적으로 권장됨) 이전 BIOS 스타일 GRUB를 설치할 때와 마찬가지로 /dev/sda또는 등의 전체 디스크 장치를 지정할 수 있습니다. /dev/nvme0n1자동으로 ESP를 찾아서 기록합니다 grubx64.efi.UEFI NVRAM 펌웨어 변수에 등록하세요.(보기를 사용할 수 있습니다 efibootmgr -v).

이동식 플래시 디스크에 설치하는 경우 --removable옵션 도 지정해야 합니다 grub-install. 디스크 자체는 제거할 수 없지만 다른 시스템으로 이동하거나 복제하려는 경우 --force-extra-removable이 옵션을 사용해야 합니다.

grub-mkconfigGRUB 또는 Debian 관련 update-grub래퍼가 설치되면 이를 사용하여 GRUB 구성 파일을 생성할 수 있습니다.

Debian에서 ESP의 표준 마운트 지점은 입니다 /boot/efi. 다른 배포판에서는 이를 다르게 수행할 수 있습니다.


시스템이 UEFI 모드로 부팅되면 펌웨어는 먼저 NVRAM 부팅 변수에서 부팅 순서를 확인합니다. UEFI 스타일 부팅 변수는 장치, 장치의 ESP 파티션(주로 ESP의 고유한 PARTUUID로 식별됨) 및 해당 ESP에서 사용할 부팅 파일을 지정합니다. 영구적으로 설치된 데비안 배포판의 경우 부팅 파일 경로 이름은 (펌웨어가 일반적으로 나타내는 Windows 스타일) \EFI\debian\grubx64.efi이거나 \EFI\debian\shimx64.efi보안 부팅 호환성도 필요하고 패키지가 설치된 경우입니다 shim-signed.grub-efi-amd64-signed

부팅 변수가 없는 경우(예: 부팅을 위해 이동식 미디어를 선택했기 때문에) 64비트 x86 UEFI 시스템은 경로 이름(Windows 스타일)을 찾습니다 \EFI\BOOT\BOOTx64.efi. GRUB가 --removable또는 옵션을 사용하여 설치된 경우 --force-extra-removable실제로는 grubx64.efi.

따라서 펌웨어는 GRUB를 시작하고 GRUB는 \EFI\debian\grub.cfgESP에서 데이터를 읽습니다. 일반적으로 searchGRUB에 UUID를 사용하여 포함된 파티션을 찾도록 지시하는 단일 명령과 /boot/grub거기에서 읽는 데 필요한 명령이 포함됩니다. /boot/grub/grub.cfg(시스템 설정 방법에 따라 루트 파일 시스템을 참조할 수도 있고 별도의 /boot파일 시스템을 참조할 수도 있습니다. 어느 쪽이든 작동합니다.)

실제 구성을 읽으면 /boot/grub/grub.cfgGRUB는 커널 및 initramfs 파일을 찾을 수 있는 위치와 사용자에게 표시할 메뉴 항목을 알 수 있습니다. 그런 다음 GRUB는 선택한 커널 및 initramfs 파일을 로드하고 지정된 커널 부팅 옵션을 커널 명령줄에 전달한 다음 커널을 시작합니다.이 시점에서 GRUB, ESP 및 디렉터리 /boot의 시작 작업이 완료되었습니다.- 이 시점부터는 해당 항목 없이도 스타트업을 진행할 수 있습니다.

커널은 root=커널 부팅 옵션과 initramfs의 모든 스크립트를 기반으로 루트 파일 시스템을 찾습니다. 일단 루트 파일 시스템을 찾아 검사(필요한 경우)하고 마운트하면 부팅 프로세스가 실제 파일 시스템에 액세스할 수 있습니다. /etc그리고 거기서 얻은 정보를 바탕으로.

부팅 시 커널은 절대로필요ESP에 액세스할 수 있는 방법도 없습니다 /boot. 커널이 부팅될 때 부트로더와 펌웨어는 이미 거기에서 필요한 모든 것을 읽습니다. ESP는 /boot/efi부트로더 및 해당 구성의 업데이트를 용이하게 하기 위해서만 설치됩니다. 이 작업을 수행하지 않을 계획이라면(예: 전체 이미지 재설치를 통해 업데이트를 수신하는 내장형 장치 시스템에서) ESP를 완전히 제거할 수 있습니다.

관련 정보