Linux перестал работать на начальной загрузке странным способом

find выйдет успешно, если не было никаких ошибок, таким образом, Вы не можете рассчитывать на его статус выхода, чтобы знать, нашел ли он какой-либо файл. Но, поскольку Вы сказали, можно рассчитать, сколько файлов это нашло, и протестируйте то число.

Это было бы что-то вроде этого:

if [ $(find /var/log/crashes -name 'app-*.log' -mmin -5 | wc -l) -gt 0 ]; then
    ...
fi

test (иначе [) не проверяет коды ошибок команд, это имеет специальный синтаксис, чтобы сделать тесты и затем выходит с кодом ошибки 0, если тест был успешен, или 1 иначе. Это if тот, который проверяет код ошибки команды, которую Вы передаете ему, и выполняет ее тело на основе его.

Посмотрите man test (или help test, если Вы используете bash), и help if (так же).

В этом случае, wc -l произведет число. Мы используем testопция -gt протестировать, если то число больше, чем 0. Если это, test (или [) возвратится с кодом выхода 0. if интерпретирует тот код выхода как успех, и он выполнит код в своем теле.

0
16.12.2018, 13:48
1 ответ

Хорошо, я разрешил его. К счастью, все прекрасно, который был only проблема с загрузочным сектором. Отказ даже перед загрузкой ядра указал на меня к MBR, таким образом, я запустил систему со своего pendrive, сохраненного для таких случаев с портативной победой, Linux и несколькими инструментами, смонтировали мои диски (первое облегчение - файловая система была прекрасна), просто chrootредактор (посмотрите редактирование ниже) к моему регулярному корню и названный

lilo -v

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

Была та некоторая ошибка на моем SSD? Или некоторые космические лучи? Или возможно вирус? Я не знаю, если у кого-либо есть какая-либо идея, как воспроизвести ту ошибку, я счастливо попробую ее.

Править: Как @peterph записал, "это - Good Idea (TM) для привязки - монтируются /dev и /proc в соответствующие места в Вашем корневом разделе прежде chrooting в него" - благодарит заметить это.

1
28.01.2020, 02:53
  • 1
    Возможно, была побочная ошибка (даже ошибка чтения в BIOS) - я видел такую вещь несколько раз, и у меня нет лучшего объяснения его. Для потомства Вы могли бы хотеть добавить к своему ответу, что это - Good Idea (TM) для привязки - монтируются /dev и /proc в соответствующие места в Вашем корневом разделе прежде chrooting в него. –  peterph 05.09.2013, 01:15

Теги

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