>
>>дык я все объяснил:
>>
>>1. Про adXa,c,...,h - dangerous dedicated (если не понятно -> handbook)
>>2. Чтобы ЧТО-ТО делать с дисками, нужно
>>
>>- обдумать КАК не НАЛОМАТЬ ДРОВ (вероятно сделать КОПИЮ диска dd образ:
>>
>>
>># dd if=диск of=[другой диск или образ на другой диск] conv=noerror,sync
>>(conv=noerror,sync - использовать если на диске есть плохие блоки)
>>
>>- четко определить с КАКОЙ UFS мы имеем дело: UFS1 или UFS2
>>
>>
>>- теперь можно приступать к "аварийным" работам
>>
>>ps. так как верхнее мне неизвестно, то и совет не могу дать,
>>для UFS1 он один, для
>>UFS2 другой (для UFS2 я собственно расписал подход)
>1. У меня стоит freebsd5.4 c ufs2(ставилось по умолчанию) Востонавливаю диск Freebsd3.2
>c ufs1 (1999 до 2003 был ufs2 небыло)
>2. dd if=диск of= сделал
>3. Вот что я нашёл по dangerous dedicated (http://www.ru.freebsd.org/doc/ru_RU.KOI8-R/books/faq/disks.html)Саветуешь заново разбить диск?
>нет, не советую, зачем? Первое правило опытного системщика - "работет? работает. ну тады
не трожь!"
>Если не трудно поделись опытом (теперь можно приступать к "аварийным" работам ).
>
не трудно, можно найти поиском по форуму здесь и http://forum.sysadmins.ru/ (там два
форума по unix)
диск с системой 3.2-release - вот это уже информация.
Допустим копия диска сделана, по идее дальше лучше работать с копией и использовать
testdisk из портов.
Что я бы сделал, на той машине где freebsd3.2 - попробовал бы загрузиться в
single-user mode (boot -s) и попробовал бы там посмотреть /etc/fstab - это если
удалось загрузиться.
Если удалось загрузиться и посмотреть fstab - записать его.
Опять же если удалось загрузиться в single, то прям там попробовать fsck -y на устройства
из /etc/fstab. Если все OK, FS - прочистились, если нет и ругается на Суперблок -
дело плохо. Но в принципе поправимо при условии что ПЕРВЫЙ альтернативный суперблок
ЦЕЛ (не убит и не потерян)
Суть в том что fsck с опцией -b в releases 2.x/3.x/4.x - берет информацию из указанного
альтернативного суперблока и чекает FS и приводит ее в порядок, НО НЕ восстанавливает
ОСНОВНОЙ суперблок как в 5.3/4 и в 6.0!!!
Соответственно скопировать альтернативный суперблок на место ОСНОВНОГО можно либо:
1. прямым копированием dd
2. либо использовать fsck от 6.x (вот это я как-то не пробовал)
1. прямое копирование ПЕРВОГО альтернативного суперблока UFS1 (-b 32) dd:
# dd if=/dev/adXsYc skip=32 of=/dev/adXsYc seek=16 bs=512 count=16
где X=номер диска, Y=номер слайса, в случае dangerous-dedicate - слайсов понятное
дело не будет, пример:
# dd if=/dev/ad2s1c skip=32 of=/dev/ad2s1c seek=16 bs=512 count=16
комментарий, adXs1c - "с" партиция описывает ВЕСЬ диск (это когда в single-user mode
не удалось загрузиться), для dang-ded:
# dd if=/dev/ad0c skip=32 of=/dev/ad0c seek=16 bs=512 count=16
первый пример, ad2s1c - диск ad2, ad2s1 - первый слайс, ad2s1c - партиция "c", которая
не используется системой, но как описывалось выше, если в singe-user mode ничего сделать
нельзя, то можно воспользоваться этой партицией.
Но если в single-user mode удалось загрузиться, и удалось смонтировать adXsYa или
adXa и прочитать fstab то для каждой FS в dd лучше использовать устройство(партицию)
из fstab.
2. Подключаем диск к 6.0 например и сперва пробуем fdsik'ом посмотреть ПРОБЛЕМНЫЙ диск,
если на нем есть слайс/ы freebsd - очень хорошо, если нет - поможет testdisk, хотя как
я уже говорил, лучше testdisk прогонять на созданном образе и после того как
с его помощью восстановили ТАБЛИЦУ ПАРТИЦИЙ (про это я не писал выше, подразумевал
что она ЖИВА), после чего можно посмотреть снова fdisk и убедиться что таблица
восстановлена и есть слайс/ы freebsd.
Если с fdisk'ом разобрались, дальше смотреть disklabel и убедиться что ПАРТИЦИИ
freebsd живы, после чего можно воспользоваться fsck от 6.x с опцией -b
Для UFS1 это будет:
# fsck -b 32 /dev/лала
Вот таким макаром, изложено сразу в вариациях-комбинациях и подход, реально это
НЕ ЕСТЬ ЖЕСТКИЙ АЛГОРИТМ, только подход и в какой последовательности действовать
Чтобы никто не путался: ВЕРХНЕЕ ОТНОСИТСЯ СТРОГО к UFS1 и ни в коем случае НЕПРИЕМЛЕМО
для UFS2, в плане расположения ПЕРВОГО альтернативного блока UFS1 - 32.
Для UFS2 он 160.
Хуже если первый альтернативный блок тоже битый, нужно искать следующий, в случае если
newfs выполнялась со СТАНДАРТНЫМИ значениями, можно воспользоваться newfs -N чтобы
посмотреть список ВСЕХ альтернативных суперблоков. Если newfs были указаны СВОИ
параметры blocksize, изменен процент резервирования и они забыты - дело дрянь.