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

Arseny Maslennikov arseny at altlinux.org
Wed May 5 00:59:23 MSK 2021


On Tue, May 04, 2021 at 11:02:04PM +0200, Alexey Gladkov wrote:
> On Tue, May 04, 2021 at 10:14:24PM +0300, Arseny Maslennikov wrote:
> > On Tue, May 04, 2021 at 08:43:13PM +0200, Alexey Gladkov wrote:
> > > On Tue, May 04, 2021 at 07:53:46PM +0300, Arseny Maslennikov wrote:
> > > > Дано:
> > > >     # ls -l /dev/disk/by-partlabel/protoroot
> > > >     lrwxrwxrwx 1 root root 15 May  4 18:41 /dev/disk/by-partlabel/protoroot -> ../../nvme0n1p2
> > > >     # mount /dev/disk/by-partlabel/protoroot -o subvol=/alt /mnt
> > > >     # btrfs subvolume get-default /mnt
> > > >     ID 671 gen 9498169 top level 5 path debian
> > > >     #
> > > >     # cat /mnt/etc/initrd.mk
> > > >     # trying to detect modules and features to access to root volume
> > > >     AUTODETECT = all
> > > >     MODULES_TRY_ADD += 
> > > >     FEATURES += plymouth btrfs
> > > > 
> > > > Мне надо, чтобы можно было загрузить альт с корнем на btrfs-подразделе.
> > > > 
> > > > У меня в /etc/fstab написано следующее:
> > > >     # cat /mnt/etc/fstab
> > > >     proc		/proc			proc	nosuid,noexec,gid=proc		0 0
> > > >     devpts		/dev/pts		devpts	nosuid,noexec,gid=tty,mode=620	0 0
> > > >     tmpfs		/tmp			tmpfs	nosuid				0 0
> > > >     UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f	/	auto	subvol=/alt,relatime	1	1
> > > >     UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f	/home	auto	subvol=/home/:alt,relatime	1	1
> > > >     PARTUUID=c08f5c6b-3fe3-4c94-ab53-4efd654b617d	/boot/efi	vfat	umask=0077,dmask=0077	0	1
> > > > После регенерации initramfs, её установки в загрузчик и перезагрузки
> > > > система грузится в правильный раздел, но с неправильными опциями
> > > > (монтирует подраздел по умолчанию).
> > > > 
> > > > # chroot /mnt                        
> > > > (chroot) root at cello / # rpm -qa make-initrd 
> > > > make-initrd-2.16.0-alt1.x86_64
> > > > (chroot) root at cello / # ^D
> > > > 
> > > > features/btrfs/README.md, man make-initrd ни на что не наставляют.
> > > > Как это побороть?
> > > > 
> > > > 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 может забывать не всё, а только то,
> что переопределено.

Мне пока на ум не приходит ситуаций, где это поведение реально мешает,
если о нём просто знать. Разве что оно не похоже на поведение
initramfs-движков других дистрибутивов...

Наверное, в Documentation/BootParameters.md стоит это отразить, и/или в
какой-то более очевидной документации, в частности, присутствующей в пакете.

> 
> > > Были ли передан при загрузке root= ?
> > 
> > root=UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f
> 
> Тогда всё ясно.
> 

Попробовал убрать root= тогда; это помогло.
Так и красивее выйдет.
Большое спасибо за помощь!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.altlinux.org/pipermail/make-initrd/attachments/20210505/b040309b/attachment.bin>


More information about the Make-initrd mailing list