Задать вопрос
@Tansel
Админю всякое. Пытаюсь дорасти до DevOps

Как ОС загружается с разделом boot на софтверном рэйде?

Установил ОС Centos7 и при установке разместил разделы на софтверном RAID-0 (страйп) в том числе и раздел boot. (См под спойлером).
lsblk

[root@localhost ~]# sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 513M 0 part
│ └─md127 9:127 0 1G 0 raid0 [SWAP]
├─sda2 8:2 0 251M 0 part
│ └─md126 9:126 0 500M 0 raid0 /boot
└─sda3 8:3 0 7,3G 0 part
└─md125 9:125 0 14,5G 0 raid0 /
sdb 8:16 0 8G 0 disk
├─sdb1 8:17 0 513M 0 part
│ └─md127 9:127 0 1G 0 raid0 [SWAP]
├─sdb2 8:18 0 251M 0 part
│ └─md126 9:126 0 500M 0 raid0 /boot
└─sdb3 8:19 0 7,3G 0 part
└─md125 9:125 0 14,5G 0 raid0 /

Т.е. /boot находится на нулевом рейде md126. Как ОС вообще загружается? Ведь чтобы работать с софтверным рейдом ей нужны дрова этого рейда. А чтобы получить дрова ей нужно загрузиться, а раздел boot лежит в рейд разделе md126.
Помогите разобраться. Без этого знания я чувствую что не понимаю самой основы и не могу уложить в голове знания. Хотя бы куда копать? А то я у поисковиков не знаю даже как спросить такое.

md126 : active raid0 sdb2[1] sda2[0]
512000 blocks super 1.2 512k chunks
  • Вопрос задан
  • 1058 просмотров
Подписаться 5 Средний 3 комментария
Решения вопроса 1
@pfg21
ex-турист
grub классически использует систему "MBR gap".
первый кластер содержит классический boot.img размером 442 байта, в который ничего "большого" не впихнешь.
поэтому после идет "разрыв" между первым кластером и началом первого раздела (хватает пары-тройки мегабайт) в который вписывается core.img бинарный код, динамически компилируемый грубом во время grub-install из своих модулей, для загрузки с текущего набора фс и разделов.

т.е. в boot.img содержится только загрузчик core.img.
а размер core.img уже не ограничен 442 байтами и может многое чего хитрого загрузить.

если у тебя gpt, то там вообще спец.раздел с загрузчиком, туда много чего умного впихнуть можно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
DevOps Engineer
Не могу найти точный линк, но по-видимому GRUB поддерживает Software RAID Arrays, безо всяких доп драйверов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы