Выбор перезагрузки раздела командной строки

Я хочу запланировать перезагрузку во временный раздел из командной строки на 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, которое вы можете использовать, чтобы указать, с какого раздела вы хотите загрузиться. Я думаю, что перемещение этого ключевого слова изменит то, что вы загружаете. Вы также можете думать о загрузке с флешки как о "временном" загрузочном разделе.

Другие вопросы по тегам