커널이 계속 존재한다는 것을 알게 되었고 root
,
루트 디렉토리를 확인합니다
[root@iz2ze9wve43n2nyuvmsfx5z /]# ls boot
config-3.10.0-693.2.2.el7.x86_64 initramfs-3.10.0-693.el7.x86_64.img System.map-3.10.0-693.el7.x86_64
config-3.10.0-693.el7.x86_64 initramfs-3.10.0-693.el7.x86_64kdump.img System.map-3.10.0-862.3.2.el7.x86_64
config-3.10.0-862.3.2.el7.x86_64 initramfs-3.10.0-862.3.2.el7.x86_64.img vmlinuz-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa
efi initrd-plymouth.img vmlinuz-3.10.0-693.2.2.el7.x86_64
grub symvers-3.10.0-693.2.2.el7.x86_64.gz vmlinuz-3.10.0-693.el7.x86_64
grub2 symvers-3.10.0-693.el7.x86_64.gz vmlinuz-3.10.0-862.3.2.el7.x86_64
initramfs-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa.img symvers-3.10.0-862.3.2.el7.x86_64.gz
initramfs-3.10.0-693.2.2.el7.x86_64.img System.map-3.10.0-693.2.2.el7.x86_64
그리고
[root@iz2ze9wve43n2nyuvmsfx5z /]# ls -al | grep -i kernel
[root@iz2ze9wve43n2nyuvmsfx5z /]#
커널은 어느 것입니까?
답변1
vmunix
was/is는 여러 Unix 운영 체제에서 커널 파일의 전통적인 이름입니다.
vmlinux
Linux에서는 커널 파일 압축이 추가되었을 때 로 변경되었습니다 .vmlinuz
일반적으로 커널 파일은 루트 디렉터리에 있을 수 있으며 일부 Linux 배포판에서는 각각 현재 및 이전 커널 버전을 가리키는 기호 링크가 계속 표시될 수 있습니다 /vmlinuz
. /vmlinuz.old
그러나 최신 부트로더는 두 개 이상의 커널 버전을 쉽게 처리할 수 있으며 /boot/vmlinuz-<kernel version number>
.
디스크 크기가 증가하고 논리 블록 주소 지정이 IDE 디스크(1994~2003)의 표준이 되었을 때 1994년 이전 시스템의 BIOS는 항상 LBA를 지원하지 않았으므로 LBA가 지원될 때까지 처음 528MB 정도에만 액세스할 수 있었습니다. . 운영 체제가 실행되기 시작합니다. 따라서 부팅의 초기 단계에 필요한 파일을 디스크 맨 처음 부분에 있는 별도의 작은 파티션에 배치할 수 있는 것이 중요합니다. Linux에서는 이로 인해 /boot
파일 시스템 규칙이 발생합니다 .
즉, 현재 및 이전 대체 커널 버전에 대한 /boot
커널 및 / 파일과 부트로더 자체에 필요할 수 있는 모든 파일(가장 일반적으로 디렉터리)만 포함하는 별도의 파일 시스템을 생성하도록 선택할 수 있습니다.initrd
initramfs
/boot/grub
모든 최신 시스템은 LBA를 당연히 이해하지만 /boot
파일 시스템 규칙은 루트 파일 시스템이 시스템 펌웨어에서 완전히 인식할 수 없는 형식인 경우에도 시스템을 부팅하는 데 사용할 수 있기 때문에 여전히 존재합니다. 예:
- 암호화된 루트 파일 시스템,
- Linux LVM의 루트 파일 시스템(필요한 경우 온라인으로 확장 가능하며 단일 디스크 한도까지 쉽게 확장 가능)
- 소프트웨어 RAID0 또는 RAID5 세트의 루트 파일 시스템(특별한 요구 사항이 없으면 루트 파일 시스템이 반드시 좋은 생각은 아닙니다)
- 또는 다중 볼륨 ZFS 또는 BtrFS 세트의 루트 파일 시스템입니다.
일부 시스템 펌웨어에는 인식되는 부팅 가능한 파티션을 확인하는 내장 검사가 포함되어 있습니다.존재하다실제 부트 로더라도 HDD에서 부팅을 시도하기 전에 비전통적인 디스크 레이아웃에서 부팅할 수 있습니다.
답변2
CentOS 7에서 커널은 기본적으로 /boot 디렉터리에 있습니다. 이 위치는 부트로더 GRUB2의 구성 파일에 지정됩니다. GRUB2 구성 파일의 위치는 /etc/grub2.cfg
실제 구성 파일에 대한 심볼릭 링크이며 사용된 펌웨어(BIOS/UEFI)에 따라 위치가 변경됩니다.
GRUB2 구성 파일에는 시스템이 부팅하도록 구성된 각 커널에 대한 "메뉴 항목" 섹션이 있습니다. 각 섹션에서 root
변수를 찾으세요. 내 시스템의 예는 다음과 같습니다.
set root='hd0,msdos1'
위의 변수는 디스크에 있는 첫 번째 파티션의 첫 번째 MBR 파티션을 지정합니다. 내 시스템에서 이는 /boot 파티션으로 마운트된 /dev/sda1에 해당합니다.
계속해서 동일한 메뉴 항목 섹션에서 "linux16" 또는 "linuxefi"로 시작하는 줄을 볼 수 있습니다. 이 키워드 바로 뒤에는 커널에 대한 경로가 있습니다(이전에 지정한 루트 디렉터리에 상대적). 예를 들어:
linux16 /vmlinuz-3.10.0-693.el7.x86_64 ...
시스템에서 이는 의 출력에 표시되는 "vmlinuz-*" 파일 중 하나입니다 ls /boot
. 이는 현재 시스템에 설치된 커널입니다.