From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 Date: Wed, 17 Jun 2020 18:15:25 +0200 From: Alexey Gladkov To: ALT Linux Sisyphus discussions Message-ID: <20200617161525.kq4wdme76dsq7nok@comp-core-i7-2640m-0182e6> References: <20200616091646.kcjwbx2iqopbuk3d@comp-core-i7-2640m-0182e6> <20200616123009.rbfje77qz76texy7@comp-core-i7-2640m-0182e6> <20200616160459.cl47nnw5dkjufbza@comp-core-i7-2640m-0182e6> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [sisyphus] make-initrd X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Jun 2020 16:15:34 -0000 Archived-At: List-Archive: List-Post: 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