У меня есть жесткий диск ноутбука во внешнем корпусе, который я использую как большой Pendrive. Для дополнительного поворота я установил 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 ):
- BIOS выбирает загрузочное устройство и загружает его MBR (который является grub stage-1).
- Grub загружает свою конфигурацию и файлы стадии 2 с устройства, которое он установил
root
, используя(hd0)
для устройства, с которого он был загружен BIOS. - Grub загружает и запускает ядро (все та же нумерация, поэтому я могу использовать
(hd0,0)
снова). - Ядро инициализирует все встроенные устройства (
rootwait
теперь это волшебство). - Ядро монтирует раздел, которому он был передан
root
(это параметр ядра, а не параметр grub). init.d
запускает процесс загрузки пользовательского пространства, включая монтирование/etc/fstab
.
Часть 5 - это то, что доставляет мне проблемы.
Я могу ошибаться или, возможно, просто недопонимать вас, но не является ли выбор загрузочного устройства чем-то, что будет настроено из BIOS компьютера, который вы загружаете?
Я думаю, что это будет вопрос выбора USB-накопителя, на котором GRUB установлен в качестве загрузчика, и выбора дистрибутива, который вы хотите загрузить, из меню GRUB.
источник
Ты можешь использовать:
источник