Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] boot with rootfs on a btrfs subvolume
@ 2021-05-04 16:53 Arseny Maslennikov
  2021-05-04 18:43 ` Alexey Gladkov
  0 siblings, 1 reply; 7+ messages in thread
From: Arseny Maslennikov @ 2021-05-04 16:53 UTC (permalink / raw)
  To: make-initrd

[-- Attachment #1: Type: text/plain, Size: 1886 bytes --]

Дано:
    # 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@cello / # rpm -qa make-initrd 
make-initrd-2.16.0-alt1.x86_64
(chroot) root@cello / # ^D

features/btrfs/README.md, man make-initrd ни на что не наставляют.
Как это побороть?

P.S. Я, правда, пока не пробовал задавать rootflags — но почему бы
make-initrd по умолчанию не взять их из fstab?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 16:53 [make-initrd] boot with rootfs on a btrfs subvolume Arseny Maslennikov
@ 2021-05-04 18:43 ` Alexey Gladkov
  2021-05-04 19:14   ` Arseny Maslennikov
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Gladkov @ 2021-05-04 18:43 UTC (permalink / raw)
  To: make-initrd

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@cello / # rpm -qa make-initrd 
> make-initrd-2.16.0-alt1.x86_64
> (chroot) root@cello / # ^D
> 
> features/btrfs/README.md, man make-initrd ни на что не наставляют.
> Как это побороть?
> 
> P.S. Я, правда, пока не пробовал задавать rootflags — но почему бы
> make-initrd по умолчанию не взять их из fstab?

Можете показать /etc/fstab из получившегося initrd ?
Были ли передан при загрузке root= ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 18:43 ` Alexey Gladkov
@ 2021-05-04 19:14   ` Arseny Maslennikov
  2021-05-04 21:02     ` Alexey Gladkov
  0 siblings, 1 reply; 7+ messages in thread
From: Arseny Maslennikov @ 2021-05-04 19:14 UTC (permalink / raw)
  To: make-initrd

[-- Attachment #1: Type: text/plain, Size: 2597 bytes --]

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@cello / # rpm -qa make-initrd 
> > make-initrd-2.16.0-alt1.x86_64
> > (chroot) root@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 вполне соответствуют желаемым.

> Были ли передан при загрузке root= ?

root=UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 19:14   ` Arseny Maslennikov
@ 2021-05-04 21:02     ` Alexey Gladkov
  2021-05-04 21:59       ` Arseny Maslennikov
  2021-05-16 16:14       ` Alexey Gladkov
  0 siblings, 2 replies; 7+ messages in thread
From: Alexey Gladkov @ 2021-05-04 21:02 UTC (permalink / raw)
  To: make-initrd

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@cello / # rpm -qa make-initrd 
> > > make-initrd-2.16.0-alt1.x86_64
> > > (chroot) root@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 может забывать не всё, а только то,
что переопределено.

> > Были ли передан при загрузке root= ?
> 
> root=UUID=a8c68183-f5bf-4623-86fe-41d9171b7c5f

Тогда всё ясно.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 21:02     ` Alexey Gladkov
@ 2021-05-04 21:59       ` Arseny Maslennikov
  2021-05-05  8:43         ` Alexey Gladkov
  2021-05-16 16:14       ` Alexey Gladkov
  1 sibling, 1 reply; 7+ messages in thread
From: Arseny Maslennikov @ 2021-05-04 21:59 UTC (permalink / raw)
  To: make-initrd

[-- Attachment #1: Type: text/plain, Size: 4103 bytes --]

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@cello / # rpm -qa make-initrd 
> > > > make-initrd-2.16.0-alt1.x86_64
> > > > (chroot) root@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= тогда; это помогло.
Так и красивее выйдет.
Большое спасибо за помощь!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 21:59       ` Arseny Maslennikov
@ 2021-05-05  8:43         ` Alexey Gladkov
  0 siblings, 0 replies; 7+ messages in thread
From: Alexey Gladkov @ 2021-05-05  8:43 UTC (permalink / raw)
  To: make-initrd

On Wed, May 05, 2021 at 12:59:23AM +0300, Arseny Maslennikov wrote:
> > make-initrd уже сейчас умеет их использовать, но только если не указан
> > root=. Если указать root=, то он забывает сохранённые настройки.
> > 
> > Это можно исправить. Он make-initrd может забывать не всё, а только то,
> > что переопределено.
> 
> Мне пока на ум не приходит ситуаций, где это поведение реально мешает,
> если о нём просто знать. Разве что оно не похоже на поведение
> initramfs-движков других дистрибутивов...

Я не вижу тут никаких проблем.

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

Вы правы.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] boot with rootfs on a btrfs subvolume
  2021-05-04 21:02     ` Alexey Gladkov
  2021-05-04 21:59       ` Arseny Maslennikov
@ 2021-05-16 16:14       ` Alexey Gladkov
  1 sibling, 0 replies; 7+ messages in thread
From: Alexey Gladkov @ 2021-05-16 16:14 UTC (permalink / raw)
  To: make-initrd

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



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-05-16 16:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-04 16:53 [make-initrd] boot with rootfs on a btrfs subvolume Arseny Maslennikov
2021-05-04 18:43 ` Alexey Gladkov
2021-05-04 19:14   ` Arseny Maslennikov
2021-05-04 21:02     ` Alexey Gladkov
2021-05-04 21:59       ` Arseny Maslennikov
2021-05-05  8:43         ` Alexey Gladkov
2021-05-16 16:14       ` Alexey Gladkov

Make-initrd development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
		make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
	public-inbox-index make-initrd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.make-initrd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git