Linux mini-HOWTO

       

Не такое простое решение



Вручную

Такой способ обычно бывает необходим, если все вышеописанное неприменимо, например, если у вас нет распечатки результата fdisk, или она устарела

Во-первых, вам надо знать, что пока вы не пишете ничего на диск (кроме записи таблицы разделов при помощи fdisk), вы не можете испортить свои данные, поэтому можно пробовать устанавливать начало раздела последовательно цилиндр за цилиндром. Это надо делать потому, что для запуска системы с раздела, надо знать его начало. Например, если 153 не подошло, попробуйте 154, и так далее.

Это может утомить, но если вы помните примерные размеры разделов, то у вас есть шансы на успех.


gpart

Существует лучший путь, если у вас есть доступ к сети или есть под руками утилита gpart.

gpart - guess PC-type hard disk partitions (Восстановление таблицы разделов жесткого диска)" - это первая строка man-страницы для утилиты gpart (man gpart).

"gpart пытается восстановить таблицу разделов на жестком диске, если она была потеряна, перезаписана или разрушена, а разделы все еще присутствуют на диске". Это как раз то, что нам надо.

Утилита gpart все еще достаточно сыра, но уже довольно хороша для использования.

Проблема состоит в следующем: первый блок любого раздела помечается специальным образом. Но эта пометка с блока не убирается, пока в него не запишутся другие данные. Поэтому много "первых блоков раздела" остается на старом диске, и gpart пытается восстановить наиболее реальную картину. На самом деле в этом нет ничего сложного, и, к тому же, gpart ничего не записывает на диск

Вот результат работы gpart для ранее описанного диска hdb :

root@charles:/home/jdd > gpart /dev/hdb

Begin scan...

Possible partition(Linux ext2), size(1200Mb), offset(0Mb)

Possible partition(Windows NTFS), size(1200Mb), offset(1200Mb)

Possible partition(Linux ext2), size(1004Mb), offset(2402Mb)

Possible partition(Windows NTFS), size(1600Mb), offset(4102Mb)

End scan.

Checking partitions...

* Warning: partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX) ends beyond disk end .

Partition(Linux ext2 filesystem): primary

Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): primary

Partition(Linux ext2 filesystem): primary

Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): invalid primary

Ok.

Guessed primary partition table:

Primary partition(1)

type: 131(0x83)(Linux ext2 filesystem)

size: 1200mb #s(2457880) s(63-2457942)

chs: (0/1/1)-(152/254/61)d (0/1/1)-(152/254/61)r

Primary partition(2)

type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)

size: 1200mb #s(2457880) s(2457944-4915823)

chs: (152/254/63)-(305/253/60)d (152/254/63)-(305/253/60)r

Primary partition(3)

type: 131(0x83)(Linux ext2 filesystem)

size: 1004mb #s(2056256) s(4919781-6976036)

chs: (306/61/49)-(434/60/47)d (306/61/49)-(434/60/47)r

Primary partition(4)

type: 000(0x00)(unused) size: 0mb #s(0) s(0-0) chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Как видно из примера, главный раздел можно восстановить, но с расширенным придется еще поработать.

DOS-разделы названы "Windows NTFS" потому, что они были созданы при попытке установки Windows 2000 (очень опасный эксперимент!). А тот раздел, который назван "invalid" - это на самом деле расширенный раздел.

После запуска gpart можно запустить обычный fdisk и попытаться снова воссоздать таблицу разделов (помните, что это неопасно, так как исходная таблица разделов уже потеряна).



Содержание раздела