Как выполнить fsck на запуске после катастрофического отказа без пароля root?

В целом Вы не размещаете с поставщиком только для скорости. Компания как Rackspace с выделенными серверами (я знаю, что они не делают большого количества соразмещения, таким образом, я предполагаю использование специализированного предложения) дает Вам:

  • 24/7, контролирующие, в зависимости от уровня предложения Вас, покупают
  • SLAs в течение времени работы, и т.д.
  • Аппаратные средства единой ставки (т.е. Вы платите ежемесячное независимо от необходимости замен, и т.д.),
  • Мощная существующая инфраструктура (подсистемы балансировки нагрузки, брандмауэры, и т.д.)
  • Несколько поставщиков магистрали Интернета (в случае самого большого центра обработки данных Rackspace, я верю этому, семь),
  • Минимальное резервное питание N+1 и системы охлаждения
  • Физическая безопасность
  • Опытная доступность поддержки
  • и т.д., и т.д.

Вы не размещаете с поставщиком как Rackspace в целях скорости необработанного соединения. Это похоже на выяснение, сколько RPMs необходимо было бы совершить нападки в Тойоте для соответствия Феррари. Это - конечно, метрика, но это бессмысленно без контекста.

Теперь, Вы можете предоставлять некоторым или всем вышеупомянутым сами (и существует много неупомянутых факторов), но реальный вопрос при рассмотрении самохостинга, соразмещения, выделил удаленные серверы, "облачный" хостинг, и т.д., является надежностью, производительностью и эффективностью на себестоимость единицы продукции, и что такое допустимый уровень каждого. Нет никаких легких ответов.

В конечном счете, тем не менее, для ответа на вопрос на чистой основе скорости Вы по крайней мере испытываете необходимость в выделенной линии а-ля T1 или некоторое другое симметричное соединение. Ваше типичное домашнее соединение и действительно много "бизнес-" сцеплений, просто не имеют исходящей способности, особенно не надежным, непульсирующим способом.

2
задан 8 July 2011 в 17:53
6 ответов

Что, вероятно, ближе всего к "официальному" способу сделать это обычно не рекомендуется (по уважительной причине!):

echo ' -y ' > /fsckoptions
chattr +i /fsckoptions

Все версии /etc/rc.d/rc.sysinit Я проверил, чтобы добавить содержимое /fsckoptions в переменную $fsckoptions перед запуском fsck. chattr +i убеждается, что ничто не меняет его автоматически.

.
1
ответ дан 3 December 2019 в 11:03

Один наоборот проблема: в GRUB/LILO добавить init=/bin/bash в конец командной строки. Это позволит Вам обходить подсказку sulogin, которую Вы получаете для fsck.

0
ответ дан 3 December 2019 в 11:03

Я не уверен, как обойти пароль для этого. Если Вы не волнуетесь по поводу целостности файловой системы, можно обойти fsck полностью путем добавления fastboot к Вашей строке ядра в Вашем grub.conf.

0
ответ дан 3 December 2019 в 11:03

Пользователи не хранят ценных данных на своих рабочих станциях, так есть ли способ настроить этот fsck для автоматической работы ошибок без какого-либо пароля?

Этим все управляют /etc/rc.d/rc.sysinit, который является просто сценарием оболочки. Вы могли изменить это для удовлетворения потребностям (хотя необходимо будет быть осторожными, что изменения не потеряны в случае обновления пакета). Ищите места, где сценарий звонит sulogin.

Рассматривая этот сценарий, похоже, необходимо ли было удалить следующую строку:

touch /.autofsck &> /dev/null

Система больше не выполняла бы fsck на следующей начальной загрузке. Если Вы используете ext3 (или ext4), Вы обычно не должны будете выполнять fsck.

0
ответ дан 3 December 2019 в 11:03

Всеми этими проверками перед полетом управляет первоначальное изображение электронного диска (initrd опция в grub.conf) созданный операционной системой, которая делает быстрый тест для ошибок в файловой системе и спадает до однопользовательского режима, если ошибки обнаруживаются. Ваша поездка для изменения этого поведения для выполнения fsck -y без пароля начинается путем распаковки изображения initrd, включенного в об/мин ядра. К сожалению, необходимо было бы, вероятно, сделать это после каждого системного обновления (поскольку Redhat поставляет новый initrd с каждым ядром (или более конкретно генерирует новое с помощью mkinitcpio на основе аппаратных средств)).

У нас есть та же проблема в нашей среде, спасибо за эту идею. Если я заставляю время изучать это, или решить его я, несомненно, обновлю это сообщение.

1
ответ дан 3 December 2019 в 11:03

... Я думаю, что нашел. В /etc/rc.d/rc.sysinit есть несколько строк, которые выглядят так:

if ! [[ " $fsckoptions" =~ " -y" ]]; then
        fsckoptions="-a $fsckoptions"
fi
  • которые, если я правильно их читаю, добавляют -a к параметрам fsck, если в $ fsckoptions из ранее (файл, который может не существовать). Я немного обновил его:
if ! [[ " $fsckoptions" =~ " -y" ]]; then
        if ! [[ " $fsckoptions" =~ " -a" ]]; then
                if ! [[ " $fsckoptions" =~ " -p" ]]; then
                        fsckoptions="-y $fsckoptions"
                fi
        fi
fi
  • , который основан на командной строке e2fsck: если он не включает -y, -a или -p, он добавляет -y.

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

1
ответ дан 3 December 2019 в 11:03

Теги

Похожие вопросы