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

Ответ на: комментарий от UncleAndy

есть такая, но в списке потдерживаемых систем нету ext3 (ext2 есть). пробовал я её, но ничего внятного она не дала

anonymous
()
Ответ на: комментарий от anonymous

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

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