그래서 처음부터 개인용 Linux용 부팅 가능한 USB를 만들고 싶습니다. 하지만 이 작업을 수행하는 방법에 대한 가이드를 찾을 수 없습니다. 그래서 어떤 파일은 꼭 필요하고 어떤 부분은 선택사항인지 어떻게 해야할지 모르겠습니다.
답변1
대상이 부팅 가능한 USB인 경우 첫 번째 선택 사항은 USB를 호출하는 것입니다.국제 표준화기구첫 번째.
일반적으로 접미사가 붙은 디스크 이미지 파일은 .iso
이미지 파일이 ISO-9660(또는 UDF) 파일 시스템을 사용하고 광학 미디어(CD, DVD 또는 Blu-ray)에 굽기 위한 것임을 나타냅니다.
다른 형식을 사용하는 디스크 이미지는 기술적으로 다른 이름 또는 공통 접미사로 불려야 .bin
합니다 ..img
.dmg
USB에서 부팅할 때 USB 디스크는 기본적으로 하드 드라이브와 동일하므로 USB 미디어를 부팅 가능하게 만들려면 하드 드라이브에서 부팅하는 것과 똑같은 작업을 수행해야 합니다.
가장 먼저 필요한 것은 USB 미디어가 부팅 가능한 것으로 인식되도록 예상되는 시스템 펌웨어의 부팅 요구 사항을 충족하는 것입니다.
기존 BIOS 시스템에서 이는 첫 번째 512바이트 블록(= 블록 #0)의 마지막 2바이트가 0x55 0xAA여야 하며 이를 유효한 마스터 부트 레코드(줄여서 MBR)로 식별해야 함을 의미합니다. 나머지 64바이트는 일반적으로 MBR 파티션 테이블이 차지합니다(그러나 사용자 정의 부트 로더는 이 요구 사항을 무시할 수 있습니다). 나머지 446바이트에는 펌웨어에 의해 로드되고 실행될 16비트 x86 기계어 코드 프로그램이 포함됩니다. Linux 부팅에 관해 이야기할 때 이 446바이트는 파일의 첫 번째 부분이 됩니다.부트 로더.
446바이트의 기계어 코드는 부트로더의 나머지 부분을 로드하는 데 충분하므로 최신 부트로더는 MBR에서 446바이트 이상을 차지합니다. BIOS 스타일 부팅을 위해 준비된 USB 미디어에서는 i386-pc
GRUB, SYSLINUX, 이전 LILO 버전 또는 목적에 적합하다고 생각되는 기타 부트 로더를 사용할 수 있습니다 . 그 이후의 모든 것은 사용하기로 선택한 부트로더에 따라 다릅니다.
UEFI 모드에서 부팅하는 최신 64비트 x86 시스템의 경우 이동식 미디어에서 부팅하기 위한 요구 사항은 다음과 같습니다.
- FAT32 파일 시스템이 있는 파티션을 포함해야 합니다.
\EFI\BOOT\BOOTX64.EFI
이 파일 시스템에는 Microsoft PE+ 바이너리 형식을 사용하는 path 에 부트로더 파일이 있어야 합니다 . 다른 하드웨어 아키텍처의 경우 파일 이름이 다릅니다.- 보안 부팅이 활성화된 경우 펌웨어가 유효한 것으로 인식하는 보안 부팅 인증서로 부트로더 파일을 서명해야 합니다. 그렇지 않으면 부트로더 파일의 SHA256 해시가 펌웨어에서 명시적으로 화이트리스트에 추가되어야 합니다. (다른 특정 요구 사항 및 제한 사항이 있으므로 보안 부팅 요구 사항을 준수하도록 하기 전에 먼저 보안 부팅을 비활성화한 상태에서 USB가 작동하도록 하는 것이 좋습니다.)
가장 간단하게 UEFI 부트로더는 바로 단일 *.efi
파일입니다. 자체 구성 파일이 필요할 수도 있고 구성이 부트로더 바이너리에 포함될 수도 있습니다.
부트로더를 실행할 수 있게 되면 Linux 부팅의 다음 단계는 다음을 지정하는 것입니다.커널 파일그리고 보통initramfs 파일. 커널에 내장된 파일 시스템 드라이버로 Linux 루트 파일 시스템에 액세스할 수 있도록 보장할 수 있다면 기술적으로 initramfs 파일을 생략할 수 있습니다. 그러나 일반적으로 initramfs 파일을 사용하면 다양한 시스템 구성을 처리하기가 더 어려워집니다. USB를 한 시스템에서 다른 시스템으로 이동하려는 경우 유용합니다.
목표가 단지 특정 Linux 유틸리티를 실행하는 것이라면 해당 유틸리티(및 필요한 모든 데이터 파일)를 initramfs 파일로 패키징한 다음 실제로 아무것도 설치하지 않고 initramfs에서 직접 실행하도록 initramfs 부팅 프로세스를 구성할 수 있습니다. 시스템. Disk Wipe Tool DBAN, 이전 버전의 Disk Utility GParted Live 및 Clonezilla Live와 같은 일부 유틸리티는 기본적으로 이 작업을 수행합니다(제대로 기억한다면 최신 버전에서는 추가 squashfs 이미지를 로드할 수 있습니다). 일부 하드웨어 공급업체에서는 이러한 방식으로 패키지된 Linux 기반 펌웨어 업그레이드 도구를 출시하기도 했습니다.
부트로더가 커널 파일과 initramfs 파일(사용된 경우)을 성공적으로 로드한 후 제어권을 Linux 커널로 전송하고 부트로더 작업이 완료됩니다. 그 시점부터 모든 것은 Linux 커널과 initramfs 파일의 내용에 의해 제어됩니다.