bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
PyChess & this list |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
NatrioСпасибо! Действительно пришлось поразбираться. Однако сейчас, посмотрев по-подробнее, что же там восстановилось, обнаружил, что, к сожалению, далеко не всё. Видимо inode'ы потёр :( NatrioНет, сектор винчестера равен 512 байт (жесткий диск Seagate ST31000528AS). Я вроде и не писал, что он 4Кб. Но вот блок файловой системы как раз равен 4Кб. NatrioСпасибо, учтём! |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
Ну что же, пора рассказать общественности, чего удалось добиться. 1. backup Сделал резервную копию всего содержимого винта с помощью dd if=/dev/sdc of=first.665600M.img bs=1M count=665600 dd if=/dev/sdc of=second.img bs=1M skip=665600 К счастью они так и не понадобились. Хочу заметить, что для того, чтобы сделать полную копию диска требуется 1 Тб/30 Мб/с ~ 9 часов. Столько же нужно чтобы осуществить поиск всех резервных суперблоков. 2. Теория Файловая система XFS состоит из определённого количества равных (по размеру) линейных областей (Allocation Groups, AG). В первом секторе каждой области содержится резервная копия суперблока. В том числе там есть информация о размере блока файловой системы и количестве блоков в линейной области. Таким образом, чтобы правильно найти начало файловой системы надо найти резервный суперблок и посчитать. Как я уже говорил, xfs_repair находит резервные суперблоки, но к сожалению он не показывает их смещение. Можно было бы просто пропатчить xfs_repair (что я в конце концов и сделал, когда знал где находятся резервные суперблоки, чтобы не ждать, когда-же он их найдёт), чтобы он выводил их смещения, но почему-то я пошёл другим путём. Умная мысля приходит опосля… 4. Поиск резервных суперблоков Я написал свою программку для поиска резервный суперблоков, которая базируется на коде xfs_repair. Её в отличие от xfs_repair можно запустить для поиска не с начала винта. В результате получил $ ./xfs_find2 /dev/sdc ... 249585324818 Bad! 250050592256 Good! <== x[1] 260209783852 Bad! ... 500101152256 Good! <== x[2] 500122680408 Bad! 500122681432 Bad! ... 750151712256 Good! <== x[3] 752991753762 Bad! ... 4. Начало раздела Как мы видим, резервные суперблоки (которые находятся в первых секторах AG) разнесены на одинаковое расстояние х - x = x - x = 250050560000 байт. Отсюда сразу получаем, что x = x - 250050560000 = 32256 байт = 63 сектора по 512 байт. Это можно было бы получить и по данным только из первого резервного суперблока. 5. Разметка диска Дальше меня постигло удивление, т.к. fdisk сказал, что не может сделать начало раздела ближе ближе чем за 2048 секторов к началу диска. Зачем он так?! Но потом я попробовал GNOMEовскую утилиту palimpsest (которой я видимо и размечал диск при создании файловой системы давным давно). Она как раз и создала мне раздел с началом на 63 секторе. ---Starting---- ----Ending----- Start Number of # Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors -- ----- ---- ---- ----- ---- ---- ---- ----- ----------- ----------- 1 0x00 1 1 0 0x83 254 63 121600 63 1953520002 2 0x00 0 0 0 0x00 0 0 0 0 0 3 0x00 0 0 0 0x00 0 0 0 0 0 4 0x00 0 0 0 0x00 0 0 0 0 0 6. xfs_repair Дальше дело техники… только вот inode директорий померли :'( $ ls /media/xstorage/lost+found/ 1101323398 1216930076 1274854120 1274952689 1423960091 2148008074 2162589437 2271242199 2313526542 3266918421 3471642994 3485086100 3485086107 1101323406 1272669718 1274854129 1274952805 1525581380 2148008086 2210583206 2271242205 2313526550 3367416112 3471642995 3485086101 3485086108 1101323438 1274854099 1274854134 1274952808 1525581385 2148008088 2260331123 2271249026 2318579471 3367457749 3485086009 3485086102 3485086109 1101323441 1274854105 1274854220 1274952825 1525581429 2148008103 2271222561 2271249429 2569989242 3367458891 3485086093 3485086103 3485086110 1101323444 1274854109 1274941202 1289743602 1525581431 2162589248 2271222571 2271249447 2569989244 3471639947 3485086095 3485086104 3485086111 1101323452 1274854113 1274949988 1293517685 1525581434 2162589407 2271222596 2271249454 2569989250 3471642985 3485086098 3485086105 3524920346 1198910646 1274854117 1274952672 1423960084 2148008064 2162589428 2271222597 2298165469 3221225606 3471642993 3485086099 3485086106 3653777712 7. Что осталось сделать
|
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
Резервные суперблоки xfs_repair находит. Главное правильно найти начало раздела… |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
Здравствуйте! Есть винт на 1 Тб с одним XFS разделом (файловая помойка). Случайно была выполнена операция аналогичная следующей: dd if=/dev/zero of=/dev/sdb bs=512 count=128 Вопрос: как восстановить файловую систему? Пробовал прогонять TestDisk. Разделов он не находит. Безопасно ли запускать xfs_repair /dev/sdc? Всё-таки смещения относительно начала устройства будут другими… |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
Хм… Ну единственное, что мне приходит в голову - это посмотреть в каких файлах используется XSLoader.grep -Rl "require XSLoader" /usr/{lib,share}/perl5/{site,vendor}_perl/* $ corelist Data::Dumper Data::Dumper was first released with perl 5.005 |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
При обновлении перла нужно перекомпилить все пакеты с XS. Насколько я помню, Data::Dumper вообще в core, его отдельно устанавливать не надо. (Под рукой нет, могу ошибаться.) А что ты их из репозиториев/AUR не ставишь? Меньше проблем бы было. См. также |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
bobart:D Они, вообще-то, никогда (на моей памяти) не глючили. |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
wlad_oКакая версия evince? Стоит одновременно gtk2 и gtk3. evince работает. Последние версии требуют только gtk3. wlad_oОт ядра это вообще зависеть не может. wlad_oОбновить систему. Только осторожно, если стоит Gnome 2, то он обновиться до Gnome 3 (это может быть не безобидно). |
bunder |
|
Темы:
4
Сообщения:
20
Участник с: 22 июля 2009
|
У кого-нибудь Nautilus показывает эбмлемы? Такое впечатление, что возможность уставанлавать эмблемы и коментарии попросту выпилили (возможно временно). Не смог найти никакой информации или сообшений об ошибках на эту тему. Кто-нибудь что-нибудь знает по этому вопросу? |