Выбор перезагрузки раздела командной строки
Я хочу запланировать перезагрузку во временный раздел из командной строки на X86 Linux box без ручного вмешательства. Возможно ли, что это можно сделать.
На мой взгляд, у меня есть только один вариант на данный момент: изменить конфигурационный файл загрузчика с помощью программы, а затем вернуться после загрузки во временный раздел (что, как вы можете себе представить, чрезвычайно опасно и глупо).
3 ответа
Я думаю, что вы ищете решение для загрузки сразу. Приведенные ниже примеры показаны с Grub v1; они должны быть легко переведены на конфигурацию в стиле Grub v2.
Вам нужно добавить базовую конфигурацию загрузки для вашего временного раздела. Ваш grub
Конфиг может выглядеть следующим образом. Вы бы активировали перезагрузку во временный раздел, выполнив grub-set-default 1
с последующим reboot
,
На Debian с Grub v1 конфигурацией загрузки является /boot/grub/menu.lst
и сохраненная загрузка по умолчанию записывается в /boot/grub/default
, grub-set-default
Команда изменяет значение в этом файле на загрузочную запись, которая будет автоматически загружаться при перезагрузке. При перезагрузке, grub
загружает эту запись, и savedefault 0
перезагружается /boot/grub/default
вернуться к обычной загрузочной записи для последующих загрузок.
С этим решением вам не нужно редактировать конфигурацию и сбрасывать ее каждый раз, когда вы хотите загрузить временный раздел. Однако для начала вам нужно иметь запись в конфигурации grub. Вы могли бы заставить его работать с загрузчиком цепей, если вы не знаете kernel
и / или initrd
линии впереди времени. (Я никогда не пытался использовать Grub для загрузки Grub по цепочке, поэтому я не знаю, насколько хорошо это будет работать.)
default saved
# boot entry 0
title Default boot
root hd(0,0)
kernel /boot/vmlinuz-2.6.xx UUID=xxxxxxx ro
savedefault
# boot entry 1
title Temp boot
root hd(0,1)
kernel /boot/vmlinuz UUID=yyyyyyyy ro
savedefault 0
# boot entry 2, chainloader version of boot entry 1
title Temp boot
root hd(0,1)
savedefault 0
makeactive
chainloader +1
Я не вижу, что в этом такого опасного или глупого
- Добавить строки для загрузки из временного раздела
- Сделать временный раздел по умолчанию
- перезагружать
- Когда вы закончите, удалите линии и установите обратно по умолчанию
Если что-то пойдет не так, вы всегда можете выбрать свою обычную ОС.
У меня есть вопрос, что вы планируете делать? Все, что вы делаете, может быть проще сделать в chroot или VM.
Характер загрузки означает, что единственные вещи, доступные во время загрузки, - это программа загрузки и ее конфигурация. Поэтому, если вы собираетесь что-то изменить, это должно быть где-то в загрузчике.
Приятной новостью является то, что изменение конфигурации (в grub, текстовый файл) является довольно безопасной операцией. Вы даже можете сохранить резервные копии для последующего использования. И сам grub может работать из командной строки, если вы попадаете в неприятную ситуацию.
Если вы хотите увидеть "опасный", это будут те опции или программы, которые переписывают таблицы разделов! У Grub была (или, может быть, есть) такая команда несколько лет назад, и я вытер ноутбук в первый раз, когда попробовал. (Я это исправил, но это заняло много времени).
Ключом к вашему проекту будет (во всяком случае, в grub) ключевое слово default, которое вы можете использовать, чтобы указать, с какого раздела вы хотите загрузиться. Я думаю, что перемещение этого ключевого слова изменит то, что вы загружаете. Вы также можете думать о загрузке с флешки как о "временном" загрузочном разделе.