[make-initrd] boot with rootfs on a btrfs subvolume

Alexey Gladkov gladkov.alexey at gmail.com
Sun May 16 19:14:19 MSK 2021


On Tue, May 04, 2021 at 11:02:04PM +0200, Alexey Gladkov wrote:
> > > > P.S. Я, правда, пока не пробовал задавать rootflags — но почему бы
> > > > make-initrd по умолчанию не взять их из fstab?
> > > 
> > > Можете показать /etc/fstab из получившегося initrd ?
> > 
> > Одна строчка:
> > UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f /      btrfs  rw,relatime,ssd,space_cache,subvolid=822,subvol=/alt 0 0
> > 
> > subvol и subvolid вполне соответствуют желаемым.
> 
> make-initrd уже сейчас умеет их использовать, но только если не указан
> root=. Если указать root=, то он забывает сохранённые настройки.
> 
> Это можно исправить. Он make-initrd может забывать не всё, а только то,
> что переопределено.
> 
> > > Были ли передан при загрузке root= ?
> > 
> > root=UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f
> 
> Тогда всё ясно.

Я начал думать про эту проблему и склоняюсь к выводу, что как сделано
сейчас это правильное поведение.

Сейчас запись из системного /etc/fstab берётся тогда, когда нет попытки
переопределить значения рута. Когда передаётся root=, то скорее всего эта
информация не актуальна. В этом случае вся информация из системы
отбрасывается.

Если же частично брать из системы опции и тип файловой системы, то будут
"подземные стуки" потому, что будут подставляться параметры, где был
создан образ.

В вашем случае если вы укажите root=UUID на другой рут, то будут
поставлены rootfstype=btrfs и параметры, что будет очень неправильно.

Текущее поведение при указании root= сбросит остальные параметры на
rootfstype=auto и rootflags=defaults. Это мне кажется более правильным.

-- 
Rgrds, legion



More information about the Make-initrd mailing list