2012-09-27

Живучая Ubuntu


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

Краткий экскурс в дебри dmesg показал что это произошло из-за сбоя при записи в журнал ext4 - который в свою очередь произошёл из-за аппаратной ошибки SSD:
Add. Sense: Unrecovered read error - auto reallocate failed

Особо работать не мешало - браузер жив, терминалы в виндовые системы работают..
Ну файлы скачивать нельзя (хром как-то неоднозначно воспринимал доступный только для чтения дисковый кеш - и даже в /dev/shm писать не захотел) - слегка обидно, но опять же - терминалы с виндовым хромом живы, ssh в линуксовые системы не мешают использовать wget :)

При перезагрузке - система попросила проверить диск на наличие ошибок..
Сначала отказался - как ни странно, система успешно загрузилась и без проверки :)
Но через некоторое время опять перевела файловую систему на readonly.

Очередное утреннее включение - и выбор пункта на исправление найденных ошибок позволили теперь работать без перехода в аварийный режим :) Загрузка идёт типичные секунд 10-20. Особых проблем в работе не наблюдается. Хром летает, терминалы открываются :)
Система не зависла, не ушла на перезагрузку ("синьку") ни разу - большая часть нужного продолжает работать.

Но система таки разваливается по-частям: сначала отказал libreoffice - вылетает с коредампом, отвалились репки dpkg - apt-get вылетает с libc error..
Хром иногда теряет конфиги - но быстренько вытаскивает их из облачных недр Гугля, после ввода пароля. Вчера ещё работал чат на empaty - а сегодня уже в коредамп уходит. Его мне немного нехватает :)

Важного на ssd ничего нет (данные хранятся на винте + бекап системы опять же) - и до конца гарантии на него ещё времени полно - и переезжать особо желания нет - всего около 100 "bad sectors" на 128 гигабайт - по "статистике" dd if=/dev/sdb - будем наблюдать дальше.

Попутно пришло понимание необходимости конструкций в daemontools вида:
exec &> /dev/null
command

Если в скрипте была бы команда:
command &> logfile
то при попытке выполнить её в ro системе (то есть запись в logfile невозможна по какой-то причине - контроль доступа ли, переполнение диска, или как у меня из-за ro-диска), ничего не будет выполнено.

А если сделать как в dt - всё будет работать как и планировалось, и лишь в аварийной ситуации логи пойдут на консоль а не в файл :)

Комментариев нет: