восстановление инфы с ReiserFS(HELP!!!)

Здесь обсуждаются все вопросы, не попадающие под другие категории
Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

восстановление инфы с ReiserFS(HELP!!!)

Сообщение tes+or »

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

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

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

tes+or, для начала - сохраняем имеющийся mbr, наапример dd if=/dev/hda of=/floppy/mbr.img bs=512 count=1
Далее читаем ман на gpart и аккуратненько его применяем...
Делать лучше всего из-под какого-нить кноппикса или чего-то подобного...
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

имеющийся МБР я засейвал.
потом внимательно читал маннуал. потом пробывал разные виды сканирования. попробывал еще не все поэтому о результатах пока ничего не скажу. пока они отрицательные, и гпарт находит совсем не то что я ожидал. хотя я тщательно затирал свободные области диска утилитой bcwipe.(после того как посл. раз проводил переразбивку но перед сабжевыми граблями)

вобщем расскажу подробнее.

диск был у меня разбит так:
1. первый примэри партишн - ext3, линуксовый системный. 4.2 гига.
2. своп, непомню где он, подозреваю что extended. 64 мега
3. reiserfs 3.[сколько-то](дефолт для дебиана3.1). все оставшееся место на 40гиговом харде. тоже дополнительный, логический.

потом мне сказали на работе. ставь винду! СРОЧНО! я подумал, ну а фигли там, поменяю размер партишна, посавлю винду, а потом уже спокойно придумаю как в очередной раз обойтись без нее.

гружу с компакта DSL linux, беру утилиту resize2fs и ресайзю первый партишн до 2.5 в надежде поставить винду на освободившееся место. а DSL такой прикольный, пока он ресайзил мой экст, я его изучал. ну и запустил xmms, а он как повиснет. вобщем то винт продолжал мигать, а утилита ресайз ресайзить, по крайней мере я так думаю. а вот иксы повисли. ну я подождал пока винт не перестанет мигать и нажал резет. по крайней мере чертовски логично было бы предположить, что если он не мигает значит он закончил. хотя наверное надо было сделать sync, или даже сразу выпить йаду. но я нажал резет.

ладно, вставляю диск с виндой, бутю его, попадаю в тамошний партишн манагер. а он мне говорит что типа у меня все как было так и осталось. 3 unknownа и 8 мегов неразмеченного. ну, думаю, ладно, гружу дебу, смотрю. ресайзился. пытаюсь поформатить освободившийся раздел в любую ФС. неполучаеться, разные ошибки. тогда я пытаюсь его удалить. удалаю, сохраняю, перезагружаюсь и обнаруживаю пустой /storage.

что могу сказать по части уже осуществленной диагностики:

запускаю fdisk:
//------------------------------------------
testor:~# fdisk /dev/hda

The number of cylinders for this disk is set to 4865.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):
//----------------------------------------

что это может значить?

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

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

