리눅스 (커널)는 얼마나 많은 부트 파티션을 가지고 있는지 상관하지 않습니다. 디스크에서 커널을로드하면 부트 로더 (예를 들면의 일이다 grub
, grub2
, lilo
)와 이러한 도구는 커널이 위치 할 수있는 위치의 수에 대해 걱정하지 않는다. 특정 위치에만 관심이 있습니다.
예를 들어, 내 부팅 파티션은 /dev/md1
물리적 파티션을 기본으로하는 mdadm를 RAID를 거울이다 /dev/sde1
하고 /dev/sdf1
. 원하는 경우 이들을 개별적으로 마운트 할 수 있으며 기술적으로 동일한 데이터를 포함해야하는 두 개의 부트 파티션이있는 것으로 계산됩니다.
/ boot에 두 개의 파티션이있는 것은 가용성 문제이지만 동일하게 다른 / boot 파티션 일 수도 있습니다. 다음 단계는 부트 로더를 어떻게 알 수 있습니까? 방법은 다음과 같습니다.
menuentry 'Linux 3.10.17 (sde) kernel-3.10.17-g' {
root=hd0,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
menuentry 'Linux 3.10.17 (sdf) kernel-3.10.17-g' {
root=hd1,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
이것은 grub2
구성 에서 발췌 한 것입니다. 차이점은 항목 root=hd0,1
과 root=hd1,1
해당 부트 파티션이 참조하는 부트 파티션 만 다릅니다 .
이제 부팅을 통해 걸어서 여기에서 무슨 일이 일어나고 있는지 이해할 수 있습니다.
- BIOS가 부팅 볼륨에서 MBR을 읽고 부트 로더로 점프
- 부트 로더 (예 :)
grub2
는 커널을 포함하는 장치 및 파티션을 알 수 있도록 구성되어 있습니다. Grub2는이 파티션에 직접 액세스하여 커널을 메모리에로드합니다.
- 그러면 부트 로더가 커널로 뛰어 들어가 커널이 컴퓨터를 부팅합니다.
부트 로더는 얼마나 많은 부트 파티션을 가지고 있는지 상관하지 않으며, 그들이 어디에 있는지에 대해서만 신경 쓰고 정보를 알려야합니다.
커널은 부팅 파티션 수를 신경 쓰지 않습니다. 부팅 파티션을 볼 필요가 없기 때문입니다 (예를 들어 새 커널을 추가하기 위해 사용 가능해야 함).
/boot
루트 파티션에 마운트 된 디렉토리를 언급하지 않습니까?