Страница 1 из 1

Восстановление UFS раздела

Добавлено: 2011-01-11 11:24:12
AngelZP
Добрый день.

Есть Freebsd 8.0. Хардварный рейд 1. Машину аккуратно выключили. После включения - не виден раздел с файлопомойкой md0s1d... md0 - поскольку работаю с образом... Поиском по разделу - данные вижу. fsck - ругнулся на суперблок - нашел нормальный - подсунул. После чека системы получил пустой раздел. fsck сильно ругался на softupdates. Есть порядка 100-150 блоков, которые scan_ffs выдала как правильные.

Нужно понять - как правильно подойти к процессу восстановления раздела.

Код: Выделить всё

 fdisk /dev/md0   
******* Working on device /dev/md0 *******
parameters extracted from in-core disklabel are:
cylinders=17750 heads=255 sectors/track=63 (16065 blks/cyl)                                                                                                                                                                       
                                                                                                                                                                                                                                  
Figures below won't work with BIOS for partitions not in cyl 1                                                                                                                                                                    
parameters to be used for BIOS calculations are:                                                                                                                                                                                  
cylinders=17750 heads=255 sectors/track=63 (16065 blks/cyl)                                                                                                                                                                       
                                                                                                                                                                                                                                  
Media sector size is 512                                                                                                                                                                                                          
Warning: BIOS sector numbering starts with sector 1                                                                                                                                                                               
Information from DOS bootblock is:                                                                                                                                                                                                
The data for partition 1 is:                                                                                                                                                                                                      
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)                                                                                                                                                                                          
    start 63, size 285153687 (139235 Meg), flag 80 (active)                                                                                                                                                                       
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

Код: Выделить всё

disklabel /dev/md0s1
# /dev/md0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a: 41943040        0    4.2BSD        0     0     0 
  b:  2097152 41943040      swap                    
  c: 285153687        0    unused        0     0         # "raw" part, don't edit
  d: 241113495 44040192    4.2BSD        0     0     0 

Код: Выделить всё

newfs -N /dev/md0s1d
/dev/md0s1d: 117731.2MB (241113492 sectors) block size 16384, fragment size 2048
        using 641 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208, 3386464, 3762720, 4138976, 4515232, 4891488, 5267744, 5644000, 6020256, 6396512, 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304,
[...SKIP...]
 235912672, 236288928, 236665184, 237041440, 237417696, 237793952, 238170208, 238546464, 238922720, 239298976, 239675232, 240051488, 240427744, 240804000

Код: Выделить всё

scan_ffs -v /dev/md0s1d
block 14674144 id 4d001a58,aef69bdf size 28311552
block 35368224 id 4d001a58,aef69bdf size 28311552
block 56062304 id 4d001a58,aef69bdf size 28311552
block 62082400 id 4d001a58,aef69bdf size 28311552
block 76756384 id 4d001a58,aef69bdf size 28311552
block 112124448 id 4d001a58,aef69bdf size 28311552
block 113246336 id 4cce1214,41a3875b size 31966821
block 113246368 id 4cce1214,41a3875b size 31966821
ufs2 at 113246208 size 31966821 mount /home/Transfer time Mon Nov  1 03:04:20 2010

block 113258240 id f0fe20d7,ffffff00 size 31966821
block 113622624 id 4cce1214,41a3875b size 31966821
block 113998880 id 4cce1214,41a3875b size 31966821
block 114375136 id 4cce1214,41a3875b size 31966821
block 114751392 id 4cce1214,41a3875b size 31966821
[...SKIP...]
block 240420896 id 4cce1214,41a3875b size 31966821
block 240797152 id 4cce1214,41a3875b size 31966821
scan_ffs: read: Input/output error
Смущает, что scan_ffs - вываливается с ошибкой чтения - такое ощущение, что таблица раздела уехала за физические границы диска.

Отключил внесение изменений для примера ругательств

Код: Выделить всё

fsck_ffs -n -b 113246368 /dev/da0s1d
Alternate super block location: 113246368
** /dev/da0s1d (NO WRITE)
** Last Mounted on 
** Phase 1 - Check Blocks and Sizes
CYLINDER GROUP 0: BAD MAGIC NUMBER
UNEXPECTED SOFT UPDATE INCONSISTENCY

REBUILD CYLINDER GROUP? no

YOU WILL NEED TO RERUN FSCK.
UNKNOWN FILE TYPE I=2
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=3
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=4
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=5
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=6
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=7
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=8
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