и еще, важная деталь.
//-------------------------
testor:~# cat mbr.img
КHюьп+|Ф©¦СгЩСLЧEРИЖF¦ u
рxV¦VХЭR¦б1рoЭЪ ЗйЙS|1юьп+ Ш=@|<ЪtбR+y}Х4ЖбtT¦A¦LUмZRrIШULuC=A|
юuАt7fL+|фDЪfD|ггDfгDpf1юDfD
¦Bмr¦pК}мs
Жб +|фDЪf1юП@fD1рйаБХТ@1юпюХff¦D|f1рfВ4T
f1рfВtT
D
юБL ;}<T
Чяl
Zt
¦pц1шTмr*цH|`¦ш1Ж1ЪЭСгaЪ&B|+}Х@К+
}Х8К+}Х0+}Х*КЧGRUB GeomHard DiskRead Error¦¦м-<uТц¦TЧ©!?cв
//-----------------------------------

обратите внимание на встретившуюся последовательность GRUB GeomHard DiskRead Error. может выставить ему вручную геометрию? или указать геометию при сканировании?

что дает эта информация?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

насчет fdisk - все нормально, используй... только чем он тебе поможет?
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

вобщем я глянул в установки биоса и нашел там геометрию своего харда. так вот у меня вовсе не 4865 цилиндров как считает биос, а аж 19158.

хэдсов у меня 16(надо пологать на цилиндр), а секторов 255 на хэд.

видимо система не совсем правильного мнения относительно геометрии харда. может установить ее вручную fdiskом?

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

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

это в каком режиме адресации-то?
Опыт растет прямо пропорционально выведенному из строя оборудованию

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

tes+or, не вижу связи между хардовой геометрией диска и твоим таском по роллбэку ресайза.
имхо также сомнительно что даже если ты вспомнишь адреса началов и концов разделов, то данные, на которые был натравлен resize2fs, остануцца живы.
я дампы разучился читать уже по возрасту лет, однако есть мнение, что GRUB GeomHard DiskRead Error это просто мессаг, который ты получишь если груб не сможет опросить биос на предмет геометрии харда. к твоему таску снова отношение весьма косвенное имхо. то есть не смертельно.
то что тебя ругает fdisk на предмет неправильной геометрии также не смертельно. помнится, для х86 есть несколько прерываний, по которым можно получать информацию о геометрии. одно оставлено в целях совместимости со старыми девайсами и по сути может отдавать некорректные данные тем приложениям, что его юзают.
я вижу один выход: методом тыка fdisk-ом менять координаты начала и конца разделов, если инфа так уж дорога. проверкой диска ошибки координат разделов не исправляются. fdisk и занимается только лишь тем, что меняет таблицу разделов. то есть если ты делаешь удаление партиции, то удаляется только запись таблицы разделов, но само собой не сам раздел, то есть бояться этой процедуры не надо, вернуть раздел можно создав новую запись в этой таблице.
удачи.

Аватара пользователя
red f0x
Неотъемлемая часть форума
Сообщения: 338
Зарегистрирован: 08 мар 2004, 01:41

Сообщение red f0x »

tes+or, эээ, столько разных телодвижений, ИМХО вы сами убили надежду на восстановление
Ну какая работа со строками может быть в языке, название которого является не строкой, а символом? (c) Sergue E. Leontiev

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

так то оно так, НО, товарищи, читайте вниметельнее. ресайзил я ПЕРВЫЙ партишн, а умер у меня третий. т.е. над самим третьим партишном НИКАКИХ манипуляций не совершалось просто потерлась инфа о нем в таблице.

вопросы:
1. как именно менять запись о разделе в МБР. опишите процедуру плиз.
2. по каким признакам можно попытаться угадать начало или конец раздела? какие обычно расстояния между разделами? сколько обычно от конца раздела до конца диска? как долго придеться гадать? можно ли автоматизировать этот процесс и нужно ли ребутиться после каждой перезаписи МБР таблицы?
3. насколько точно должны быть указаны координаты начала/конца. может координаты конца не так важны. может дать запас с обоих сторон и оно заработает?

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

1. dd if=/dev/hdX of=mbr.dump bs=512 count=1 и обратно dd of=/dev/hdX if=mbr.dump bs=512 count=1
2. по признакам начала и/или конца рядом лежащих разделов. то есть если раздел hda2 заканчивается например 4999 блоком, а hda4 начинается 10000 то hda3 начнется с 5000 и закончится 9999. справедливо, если не было создано extended partition, во втором случае дело слегка усложняется, если раздел находится в пределах extended. расстояния :) какие задашь такие и будут. просто если задашь неверно, то соотв. часть ядра не сумеет корректно определить файловую систему на разделе. автоматизировать процесс теоретически можно: написать скрипт, который будет fdisk-у передавать новые значения конца раздела начиная от нужного блока с инкрементом. после чего девайс нало syncануть и попытаться замонтировать раздел. если mount не даст ошибки монтирования, то инкрементировать переменную, указывающую на конец раздела и так далее по циклу... если синхронизация дисков прошла уверенно, можно не перегружаться.
3. если надо восстановить данные на разделе - абсолютно точно. особенно в случае reiserfs, с фатом бы еще можно было пофокусничать. если данные не важны, делай раздел каким надо и формать по новой. соотв-но потеряешь инфу (бытует мнение, что ей и так гамон)

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

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

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

1. я немного не то имел в виду. как записать/снять копию с МБР я уже понял. вопрос как его менять. как именно указать что вот там и там лежит этот и этот раздел.
2. да, у меня именно extended. фишка в том что надо угадать не только начало но и конец. т.е. (колво блоков возможного диапазона начала)*(колво блоков диапазона конца)=колву циклов работы скрипта? это уже сложнее, неуверен что осилю, нету опыта написания скриптов на sh.
3.если бы данные были неважны - я бы уже поформатил, а не разводил тут такие дискусии) данные достаточно важны для того чтобы потерять на это столько времени, сил и прочих ресурсов. кроме того - дело принципа. если это возможно, то почему бы мне это и не сделать.

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

tes+or, afair, MBR есть Master Boot Record, а не partition table, что тебе надо. В мастербуте сидит первичный загрузчик для установленной оси. Еще раз: таблицу разделов меняют fdisk, parted, etc... руками ее трогают только редкие извращенцы или те, кто реально знает, чего хочет и знает, где это искать.
почитай про то, как ложится extended на винт, то есть где создается список дополнительных разделов, там есть своя специфика. Справедливо найти ответ на вопрос: сколько всего разделов на винте, и сколько из них были включены в extended, а сколько соотв-но были primary. И дать полную карту разделов, как она могла бы выглядеть раньше (до изменения) и как выглядит теперь.
кол-во циклов работы скрипта = размер раздела в блоках / инкремент (для ускорения работы, но не для уточнения можно ввести инкремент != 1)

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

gpart возми

он как раз для подобных вещей заточен
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...

Ответить