Linux(CentOS 7)를 설치할 때 가이드에서는 boot:
kickstart를 사용하여 부팅하는 방법을 알아보라는 메시지와 함께 CLI에 들어가려면 TAB 또는 ESCAPE를 누르라고 지시했습니다.
저는 단지 궁금합니다. 이 CLI 프롬프트가 GRUB2입니까? 아니면 "Anaconda" 설치 프로그램과 관련이 있습니까? 마운트된 드라이브의 파일 편집 등 대부분의 Linux 명령에 액세스할 수 있나요?
답변1
놀랍게도 대답은 "부팅 방법에 따라 다릅니다"입니다.
CentOS에 대한 첫 번째 메시지가 나타날 때 TAB 또는 ESCAPE를 누르면 부트 로더에 액세스하여 필요한 경우 다양한 부팅 옵션을 추가할 수 있습니다. 그러면 boot:
프롬프트가 표시됩니다.
기존 BIOS 스타일로 부팅하는 경우광학 미디어에서, 이 boot:
프롬프트는 광학 미디어 변형인 ISOLINUX에서 제공됩니다.SYSLINUX 부트 로더. /isolinux/
미디어의 디렉터리에서 해당 구성을 볼 수 있습니다 . 실제 ISOLINUX 부트 로더는 파일이 아닙니다. ISO9660 이미지 구조에 직접 내장되어 있습니다.
UEFI 모드로 부팅하는 경우광학 미디어에서, 그러면 GRUB2에서 프롬프트가 표시됩니다. /EFI/BOOT
미디어의 디렉터리에서 UEFI 부트로더(32비트 및 64비트 UEFI 버전!)를 찾을 수 있습니다 . /images/efiboot.img
미디어에는 UEFI 부트 로더의 두 번째 복사본도 있습니다. 어떤 부트로더 복사본이 실제로 사용되는지는 펌웨어 구현에 따라 다르지만 동일한 내용을 갖기 때문에 중요하지 않습니다.
CentOS 설치 미디어의 ISO9660 파일 시스템에 대한 El Torito 부팅 구조에는 기존 BIOS 스타일 부팅(임베디드 ISOLINUX라고 함)을 위한 부팅 매개변수 세트 1개와 UEFI 부팅을 위한 부팅 매개변수 세트 2개가 있습니다. -bit ia32 UEFI이고 다른 하나는 64비트 x64 UEFI용입니다. 이 UEFI 매개변수는 모두 를 가리킬 수 있습니다 efiboot.img
.dumpet
이것확인하다충분히El Torito는 구조를 부팅합니다. 제가 시도한 다른 도구는 첫 번째 부팅 매개변수 세트만 표시하는 경향이 있습니다.
다음은 샘플 출력입니다.
# dumpet -i CentOS-7-x86_64-DVD-1708.iso
Validation Entry:
Header Indicator: 0x01 (Validation Entry)
PlatformId: 0x00 (80x86)
ID: ""
Checksum: 0x55aa
Key bytes: 0x55aa
Boot Catalog Default Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load segment: 0x0 (0000:7c00)
System type: 0 (0x00)
Load Sectors: 4 (0x0004)
Load LBA: 5074 (0x000013d2)
Section Header Entry:
Header Indicator: 0x91 (Final Section Header Entry)
PlatformId: 0xef (EFI)
Section Entries: 1
ID: ""
Boot Catalog Section Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load address: 0 (0x0000)
System type: 0 (0x00)
Load Sectors: 17976 (0x4638)
Load LBA: 580 (0x00000244)
그러나 dd
ISO 이미지를 USB 미디어에 기록하고 이를 사용하여 설치 프로그램을 부팅하는 경우 시스템은 부트 로더를 다르게 찾습니다.
첫째, isohybrid
준비 프로세스는 ISO 이미지의 시작 부분에 잘 설계된 MBR 파티션 테이블을 포함합니다. 이는 이제 USB 미디어에 두 개의 파티션이 있음을 나타냅니다. 하나는 유형 ID가 0x00인 ISO 이미지의 전체 크기를 포함하고, 작은 파티션(~10M 이하)을 분할하는 또 다른 파티션은 유형 ID 0xef의 첫 번째 파티션에 포함된 것으로 나타나 MBR 파티션 디스크의 ESP(EFI 시스템 파티션)임을 나타냅니다. 두 번째 "파티션"은 실제로 efiboot.img
파일의 내용을 가리킵니다 . 본질적으로 동일한 정보를 포함하는 GPT 파티션 테이블 구조도 있습니다.
(예, 한 파티션이 다른 파티션 안에 있다는 것을 보여주는 것은 MBR의 의도된 구조를 기술적으로 위반하지만 부팅 펌웨어가 그러한 세부 사항에 대해 너무 까다로울 가능성은 없습니다...)
MBR 블록에는 USB 미디어에 기록된 설치 이미지를 통한 BIOS 스타일 부팅을 다루는 ISOLINUX의 실제 마스터 부트 레코드도 포함되어 있습니다. 기본 부팅 모드의 UEFI 펌웨어는 MBR을 무시하고 ESP를 확인하여 UEFI 부트 로더(32비트 또는 64비트)를 찾습니다.
USB 미디어에 기록할 때 ISO 이미지가 어떻게 보이는지 확인하려면 다음과 같은 도구를 사용 losetup -P /dev/loop0 CentOS-7-x86_64-DVD-1708.iso
하십시오 fdisk -l
.
# losetup -P /dev/loop0 CentOS-7-x86_64-DVD-1708.iso
# fdisk -l /dev/loop0
Disk /dev/loop0: 4.2 GiB, 4521459712 bytes, 8830976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1302a8b3
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 * 0 8830975 8830976 4.2G 0 Empty
/dev/loop0p2 2320 20295 17976 8.8M ef EFI (FAT-12/16/32)
(첫 번째 파티션의 유형은 "null"입니다. 아마도 ISO9660 파일 시스템에 유효한 MBR 파티션 유형 ID가 없기 때문일 것입니다...)
이제 두 개의 파티션(손상 방지를 위한 읽기 전용)을 마운트하고 각 파티션 내의 내용을 검사할 수도 있습니다.
dumpet
출력에서는 ESP 부팅 이미지의 시작 부분을 LBA #580으로 식별하여 블록 fdisk
#2320에서 시작함을 나타냅니다. 이는 ISO9660 광학 미디어가 2048바이트 블록 크기를 사용하는 반면 USB 미디어는 보다 일반적인 512바이트 블록 크기를 사용하기 때문입니다.