Строго кажучи, UUID взагалі не звертається .
Адресація дуже-дуже проста: читайте диск X сектора Y - або ще. Прочитайте адресу пам'яті Z - або ще. Адресація проста, швидка, не залишає багато місця для інтерпретації, і вона є скрізь.
UUID не звертається. Натомість це пошук, пошук, іноді очікування появи пристроїв, а також розуміння файлових систем (★). І залежно від кількості пристроїв, це може зайняти дуже багато часу. І знайшовшись, повертаємось до регулярних адрес.
У GRUB це називається search
(★★), і воно доступне лише тоді, коли GRUB вже виростив крила (пошук - це модуль, як і кожна файлова система, яку він підтримує, тому доступний лише після завантаження ядра). У Linux це називається (наприклад) findfs
, findfs здійснюватиме пошук блокових пристроїв у системі, які шукають файлову систему або розділ .
Він проходить через усі пристрої блоку, виводить їх з режиму очікування, зчитує дані, і результат навіть може бути випадковим, якщо UUID не унікальний, як має бути (після dd
аварії чи тому подібного), або ви не отримаєте результату, якщо UUID змінився - UUID також схильні до помилок конфігурації.
Загалом, UUID - це чудово, і, звичайно, ви повинні використовувати їх скрізь, якщо вони доступні, особливо коли традиційна адресація може вийти з ладу, оскільки порядок дисків випадковий в Linux; але розумійте, що складність вище і поза тим, що передбачається зробити простою адресацією. А особливо на самих ранніх стадіях завантажувачів, це просто може ще не бути варіантом. Звернення йде спочатку, зростаючі крила - пізніше.
Для завантажувача, можливо, не доведеться докладати зусиль (не кожен завантажувач підтримує широкий спектр файлових систем, таких як GRUB). Якщоhd0
гарантовано буде "той диск, з якого ми завантажилися" із-за обставин (передбачено BIOS), і тому, якщо ви можете виключити випадкові випадки порядку замовлення диска, можливо, не буде необхідності переглядати потенційно величезний список інших розділів у пошук UUID.
Якщо ви досить впевнені у своїй конфігурації, щоб сказати, що hd0,gpt2
це саме те, що ви хочете, і воно повинно бути, а не може бути інакше, тоді нічого поганого в його використанні немає. Іноді просте і просте адресація працює чудово.
(★) Я раніше пояснював це для міток LABEL тут ...
Не існує загального стандарту для міток, це все вручну в'язане, див., Наприклад, реалізацію форматів суперблоків в util-linux . Якщо завтра винайдете нову файлову систему, навіть якщо вона має мітку, вона не з’явиться, поки не буде додана підтримка.
... і це майже те саме для UUID.
(★★) Насправді, у GRUB search
є --hint
можливість, і ... зараз я не перевірив вихідний код, і це навіть не зафіксовано в їх посібнику, але такий варіант мав би сенс дати вам найкраще з обох світів: підказка повинна сказати, search
щоб спочатку перевірити цей розділ , і якщо UUID відповідає, як очікувалося, він ідентифікував пристрій з мінімальними зусиллями , і якщо він не збігається, він все одно повернеться до повного роздутого пошуку, щоб все якось працювало .
На додаток до цього раніше знайдені UUID, як правило, кешуються, тому не потрібно переглядати всі пристрої знову і знову і знову - і це теж чудово працює, за умови, що UUID, який ви шукаєте, насправді існує десь внесіть його в кеш-пам'ять в першу чергу.