LINUX.ORG.RU

Реконструкция partition table.


0

0

люди добрые, помогите!
у меня нае**нулас partition table, а на диске есть одна очень
важная партиция (ext3), на которой просто куча данных, которые мне
надо спасти. Я решил перебрать все блоки на девайсе и записать где начинается каждая из партиций, и пользуясь этими знаниями сделать fdisk. Вот что я надумал:
#include <iostream>
#include <linux/ext3_fs.h>
using namespace std;
int main(int argc, char *argv[])
{
unsigned long count=0;
int c;
while (cin){
c=cin.get();
if( c==EXT3_SUPER_MAGIC)
cout<<"*** block "<<count<<", "<<(int)c<<endl;
++count;
if(!(count%10000000)){
cout<<"read "<<count<<" and still reading"<<endl;
}
}
cout<<"no of blocks checked: "<<count-1<<endl;//the EOF is counted
return 0;
}
Проблема состоит в том что ента программа не находит ни одного подходясчего блока. Я подозреваю что проблема состоит в том что /dev/hda является block device-ом, но как исправить программу понятиа не имею.
ЗЫ: пожалуйста не говорите о томкакой я лох, что не держал бэкап partition table. сам знаю

anonymous

Re: Реконструкция partition table.

Не мучайся и используй готовую утилиту. Называется вроде-бы gpart.

UncleAndy ★★★ ()
Ответ на: Re: Re: Реконструкция partition table. от anonymous

Re: Re: Re: Реконструкция partition table.

А при чем тут файловая система? Эта утилита только обнаруживает границы разделов и все.

UncleAndy ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.