* Re: [sisyphus] make-initrd @ 2020-06-16 9:16 ` Alexey Gladkov 0 siblings, 1 reply; 8+ messages in thread From: Alexey Gladkov @ 2020-06-16 9:16 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Tue, Jun 16, 2020 at 11:49:40AM +0300, Игорь Андросов wrote: > Всем добрый день. > > Возник вопрос - у нас сейчас случайно не поломана генерация initrd если > корень расположен на btrfs? > > После какого-то обновления (с перегенерацией initrd) система перестала > грузиться на ядрах у которых идет перегенерация initrd, виснет на запуске > udev, через какое-то время вываливается в shell. Попробовал разобраться: > Корень системы на btrfs на sata ssd диске. В initrd не попадают модули > ahci, sd_mod (и прочая из этой "серии"). Если добавить вручную в initrd.mk > DEVICES раздел с корнем то модули добавляются и после перегенерации initrd > все нормально грузится. > Причина похоже в определении device для / в make-initrd (если я ничего не > пропустил): Вы всё правильно поняли. > # findmnt -n -o MAJ:MIN,FSTYPE,SOURCE --target / > 0:24 btrfs /dev/sda2 Вот тут очень интересно откуда такой major взялся. Попробую разобраться, хотя у меня нигде такого не было. > потом по MAJ:MIN идет дальнейшее определение через /dev/block/$majmin > но устройств с MAJ = 0 в /dev/block нет и как результат модули > необходимые для / не определяются. -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAO+nvQBGgQXntzyhi+6j4eJo=vy6wuWESTJ=bNDOmGd2ETtUpQ@mail.gmail.com>]
* Re: [sisyphus] make-initrd @ 2020-06-16 12:30 ` Alexey Gladkov 0 siblings, 1 reply; 8+ messages in thread From: Alexey Gladkov @ 2020-06-16 12:30 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Tue, Jun 16, 2020 at 12:39:14PM +0300, Игорь Андросов wrote: > > Вы всё правильно поняли. > > > > > # findmnt -n -o MAJ:MIN,FSTYPE,SOURCE --target / > > > 0:24 btrfs /dev/sda2 > > > > Вот тут очень интересно откуда такой major взялся. Попробую разобраться, > > хотя у меня нигде такого не было. > > > Ну, как предположение, btrfs может быть из нескольких дисков(кроме того еще > субтома, снапшоты и тд которые могут выступать как точки монтирования) и > это какое-то виртуальное устройство а не прямая связь с физ устройством? Нет. Устройство чего бы под ним не было должно быть устройством. Можете показать вывод следующей команды ? stat -L -c '%02t:%02T' /dev/sda2 -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAO+nvQD=XQ-BVQb9R=qrM75TW4aZGoUdLXmnPpRN06YUmK2hxg@mail.gmail.com>]
* Re: [sisyphus] make-initrd @ 2020-06-16 16:04 ` Alexey Gladkov 0 siblings, 1 reply; 8+ messages in thread From: Alexey Gladkov @ 2020-06-16 16:04 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Tue, Jun 16, 2020 at 06:03:52PM +0300, Игорь Андросов wrote: > вт, 16 июн. 2020 г. в 15:30, Alexey Gladkov <legion@altlinux.ru>: > > > On Tue, Jun 16, 2020 at 12:39:14PM +0300, Игорь Андросов wrote: > > > > Вы всё правильно поняли. > > > > > > > > > # findmnt -n -o MAJ:MIN,FSTYPE,SOURCE --target / > > > > > 0:24 btrfs /dev/sda2 > > > > > > > > Вот тут очень интересно откуда такой major взялся. Попробую > > разобраться, > > > > хотя у меня нигде такого не было. > > > > > > > Ну, как предположение, btrfs может быть из нескольких дисков(кроме того > > еще > > > субтома, снапшоты и тд которые могут выступать как точки монтирования) и > > > это какое-то виртуальное устройство а не прямая связь с физ устройством? > > > > Нет. Устройство чего бы под ним не было должно быть устройством. > > Можете показать вывод следующей команды ? > > > > Эм... Может я неверно выразился, но: > kernel/Documentation/admin-guide/devices.txt > -- > 0 Unnamed devices (e.g. non-device mounts) > 0 = reserved as null device number > See block major 144, 145, 146 for expansion areas. > -- cut -- > > btrfs это файловая система, она вроде как не устройство, она может быть > собрана из н-цати "устройств", разделов дисков и тд. и сказать кто в нее > входит может только она. Это не так. Обратите внимание, что показала утилита stat. Это те же major и minor устройства. Тут скорее findmnt запутался из-за того что запрос информации об устройстве был по точке монтирования и выдал чушь. На моих тестах он вёл себя корректно. > Соответственно и возникает устройство с Major 0, > так монтируем не конкретное устройство, а некую точку из того что есть в > btrfs, имхо схоже с nfs,proc,sys и подобными. В случае виртуальной файловой системы major и minor не имеет смысла. Я переделаю способ получения этой информации о точке монтирования. Спасибо. -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAO+nvQCZ3inPfCTT6-YCZ3gq0O8LvgeS76ahmSBiUxuXx+Ncxw@mail.gmail.com>]
* Re: [sisyphus] make-initrd @ 2020-06-17 16:15 ` Alexey Gladkov 2020-06-20 19:06 ` Leonid Krivoshein 0 siblings, 2 replies; 8+ messages in thread From: Alexey Gladkov @ 2020-06-17 16:15 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Tue, Jun 16, 2020 at 08:53:45PM +0300, Игорь Андросов wrote: > > > Эм... Может я неверно выразился, но: > > > kernel/Documentation/admin-guide/devices.txt > > > -- > > > 0 Unnamed devices (e.g. non-device mounts) > > > 0 = reserved as null device number > > > See block major 144, 145, 146 for expansion areas. > > > -- cut -- > > > > > > btrfs это файловая система, она вроде как не устройство, она может быть > > > собрана из н-цати "устройств", разделов дисков и тд. и сказать кто в нее > > > входит может только она. > > > > Это не так. Обратите внимание, что показала утилита stat. Это те же major > > и minor устройства. > > > Эм, мы у него и попросили их, указав конкретный, существующий device. > > > > > Тут скорее findmnt запутался из-за того что запрос информации об > > устройстве был по точке монтирования и выдал чушь. На моих тестах он вёл > > себя корректно. > > > findmnt по умолчанию берет данные из /proc/self/mountinfo, там тот же major > = 0, и эту информацию дает ядро: > > Я еще раз поясню свою мысль на примере (пример извращенный но возможный): > btrfs = (sda1, sdb, nvme1) то есть она собрана из нескольких физ устройств, > режим single то есть размер файловой система - весь суммарный объем > устройств > для того что бы btrfs "собралась" должны быть доступны все устройства, если > драйвера для того или иного устройства не будет/не будет устройства и fs > "не соберется", если на этой fs расположен корень - мы не можем загрузиться. > Не через btrfs я не знаю способ как можно посмотреть какие устройства для > нее нужны, везде я вижу только одно устройство (подозреваю первое по > алфавиту найденное по uuid? у остальных uuid тайкой же). через команду > "btrfs filesystem show /" я вижу что в составе этой fs 3 устройства. > > > > > > Соответственно и возникает устройство с Major 0, > > > так монтируем не конкретное устройство, а некую точку из того что есть в > > > btrfs, имхо схоже с nfs,proc,sys и подобными. > > > > В случае виртуальной файловой системы major и minor не имеет смысла. > > > > Я переделаю способ получения этой информации о точке монтирования. > > > Мое мнение: для того чтобы обеспечить загрузку с корнем на btrfs нужно > знать какие устройства в нее входят, и соответственно включать в initrd > драйвера необходимые для каждого. В моем случае btrfs состоит из одного > device, была у меня конфигурация где было 5 дисков, на 2 разных sata > контроллерах, благо не корень ) Возможность на лету добавить устройство в > btrfs и убрать позволяет создать корень на любой вариации аппаратных, и не > только, носителей... > > Прошу прощения за разведенную дискуссию. После вашего письма я понял, что у меня существует пробел в знаниях о btrfs. Я знал, что можно использовать несколько дисков, но мне казалось, что при объединении дисков в одну файловую систему будет создано устройство (device mapper или что-то своё). Теперь я понимаю о чём вы говорите. Получается до перехода на findmnt make-initrd работал чудом (если работал) с btrfs. Сейчас оно сломалось окончательно. Похоже для btrfs нужно делать `btrfs filesystem show /` и получать оттуда полный список devid. -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAO+nvQAuGGOE9-G=4Q1nso49vDOgrZ9peEjepAzU5ucU3DaE8Q@mail.gmail.com>]
* Re: [sisyphus] make-initrd @ 2020-06-17 18:25 ` Alexey Gladkov 2020-06-17 18:53 ` Михаил Новоселов 0 siblings, 1 reply; 8+ messages in thread From: Alexey Gladkov @ 2020-06-17 18:25 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Wed, Jun 17, 2020 at 08:54:16PM +0300, Игорь Андросов wrote: > > Теперь я понимаю о чём вы говорите. Получается до перехода на findmnt > > make-initrd работал чудом (если работал) с btrfs. Сейчас оно сломалось > > окончательно. > > > Работал, так как похоже отталкивался не от MAJ:MIN, а от чего-то другого, и > в > подавляющем большинстве случаев device висят на одном контроллере, > соответственно > нужные драйвера попадали в initrd. Раньше там была обычная утилита stat и blkid и поэтому брался MAJ:MIN одного из дисков и, как вы правильно говорите, везло, что они все были на одном контроллере. Учитывая, что я никогда не слышал жалоб про btrfs, то это была единственная используемая конфигурация )) > > Похоже для btrfs нужно делать `btrfs filesystem show /` и получать оттуда > > полный список devid. > > > Вариант `btrfs filesystem show /` на мой взгляд самый правильный и в то же > время > опасный - так как вывод нужно парсить, изменят что-то в выводе, сломается > парсинг. Я этого тоже побаиваюсь. Да и утилита эта марсианская какая-то. > > Посмотрел - еще в /sys/fs/btrfs/{uuid}/devices есть список устройств > входящих в fs, > uuid - файловой системы > Кроме того для всех "устройств" входящих в btrfs, blkid показывает > одинаковый uuid, > так как сама btfs собирается скорее всего отталкиваясь от uuid может имеет > смысл > использовать его? То есть если / на btrfs то получить для него uuid, по > uuid получить > список "устройств", для них получить список модулей? Согласно документации сюда можно смотреть. Кажется это место лучше. Спасибо. -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] make-initrd 2020-06-17 18:25 ` Alexey Gladkov @ 2020-06-17 18:53 ` Михаил Новоселов 0 siblings, 0 replies; 8+ messages in thread From: Михаил Новоселов @ 2020-06-17 18:53 UTC (permalink / raw) To: sisyphus 17.06.2020 21:25, Alexey Gladkov пишет: > Учитывая, что я никогда не слышал жалоб про btrfs, то > это была единственная используемая конфигурация )) Давно не пробовал, но раньше, если система стояла не в корне раздела btrfs, а в подтоме, например, @, Альт был одним из немногих дистрибутивов, для которых требовалось создать /boot отдельным разделом, т.к. initrd иначе не работал. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] make-initrd 2020-06-17 16:15 ` Alexey Gladkov @ 2020-06-20 19:06 ` Leonid Krivoshein 2020-06-20 19:44 ` Alexey Gladkov 1 sibling, 1 reply; 8+ messages in thread From: Leonid Krivoshein @ 2020-06-20 19:06 UTC (permalink / raw) To: sisyphus 17.06.2020 19:15, Alexey Gladkov пишет: > [...] > Похоже для btrfs нужно делать `btrfs filesystem show /` и получать оттуда > полный список devid. Вообще-то с zfs, lvm и md может быть схожая ситуация, с той лишь разницей, что для lvm и md для партиции некое блочное устройство всегда создаётся. ls /sys/block/<devname>/slaves/* (рекурсивно) не поможет? -- Best regards, Leonid Krivoshein. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] make-initrd 2020-06-20 19:06 ` Leonid Krivoshein @ 2020-06-20 19:44 ` Alexey Gladkov 0 siblings, 0 replies; 8+ messages in thread From: Alexey Gladkov @ 2020-06-20 19:44 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Sat, Jun 20, 2020 at 10:06:01PM +0300, Leonid Krivoshein wrote: > > 17.06.2020 19:15, Alexey Gladkov пишет: > > [...] > > Похоже для btrfs нужно делать `btrfs filesystem show /` и получать оттуда > > полный список devid. > > Вообще-то с zfs, lvm и md может быть схожая ситуация, с той лишь разницей, > что для lvm и md для партиции некое блочное устройство всегда создаётся. > > ls /sys/block/<devname>/slaves/* (рекурсивно) не поможет? Там такого нет. -- Rgrds, legion ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-06-20 19:44 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-06-16 9:16 ` [sisyphus] make-initrd Alexey Gladkov 2020-06-16 12:30 ` Alexey Gladkov 2020-06-16 16:04 ` Alexey Gladkov 2020-06-17 16:15 ` Alexey Gladkov 2020-06-17 18:25 ` Alexey Gladkov 2020-06-17 18:53 ` Михаил Новоселов 2020-06-20 19:06 ` Leonid Krivoshein 2020-06-20 19:44 ` Alexey Gladkov
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git