Почему файловая система монтируется по имени устройства? (Типа /dev/sdaX)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Почему файловая система монтируется по имени устройства?

Сообщение жучара »

Друзья! Читая ВСЁ, вдруг у меня возник такой вот простой вопрос. Имеем хард с MBR, на нём логический диск /dev/sda5, где, собсно стоит астралинукс. При загрузке заходим в GRUB и командуем:

Shell

set root='hd0,msdos5'
linux /boot/vmlinuz-4.2.0-24-generic root=/dev/sda5 ro quiet
initrd /boot/initrd.img-4.2.0-24-generic
root
Система загружается, монтируется НУЖНАЯ файловая система (далее ФС). Это вообще как? По большому счёту ФС может идентифицироваться ТОЛЬКО UUID (или его аналогами типа PARTUUID). Потому, что эти идентификаторы прописаны в нужных полях ФС.

То есть при монтировании ищется ФС (как- не знаю, наверное, обычно ищется. В MBR смотрится её смещение, а в случае, если это логический блок, то, наверное, посредством просмотра связного списка систем). Но это неважно, как она ищется. Важно, что она нашлась, в ней ищется UUID, сверяется с заданным параметром, если совпадает, система искомая, нет- ищется дальше.

Но UUID-то прописан в ФС, а идентификатор вида /dev/sdaX- нет. Но находится она безошибочно. Я больше скажу, на логическом разделе /dev/sda8 у меня также существует установленный астралинукс (другой) и при указании

Shell

linux /boot/vmlinuz-4.2.0-24-generic root=/dev/sda8 ro quiet
монтируется именно указанная ФС. Правда, без графики (похоже, я ей без графики установил), но команда df показывает, что примонтирована именно /dev/sda8

То есть ядро или initrd (или кто там, врать не буду) безошибочно определяют ФС для примонтировывания.

Должно быть, получается, какое-то соответствие между /dev/sdaX и UUID-ами файловой системы. Какой-нибудь файл соответствия. Что же это за файл такой?

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Просмотр папки /dev/disk/by-uuid/ при загрузке? Да папки /dev/disk/ просто-напросто нет. /dev есть а /dev/disk/ нет (смотрено из консоли груба)

Какой-нибудь файл а-ля /boot/grub/device.map? Так нет его...

В общем, недокументированная какая-то возможность, что ли. Если кто объяснит, буду благодарен. Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Почему файловая система монтируется по имени устройства?

Сообщение Bizdelnick »

жучара писал(а):
13.10.2019 15:27
Должно быть, получается, какое-то соответствие между /dev/sdaX и UUID-ами файловой системы. Какой-нибудь файл соответствия. Что же это за файл такой?
Файла нет и соответствие не гарантировано. При инициализации ядро назначает всем дискам по очереди имена вида sda, sdb и т. д. Если диски подключены те же и так же, что и при предыдущей загрузке, скорее всего имя устройства не изменится (хотя, на самом деле, иногда порядок инициализации меняется непредсказуемым образом). Что касается цифры, то она определяется разбивкой диска, так что, если таблица разделов не менялась, цифра останется прежней.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить