[sisyphus] make-initrd

Игорь Андросов blacester на gmail.com
Вт Июн 16 20:53:45 MSK 2020


вт, 16 июн. 2020 г. в 19:05, Alexey Gladkov <legion на altlinux.ru>:

> 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 устройства.
>
Эм, мы у него и попросили их, указав конкретный, существующий 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 и убрать позволяет создать корень на любой вариации аппаратных, и не
только, носителей...

Прошу прощения за разведенную дискуссию.

> Спасибо.
>

> --
> Rgrds, legion
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus



-- 
С уважением Игорь.
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/sisyphus/attachments/20200616/799237af/attachment.html>


Подробная информация о списке рассылки Sisyphus