Как я убитый label на SPARC'е восстанавливал.

 

 

 

Началось все с того, что надо было сменить забытый рутовый пароль на Sun Ultra5.
Другого сана в окресностях нету - подцепили к машине с Линуксом.
К сожалению оказалось, что в последней версии ядра Linux'а поддрежка файловой системы UFS - read only.
Поняв что фокус не удался, винчестер поставили на место.
На диск ничего не записывалось (по крайней мере явно) и изменения данных не производилось.

После этого при загрузке Solaris выдавалось сообщение:
"Corrupt label - label checksum failed".

И дальше, естественно, ничего не происходило.

 

На всякий пожарный сделали копию винчестера с помощью dd.

 

Скачали диск с OpenSolaris, загрузились с него в single mode (для этого при загрузке следует набрать “boot cdroms”, или прочитать документацию).

Посмотрел с помощью программы format текущую таблицу разделов – ничего даже похожего на правду там не было – разделы перекрывались, размеры их были от фонаря заданы и т.д.

Восстановление из backup label так же ничего не дало – тоже бред.

Так что содержимое документа http://docs.sun.com/app/docs/doc/817...kisoq2a?a=view не помогло.

А работоспособность системы восстановить надо. Так, чтобы все работало как и раньше.

 

Т.к. все окрестные сантехники были  в далеком отпуске, до всего пришлось доходить самому.

 

После некоторого времени мучений и поисков в Интернете было выяснено, что у SAPARCов то, что в IBM PC называется partition table - отсутствует. Зато есть VTOC (Volume Table Of Contens). И по структуре это очень сильно отличается.

 

И поэтому программ, которые могут с этим работать катастрофически мало.

 

Прицепил к машине с Windows. Активировал диск. (Потом уже я подумал, что последнего делать не следовало).

Перепробовав некоторое количество разных средств, была найдена программа.

TestDisk (http://www.cgsecurity.org/wiki/TestDisk).
Он мне обнаружил одну партицию Sun root, занимающую весь диск, кроме первых 768'и цилиндров. (Из 14533) .

Только вот беда - функции записи полученной информации на винт для сана там еще не реализовано.

 

Тут выяснилась еще одна пакость: Windows подумал, и решил что та геометрия винчестера, которая была на Сане ему не подходит, и «немножко» ее поправил. Для восстановления информации TestDiskом геометрия критически важна. Так что если вам, не дай бог понадобиться – смотрите геометрию на сане с помощью format, и задавайте ее в TestDisk’е ручками.

После указания правильной геометрии TestDisk быстренько показал мне тот же бред что и format на сане. Но нажав волшебную кнопочку Search я увидел следующее:

 

TestDisk 6.4, Data Recovery Utility, June 2006

Christophe GRENIER <grenier@cgsecurity.org>

http://www.cgsecurity.org

 

Disk /dev/sdc - 120 GB / 111 GiB - CHS 57459 16 255

     Partition               Start        End    Size in sectors

P SunOS root            1029   0  1  1092  15 255     261120 [/]

P SunOS var             1094   0  1  1608  15 255    2101200 [/var]

P SunOS root            1609   0  1  2123  15 255    2101200 [/opt]

P SunOS usr             2124   0  1  3023  15 255    3672000 [/usr]

P SunOS root            3024   0  1 57458  15 255  222094800 [/export/ba_h0]

 

 

Structure: Ok.  Use Up/Down Arrow keys to select partition.

Use Left/Right Arrow keys to CHANGE partition characteristics:

                P=Primary  D=Deleted

Keys A: add partition, L: load backup, T: change type,

     Enter: to continue

 

Перецепил диск на ультру, с помощью формата поправил геометрию, и создал партиции, ручками задав найденные параметры. Партиции пронумеровал последовательно от 0 до 4-х, сверху вниз. Flag всем партициям задал “wm”.

После этого попытался загрузиться с винта. Естественно не получилось – swap все-таки нужен.

Гружусь с компакта в single mode, все созданные разделы видны и монтируются. Натравил на них по очереди fsck. Тот поругался-поругался и ошибки поисправлял.

Нашел файл /etc/vfstab, посмотрел чего там и куда монтируется (включая swap). При этом в файле /etc/mnttab не указано, каким слайсом (разделом) по номеру должен быть swap.

Номера разделов (по солярисовски – слайсов (slice)) там задаются в формате cXtYdZsN, где N – это номер слайса, как он отображается программой format. Остальное номера контроллеров, дисков и т.д.

Так вот, изучив содержимое vfstab, я понял, что параметры разделов заданны верно, но идти они должны в другом порядке: 0,3,4,6,7. А swap должен быть 1-м. Ну и куда бы его воткнуть? Подумал что можно в первую тысячу цилиндров. Все равно она свободна. Для swap’а задал tag=”swapflag=”wu.

 

Снова пересоздав партиции, записал новый label на диск и загрузился с него.

И все заработало! УРА!!!!!!!!!!!!!!!!!

Hosted by uCoz