Один раз загрузить только для чтения? - PullRequest
4 голосов
/ 03 ноября 2011

Я пытаюсь загрузиться в режиме только для чтения, чтобы протестировать некоторое программное обеспечение. Я не хочу переустанавливать диск после загрузки, поскольку он не соответствует требованиям для тестирования программного обеспечения, которое проверяет файловую систему при загрузке.

Есть ли способ сделать это без редактирования grub.conf? Желательно что-то добавить через пользовательский интерфейс grub при прерывании загрузки?

Если я отредактирую grub.conf для загрузки только для чтения, как мне отредактировать его обратно?


Я понимаю, что ядро ​​монтирует root как RO, но позже оно перемонтируется как RW в процессе загрузки.

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Когда grub работает, у вас обычно есть некоторая возможность редактировать командную строку ядра до того, как grub загрузит ядро ​​и продолжит загрузку.Возможно, в вашем дистрибутиве скрыт интерфейс grub при загрузке - удерживая нажатой левую shift , можно вызвать его и позволить вам редактировать командную строку ядра.

Ядро Linux Documentation/kernel-parameters.txt документирует параметр команды ядра ro для монтирования корневой файловой системы только для чтения.Если вы добавите init=/bin/sh, то вы будете отвечать за монтирование любых файловых систем, которые вы хотите.Возможно, вам понадобится смонтировать /proc, прежде чем mount(8) покажет какие-либо смонтированные файловые системы: mount -t proc none /proc.

Просто убедитесь, что для mount(8) выбрана опция -o ro или -o rw *1022*.файловая система по вашему желанию.

Но я должен думать, что есть лучшие способы тестирования программного обеспечения.Что вы действительно пытаетесь сделать?

1 голос
/ 16 сентября 2014

Это также можно сделать, добавив

GRUB_DEFAULT=saved

в ваш файл grub.cfg.Затем вы можете создать 2 разные записи GRUB для загрузчика (например, «RedHat» и «RedHat RO». Установите запись по умолчанию, как это, в вашем терминале

grub-set-default "RedHat"

Чтобы запустить другую запись grub только дляследующая проблема перезагрузки в вашем терминале

grub-reboot "RedHat RO"

Это работает по сути, добавляя флаг в конфигурацию grub (grubenv) и удаляя его после перезагрузки. Таким образом, ваш / boot / раздел должен быть доступен для записи.При необходимости можно перемонтировать загрузочный раздел с возможностью записи. В любом случае вам нужен каталог / boot / на отдельном разделе.

Другой альтернативой может быть установка загрузочного раздела на USB-накопитель и загрузка «RedHat RO»."оттуда каждый раз, когда вам это нужно.

В противном случае: как уже сказал sarnold: изменения, которые вы делаете в командной строке GRUB или редактировании GRUB, являются только временными.

...