Як слід налаштувати grub для завантаження ядра Linux з жорсткого диска USB?


17

У мене жорсткий диск для ноутбука у зовнішньому корпусі, який я використовую як великий маятник. Для додаткового повороту я встановив на ньому Linux, тому я можу завантажувати будь-яку машину з моїм вибором (наприклад, для відновлення даних або ремонту системи b0rked або просто з використанням запозиченого ноутбука без руйнування попередньо встановленої Windows). Проблема полягає в тому, що, залежно від конфігурації обладнання, жорсткий диск USB може бути видимим під різними шляхами. Для конфігурації grub я просто використовую так, (hda0,0)як це стосується пристрою, з якого було запущено grub. У мене є записи UUID /etc/fstab. Я також вказую rootwaitв параметрах ядра, щоб він чекав, коли підсистема USB осяде, перш ніж спробувати встановити пристрій.

Що я повинен передати ядру root=? В даний час завантажтеся з pendrive один раз, перевірте повідомлення про налагодження, щоб побачити, який /dev/sdXпристрій призначено ядром USB на ядро, а потім перезавантажте та відредагуйте конфігурацію grub. Я не можу нічого змінити на ПК, окрім включення Boot from USB hard driveв BIOS і встановлення його на більш високий пріоритет, ніж внутрішні жорсткі диски.

Існують різні сценарії, що генерують initrd, які включають підтримку UUID в шляху до кореневого пристрою, на жаль, нативний Gentoo (genkernel) не підтримує, rootwaitі мені не пощастило намагатися використовувати інші.

Процес завантаження йде так ( він досить схожий в Windows ):

  1. BIOS вибирає завантажувальний пристрій і завантажує будь-який його MBR (що трапляється на стадії grub-1).
  2. Grub завантажує конфігурацію та файли 2-го етапу з пристрою, який він встановив root, використовуючи (hd0)для пристрою, з якого завантажений BIOS.
  3. Grub завантажує і запускає ядро ​​(все ще така ж нумерація, тому я можу (hd0,0)знову використовувати ).
  4. Ядро ініціалізує всі вбудовані пристрої ( rootwaitчи це зараз магія).
  5. Ядро монтує розділ, яким він був переданий як root(це параметр ядра, а не параметр grub).
  6. init.dпочинається процес завантаження UserLand, включаючи монтаж речі з /etc/fstab.

Частина 5 - це та, яка створює мені проблеми.

Відповіді:


6

Я думаю, що відповідь має бути використати root=LABEL=...абоroot=UUID=...

Але ви вказуєте, що це не працює для вас. Я б запропонував розібратися, чи є якась проблема з діями вашого інтрида.


У мене немає initrd, у цьому вся проблема. genkernel не підтримує опцію "rootwait", а інші не працюють з Gentoo.
Сколіма

2

Я можу помилитися чи, можливо, просто нерозуміти вас, але чи не вибір завантажувального пристрою чимось, що було б налаштовано з BIOS машини, на якій ви завантажуєтесь?

Я думаю, було б питанням вибрати USB-накопичувач, який встановив би GRUB як його завантажувач, а потім вибрати, який дистрибутив ви хочете завантажувати з меню GRUB.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.