시스템에서 부팅 파티션을 찾고 lsblk 명령을 실행해 보았습니다.
sda 8:0 0 930.4G 0 disk
├─sda1 8:1 0 1G 0 part
├─sda2 8:2 0 40G 0 part
├─sda3 8:3 0 763.6G 0 part
└─sda4 8:4 0 125.8G 0 part
sde 8:64 0 100G 0 disk
├─sde1 8:65 0 2G 0 part
└─sde2 8:66 0 98G 0 part
├─sles-root0 254:0 0 27.9G 0 lvm /
└─sles-root 254:1 0 70G 0 lvm
하지만 df -h /boot를 수행하면 이것이 표시됩니다.
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sles-root0 28G 3.8G 23G 15% /
이는 무엇을 의미하며 시스템에 부팅 파티션이 있는지 어떻게 확인합니까?
답변1
시스템 펌웨어에 디스크의 전체 크기에 액세스할 수 없는 몇 가지 제한 사항이 있는 경우 부팅 파티션이 필요합니다. 디스크 시작 부분에 별도의 파티션을 생성하면 /boot
부트로더가 액세스해야 하는 항목(펌웨어에 내장된 드라이버 사용)이 항상 디스크의 펌웨어 액세스 가능 영역 내에 있도록 보장됩니다.
부트로더가 커널 및 initramfs 파일을 성공적으로 로드하면 커널이 자체 드라이버를 사용하여 부팅되고 시작됩니다. 이는 시스템 펌웨어보다 업데이트하기 쉽고 디스크 크기 제한이 덜 적용됩니다.
시스템 펌웨어에 그러한 제한이 없으면 /boot
루트 파일 시스템에 일반 디렉터리를 만드는 것을 막을 수 있는 방법이 없습니다. 부트로더가 파일 시스템 유형을 읽을 수 있는 한(파일 시스템이 부트로더가 읽고 있는 디스크에 완전히 포함되어 있는 한) 제대로 작동합니다.
부팅 파티션이 있는 또 다른 이유는 암호화된 루트 파일 시스템이 있고 부트로더가 암호화를 지원하지 않는 경우입니다. 이 경우 부트로더가 작업을 수행하는 유일한 방법은 커널 및 initramfs 파일을 암호화되지 않은 파티션에 배치하는 것입니다. 이러한 설정에서는 사용자로부터 필요한 비밀번호나 키를 얻고 암호화를 잠금 해제하는 데 필요한 도구와 구성이 initramfs에 포함되어야 합니다.
파티션이 있더라도 /boot
계속해서 마운트할 필요는 없습니다. a) 커널 업데이트를 설치하거나, b) initramfs 파일을 업데이트하거나, c) 부트로더 또는 해당 구성을 업데이트하는 경우에만 설치하면 됩니다. 일부 배포판은 일반적인 사용 중에 파티션을 마운트 해제된 상태로 두고, 해당 커널/initramfs/bootloader 업데이트 도구에는 /boot
필요에 따라 마운트 및 마운트 해제하는 기능이 포함되어 있습니다./boot
귀하의 df -h /boot
출력과 관련하여 :
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sles-root0 28G 3.8G 23G 15% /
/boot
이를 명령에 대한 인수로 지정하기 때문에 df
명령은 지정된 파일이나 디렉터리를 포함하는 파일 시스템만 표시합니다. Mounted on
열에 나와 있듯이 /
이는 루트 파일 시스템입니다.
다음 단계는 다음을 실행하는 것입니다 . 해당 디렉터리에 저장됩니다파일이ls -l /boot
커널 .vmlinuz-<kernel version number>
System.map-<kernel version number>
/boot
/boot
그러나 ls -l /boot
표시된 디렉토리가 완전히 비어 있으면 실제 /boot
파일 시스템이 현재 마운트 해제되어 있으며 빈 디렉토리는 단순히 (현재 사용되지 않는) 마운트 지점임을 의미합니다.
최신 UEFI 시스템이 있고 레거시 BIOS 호환성으로 부팅하지 않는 경우 현재 구성을 확인하는 것은 매우 쉽습니다. 먼저 efibootmgr -v
루트로 실행: 현재 펌웨어 부팅 설정이 표시됩니다. UEFI 부팅 항목에는 다양한 형식을 취할 수 있는 부팅 경로 문자열이 포함되지만 Linux 부팅의 가장 일반적인 형식은 다음과 같습니다.
HD(1,GPT,<PARTUUID string for ESP containing the bootloader file>,0x800,0x82000)/File(<bootloader pathname within the ESP partition>)
lsblk -o +PARTUUID를 사용하면 시스템의 각 파티션의 파티션 식별자를 볼 수 있으므로 부트로더가 포함될 ESP(EFI 시스템 파티션)를 찾을 수 있습니다.일반 파일로. ESP는 일반적으로 FAT32 파티션입니다. UEFI 사양의 모든 버전에서는 항상 모든 UEFI 펌웨어 구현이 FAT32를 이해하도록 요구했지만 펌웨어 개발자는 다른 파일 시스템에 대한 지원도 추가할 수 있습니다.
부트로더 경로 이름은 일반적으로 백슬래시를 디렉터리 구분 기호로 사용하여 Windows 경로 이름 규칙을 사용하여 작성됩니다. 따라서 표시된 부트로더 경로가 efibootmgr -v
예를 들어 \EFI\SLES\GRUBX64.EFI
에 ESP를 마운트하는 경우 에서 /boot/efi
부트로더를 찾아야 합니다 /boot/efi/EFI/SLES/grubx64.efi
(FAT32는 대소문자를 구분하지 않으며 UEFI 펌웨어도 마찬가지입니다... 그러나 일부 UEFI 구현에는 오류가 있을 수 있습니다).
또한 현재 실행 중인 시스템을 부팅하는 데 사용되는 부팅 항목을 식별하는 4자리 줄 도 efibootmgr -v
포함되어 있습니다 .BootCurrent:
답변2
부팅 파티션은 필요하지 않습니다. 모든 시스템에 이 기능이 있는 것은 아니며 명령의 출력은 시스템에 없다는 것을 의미합니다.