Bitbucket Pipelines.yml имеет проблемы с FTP

Строго говоря, UUID вообще не адресует .

Адресация очень, очень проста :чтение сектора Y диска X -или что-то еще. Прочитать адрес памяти Z -или еще что-нибудь. Адресация проста, быстра, оставляет мало места для интерпретации, и она есть везде.

UUID не выполняет адресацию. Вместо этого это поиск, нахождение, иногда ожидание появления устройств, а также понимание файловых систем(★ ). И в зависимости от того, сколько устройств есть, это может занять очень много времени. И как только нашли, вернуться к обычной адресации это.

В GRUB это называетсяsearch(★★ )и доступно только тогда, когда GRUB уже отрастил крылья (поиск — это модуль, как и любая файловая система, которую он поддерживает, поэтому он доступен только после загрузки ядра )]. В Linux это (, например ), называется findfs, findfs будет искать блочные устройства в системе в поисках файловой системы или раздела .

Он проходит через все блочные устройства, выводит их из режима ожидания, считывает данные, и результат может быть даже случайным, если UUID не уникален, как должно быть (после ddаварии или подобного ), или вы не получите никакого результата, если UUID изменился -UUID также склонны к ошибкам конфигурации.

В общем, UUID — это здорово,и, конечно, вы должны использовать их везде, если они доступны, особенно когда традиционная адресация обречена на неудачу, потому что порядок дисков в Linux случайный; но поймите, что сложность выходит за рамки того, для чего предназначена простая адресация. И особенно на самых ранних стадиях загрузчиков, это может быть просто не вариант. Сначала идет обращение, а потом отращивание крыльев.

Для загрузчика может просто не быть необходимости прилагать усилия (не каждый загрузчик поддерживает широкий спектр файловых систем, таких как GRUB ). Если hd0гарантированно является «диском, с которого мы загрузились» из-за обстоятельств (, которые BIOS предоставляет ), и поэтому, если вы можете исключить проблемы со случайным порядком дисков, возможно, нет необходимости проходить через потенциально огромный список других разделов в поисках UUID.

Если вы достаточно уверены в своей конфигурации, чтобы сказать, что hd0,gpt2— это тот, который вам нужен, и он должен быть, и иначе быть не может, то нет ничего плохого в его использовании таким образом. Иногда обычная и простая адресация работает просто отлично.


(★ )Ранее я объяснял это для ЭТИКЕТОК здесь ...

There is no generic standard for labels, it's all hand-knitted, see for example this implementation of superblocks formats in util-linux. If you invent a new filesystem tomorrow, even if it has a label, it won't show up until support is added.

...и то же самое для UUID.


(★★ )На самом деле, у GRUB searchесть опция --hint, и... сейчас я не проверял исходный код, и это даже не задокументировано в их руководстве, но такая опция сделала бы смысл дать вам лучшее из обоих миров :подсказка должна сказать searchдля сначала проверьте этот раздел , и если UUID соответствует ожидаемому, он идентифицировал устройство с минимальными усилиями , и если он не совпадает, он все равно вернется к полномасштабному поиску, чтобы все как-то работало.

В дополнение к этому ранее найденные UUID, как правило, кешируются, поэтому ему не нужно проходить через все устройства снова и снова и снова -, и это тоже отлично работает,при условии, что UUID, который вы ищете, действительно существует где-то, чтобы попасть в кеш в первую очередь.

0
23.08.2021, 08:57
0 ответов

Теги

Похожие вопросы