понедельник, 30 июня 2008 г.

Моя последняя лажа. )

Решил написать о своей недавней "лаже", не принесшей никаких неприятностей, кроме бессонной ночи.

Итак, все началось с идеи оптимизировать свой /, избавившись от фрагментации файлов. В случае ext3, да и вообще linux - единственный эффективный способ - забекапить все файлы, создать ФС заново и восстановить файлы на старое место.
А для проверки фрагментации можно использовать команду e2fsck. Общеизвестно, что запускать эту команду на смонтированной фс не стоит. Но, зная это, я все равно запустил. ) Спохватившись после слов "recovering journal", я ткнул Ctrl-C (может быть, это добавило некоторое удовольствие мне в последствии, кто знает). Это было моей первой ошибкой. )
В общем, решив продолжить дело, я взял рядом лежащий диск с Ubuntu, загрузился и сделал fsck еще раз, исправляя ошибки. Фрагментация оказалась на уровне 2.2%, что не так много-то в общем...
После чего, воспользовавшись tar, я полностью сбекапил / в tar.gz, сделал mke2fs -J /dev/hda1 и полез распаковывать tar.gz со старой корневой системой. И вот как-то незаладилось. Архив был объемом порядка 2ГБ, а распаковывалось (и без сообщений об ошибках!) всего около 380 мегабайт. Долгая ругань с товарищами с #linux кончилась тем, что я запустил cpio с очень подробными опциями, и оказалось что все заканчивается на забитых нулями блоках. Я все-таки смог пропустить их, используя dd, и скармливая поток через пайп тому же cpio. Теперь, вроде-бы, распаковалось все и я даже смог загрузиться.
В чем же была моя вторая ошибка? Да элементарная - я не проверил созданную копию. )
Ну далее дело оказалось не очень хитрым - загрузился в новую систему, заметил, что часть библиотек и бинарников, в общем-то, отсутствует, и повреждена. Помог debsums - он показал, как и то чего нет, так и то что повредилось. aptitude reinstall восстановил все поврежденные файлы и система стала рабочей. Я же запомнил эти уроки, надеюсь, на всю жизнь.

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

Отправить комментарий