PARTIALLY ALLOCATED INODE I=9
UNEXPECTED SOFT UPDATE INCONSISTENCY

CLEAR? no

UNKNOWN FILE TYPE I=10
:

Re: Восстановление UFS раздела

Добавлено: 2011-01-11 11:55:46
manefesto
посоветовать ничего не могу, но точно известно, что админы деляться на тех кто делает бэкапы, и на тех кто еще не делает их

Re: Восстановление UFS раздела

Добавлено: 2011-01-11 12:07:28
AngelZP
Таки граница раздела уехала... Поправил размер слайса - поправил размер раздела.... Ищем дальше...

Re: Восстановление UFS раздела

Добавлено: 2011-01-11 12:08:24
AngelZP
manefesto писал(а):посоветовать ничего не могу, но точно известно, что админы деляться на тех кто делает бэкапы, и на тех кто еще не делает их
Бекап то есть.. Но успели внести критичные изменения - приходится восстанавливать...

Re: Восстановление UFS раздела

Добавлено: 2011-01-11 12:59:15
AngelZP
Судя по выводу ffs2recov - там вообще 2-а раздела...

Код: Выделить всё

ffs2recov -s /dev/md0s1d
superblock: 7513161728(byte), 14674144(block), cg: 7513178112(byte), 14674176(block), 39(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 18108530688(byte), 35368224(block), cg: 18108547072(byte), 35368256(block), 94(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 28703899648(byte), 56062304(block), cg: 28703916032(byte), 56062336(block), 149(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 31786188800(byte), 62082400(block), cg: 31786205184(byte), 62082432(block), 165(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 39299268608(byte), 76756384(block), cg: 39299284992(byte), 76756416(block), 204(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 57407717376(byte), 112124448(block), cg: 57407733760(byte), 112124480(block), 298(nth), fs begin: 0(block), primary sb at: 128(block)
superblock: 57982124032(byte), 113246336(block)
superblock: 57982140416(byte), 113246368(block), cg: 57982156800(byte), 113246400(block), 0(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 57988218880(byte), 113258240(block)
superblock: 58174783488(byte), 113622624(block), cg: 58174799872(byte), 113622656(block), 1(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 58367426560(byte), 113998880(block), cg: 58367442944(byte), 113998912(block), 2(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 58560069632(byte), 114375136(block), cg: 58560086016(byte), 114375168(block), 3(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 58752712704(byte), 114751392(block), cg: 58752729088(byte), 114751424(block), 4(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 58945355776(byte), 115127648(block), cg: 58945372160(byte), 115127680(block), 5(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 59137998848(byte), 115503904(block), cg: 59138015232(byte), 115503936(block), 6(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 59330641920(byte), 115880160(block), cg: 59330658304(byte), 115880192(block), 7(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 59523284992(byte), 116256416(block), cg: 59523301376(byte), 116256448(block), 8(nth), fs begin: 113246208(block), primary sb at: 113246336(block)
superblock: 59715928064(byte), 116632672(block), cg: 59715944448(byte), 116632704(block), 9(nth), fs begin: 113246208(block), primary sb at: 113246336(block)

Re: Восстановление UFS раздела

Добавлено: 2011-01-12 14:16:49
AngelZP
Таки 2-а раздела... Причем один шифрованный... Расчитал правильные размеры разделов - один восстановить удалось. Сейчас разбираемся с шифрованным...

По результатам.. ffs2recov и scan_ffs дают очень неплохие результаты. Позволяют определить где и что на диске лежало... Определить суперблоки и по ним уже восстанавливать таблицу разделов.

Абсолютно непонятна причина возникновения этой ситуации - машина была выключена корректно. Диски целые...

Re: Восстановление UFS раздела

Добавлено: 2011-01-12 15:50:19
AngelZP
Есть раздел - зашифрованный geli. Метаданные на месте. Есть какая-нибудь возможность проверить раздел на правильность без расшифровки? На сколько я понимаю geli там делает типа своей фс - в которой уже хранится зашифрованный раздел. Как эту фс проверить на целостность?

Re: Восстановление UFS раздела

Добавлено: 2011-01-12 23:34:01
Alex Keda
никак

Re: Восстановление UFS раздела

Добавлено: 2011-01-13 13:24:44
AngelZP
Кто-нибудь знает как geli определяет правильный ключ или нет? По метаданным? Или расшифровкой чего-либо?

Re: Восстановление UFS раздела

Добавлено: 2011-01-15 14:36:09
Alex Keda
исходниик посмотрите
навскидку - я не знаю.