Способи оплати Abuse

Як виправити неправильне ім'я кореневого розділу Grub

12.10.2023, 21:53

Ім'я кореневого розділу Grub - шлях до кореневого розділу (зазвичай позначається як /) в операційній системі Linux. Grub (GRand Unified Bootloader) - це завантажувач операційної системи Linux, який дає змогу обирати та завантажувати операційні системи під час старту комп'ютера.

Роль імені кореневого розділу

Коли комп'ютер завантажується, Grub шукає вказаний кореневий розділ, який містить основні файли операційної системи. Ім'я кореневого розділу зазвичай вказується в конфігураційному файлі завантажувача grub.cfg або в інших конфігураційних файлах, які налаштовують під час встановлення операційної системи Linux.

Значення імені кореневого розділу Grub може варіюватися залежно від конкретної конфігурації комп'ютера і встановленої операційної системи. Наприклад, якщо у вас встановлена одна операційна система, кореневим розділом може бути просто /, але якщо у вас встановлено кілька операційних систем або розділів, то ім'я може бути складнішим, наприклад, /dev/sda1 або /dev/nvme0n1p2. До речі, у разі, якщо з'являється помилка vfs unable to mount root fs on unknown block, дуже часто це відбувається через неправильне ім'я кореневого розділу. Як виправити проблему, ми розповідали тут, але є ще один спосіб.

Як вирішити проблему?

У багатьох дистрибутивах у конфігураційному файлі Grub ім'я кореневого розділу передається ядру у форматі UUID. Але з цим є одна проблема. Якщо якимось чином змінився кореневий розділ, наприклад, змініть його розмір, то UUID зміниться. І якщо ви перезавантажитеся, не оновивши конфігурацію Grub, то система не працюватиме, тому що ядро просто не зможе знайти потрібного розділу.

Як же вирішити проблему? Якщо ви точно знаєте, на якому розділі розташований корінь, можна прямо в меню Grub виправити конфігурацію. У меню виберіть стрілками вгору і вниз потрібний пункт, а потім натисніть кнопку E. Відкриється редактор конфігурації. Вам потрібно знайти рядок, схожий на цей:

linux /boot/vmlinuz-4.15.0-36-generic root=UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c ro quiet splash $vt_handoff

Имя корневого раздела Grub

У рядку слід поміняти UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c на звичайне ім'я кореневого розділу, наприклад, /dev/sda2. Для початку завантаження натисніть F10. Якщо система завантажиться, значить проблема була саме в цьому. Надалі, можна просто оновити конфігурацію Grub:

sudo update-grub

Також можна попросити Grub більше не використовувати UUID для позначення кореневого розділу:

sudo vi /etc/default/grub

GRUB_DISABLE_LINUX_UUID=true

Корневой раздел Grub

Помилка зникла, але система все ще не завантажується? systemd може використовувати файл /etc/fstab для монтування файлових систем. І якщо коренева файлова система там вказана неправильно, система не завантажиться. Можна використати режим відновлення Ubuntu. Тут теж треба замінити UUID на звичайний запис або ж на правильний UUID.