Восстановление раздела с ext2/3

Возможны градации по степени сложности:

  1. Есть раздел, но поврежден суперблок.
  2. Повреждена таблица разделов, положение раздела на устройстве не известно.
  3. Раздел находился на lvm.

В первом случае можно смонтировать файловую систему с резервным суперблоком:

# dumpe2fs /dev/sda5 | grep -i superblock
dumpe2fs 1.41.11 (14-Mar-2010)
  Primary superblock at 0, Group descriptors at 1-29
  Backup superblock at 32768, Group descriptors at 32769-32797
  Backup superblock at 98304, Group descriptors at 98305-98333
  Backup superblock at 163840, Group descriptors at 163841-163869
  Backup superblock at 229376, Group descriptors at 229377-229405
  ...

И попробовать смонтировать систему с другим суперблоком:

# mkdir -p /mnt/data5
# mount -o sb=98304 /dev/sda5 /mnt/data5

Во втором случае помогла бы резервная копия таблицы разделов. Но её конечно же нет, поэтому придется сперва найти начало раздела, а затем примонтировать его со смещением относительно начала блочного устройства.

Поможет в этом довольно интеллектуальная утилита gpart. Перед употреблением прочтите инструкцию.

gpart -vvfn s -l /tmp/gpart.log /dev/sda &

Begin scan...
Possible partition(Linux ext2), size(236943mb), offset(1035mb)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 236943mb #s(485259384) s(2120584-487379967)
   chs:  (132/0/5)-(1023/254/63)d (132/0/5)-(30337/254/61)r
   hex:  00 00 05 84 83 FE FF FF 88 5B 20 00 78 78 EC 1C

Найденных кандидатов на искомый раздел можно попытаться примонтировать read-only со смещением:

 # mount -r -t ext3 -o loop,offset=$((512*2120584))  /dev/sda /mnt/data5

Третий случай описан в статье Recovery of RAID and LVM2 Volumes, 2006г.