Случайно удалил MBR раздел + еще один начальный. Помогите восстановить. Поиск выдаёт только простые ситуации. Делал под рутом загрузочную флэшку и записал образ на свой винт(разница в одной букве) :(.
ОС: OpenSUSE 10.3. Разметка диска была: sda1 - Win32(NTFS), sda2 - Extended, sda5 - Win32(NTFS), sda6, sda7 - ReiserFS(root) или swap (не знаю какой из них какой), sda8 - ReiserFS(/home)
Система еще работает (как я понял он хранит таблицу в памяти). Затёрлись первые 250Mb, т.е. MBR и системный виндовый раздел (хрен с ним, но он больше был), но надо восстановить MBR - начало первого и Extended разделов, инфа о sda5/6/7/8 (как я понимаю) храниться в начале sda2.
Позже скину что выдаёт gpart /dev/hda (лога не осталось). Вкраце - разделы какие-то "видит" на Extended, но все параметры равны 0.
Можно ли что-нибудь сделать?
Можно ли из памяти записать на диск.
Вот добавление.
--- cut ---
#gpart /dev/sdaBegin scan...
Possible extended partition at offset(8197mb)
Possible partition(Windows NT/W2K FS), size(24999mb), offset(20002mb)
Possible partition(Linux swap), size(8197mb), offset(75728mb)
End scan.Checking partitions...
* Warning: more than one extended partition: 2.
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): invalid
Partition(Linux swap or Solaris/x86): orphaned logical
Ok.Guessed primary partition table:
Primary partition(1)
type: 015(0x0F)(Extended DOS, LBA)
size: 132622mb #s(271610955) s(16787925-288398879)
chs: (1023/254/63)-(1023/254/63)d (1045/0/1)-(17951/254/63)rPrimary partition(2)
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)rPrimary partition(3)
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)rPrimary 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
--- cut ---В /proc/partitions нашел вот что
major minor #blocks name8 0 156290904 sda
8 1 20482843 sda1
8 2 1 sda2
8 5 25599546 sda5
8 6 31463271 sda6
8 7 8393931 sda7
8 8 70348603 sda8В /proc/mounts
rootfs / rootfs rw 0 0
udev /dev tmpfs rw 0 0
/dev/sda6 / reiserfs rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
debugfs /sys/kernel/debug debugfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/sda8 /home reiserfs rw 0 0
securityfs /sys/kernel/security securityfs rw 0 0
nfsd /proc/fs/nfsd nfsd rw 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
none /proc/fs/vmblock/mountPoint vmblock rw 0 0
1. Стартуешь с загрузочного диска и выбираешь "Other Options" -> Boot Installed System
Когда система стартовала - заходишь как "root", стартуешь YaST->System->Boot Loader проверяешь настройки и Save->Finish. Делаешь reboot. Всё
2. Стартуешь с загрузочного диска и выбираешь repair installed system там всё понятно - есть опция для ремонта Boot Loader'а.
>1. Стартуешь с загрузочного диска и выбираешь "Other Options" -> Boot Installed System
> Когда система стартовала - заходишь как "root", стартуешь YaST->System->Boot Loader проверяешь настройки и Save->Finish. Делаешь reboot. Всё
>
>
>2. Стартуешь с загрузочного диска и выбираешь repair installed system там всё
>понятно - есть опция для ремонта Boot Loader'а.Интересно, откуда система с диска узнает какая разметка была?
А как загрузчик восстановить я знаю.
И мне надо, чтоб точно было, а что он там спросит я не знаю. И если там ничего не будет по восстановлению, то я всё потеряю.
М.б. я не прав... Но мне надо точно знать, что grub запишет на диск по крайней мере MBR с параметрами разделов из памяти (ну или откуда-нибудь из резервной копии), а не будет пытаться сканировать диск на наличие разделов.
>Интересно, откуда система с диска узнает какая разметка была?
>А как загрузчик восстановить я знаю.
>И мне надо, чтоб точно было, а что он там спросит я
>не знаю. И если там ничего не будет по восстановлению, то
>я всё потеряю.
>М.б. я не прав... Но мне надо точно знать, что grub запишет
>на диск по крайней мере MBR с параметрами разделов из памяти
>(ну или откуда-нибудь из резервной копии), а не будет пытаться сканировать
>диск на наличие разделов.Информация записана здесь:
/boot/grub/menu.lst
dumpe2fs выдает первый блок для раздела (это для экст2,3) там же или в /proc/partitions можно увидеть размер разделов в блоках,
можно попробовать воссоздать таблицу разделов fdisk-ом
Я бы на всякий случай сбекапил бы разделы перед этим.
Отпиши чо сделал и чо получилось?
>dumpe2fs выдает первый блок для раздела (это для экст2,3) там же или
>в /proc/partitions можно увидеть размер разделов в блоках,
>можно попробовать воссоздать таблицу разделов fdisk-ом
>Я бы на всякий случай сбекапил бы разделы перед этим.
>Отпиши чо сделал и чо получилось?Ну /proc/partitions я сразу выложил и указал, что ReiserFS.
Вчера пытался рассчитать используя /proc/partitions - не получилось, что-то не правильно сделал. Сейчас внимательнее посмотрел на то, что выдал gpart, а именноGuessed primary partition table:
Primary partition(1)
type: 015(0x0F)(Extended DOS, LBA)
size: 132622mb #s(271610955) s(16787925-288398879)
chs: (1023/254/63)-(1023/254/63)d (1045/0/1)-(17951/254/63)r16787925 - это начало extended раздела получается, а 271610955 - длина
и еще заметил странности вывода (по-моему) parted - выдает не то, что реально записано на диске CHS (правда в этом не полностью разобрался). Поиск ничего толкового не дает.
К примеру, какая нумерация используется в chs на данный момент от 0 или 1.
Попытки продолжу завтра.
>[оверквотинг удален]
> size: 132622mb #s(271610955) s(16787925-288398879)
> chs: (1023/254/63)-(1023/254/63)d (1045/0/1)-(17951/254/63)r
>
>16787925 - это начало extended раздела получается, а 271610955 - длина
>и еще заметил странности вывода (по-моему) parted - выдает не то, что
>реально записано на диске CHS (правда в этом не полностью разобрался).
>Поиск ничего толкового не дает.
>К примеру, какая нумерация используется в chs на данный момент от 0
>или 1.
>Попытки продолжу завтра.Всё, что ты делашь, в конечном итоге приведёт к тому, что ты всё потеряешь!!!!
Зачем ты экспериментируешь с разлелами???? Оставь это....
Сделай как я сказал. Я уже так много раз восстанавливал загрузчик!
>[оверквотинг удален]
>>К примеру, какая нумерация используется в chs на данный момент от 0
>>или 1.
>>Попытки продолжу завтра.
>
>Всё, что ты делашь, в конечном итоге приведёт к тому, что ты
>всё потеряешь!!!!
>
>Зачем ты экспериментируешь с разлелами???? Оставь это....
>
>Сделай как я сказал. Я уже так много раз восстанавливал загрузчик!Загрузчик не главная его цель, ему надо таблицу разделов восстановить, а то что ты ему посоветовал похерит то что у него осталось
>
>Загрузчик не главная его цель, ему надо таблицу разделов восстановить, а то
>что ты ему посоветовал похерит то что у него осталосьВот именно. Физически на диске уже нет раздела sda1 и ссылки на sda2.
Вообщем отписываюсь.
Путём долгих расчетов и посектороного сканирования dd, выяснилось, что таблица extended раздела тоже испорчена. Как такое получилось - не пойму. Но так же удалось найти начало ntfs(sda5) и, по-моему, reiserfs (root, sda6) разделов. Вот раздумываю, тратить на это еще время или же бросить и переустановить.
Проблема возникает в определении концов этих разделов и нахождении swap и home.
Посоветуйте, как? А то снова пробовать руками - руки опускаются (конечно интересно, но время...)
Кому интересно.
Не знаю, как размечают другие дистрибутивы, но вот что я выяснил.
sda2 не испортился, а видимо разметка была переписана при установке linux таким образом.|--------------------------------------sda2-------------------------------------------|
| 512 | NTFS | 512 | root | 512 | swap | 512 | home |
|1 2(Ext)| ^ |^ 1 2(Ext)| ^ |^ 1 2(Ext)| ^ |^ 1 | ^ |
|-+-------| | |-+-------| | |-+-------| | |---------| |
|----------------| |------------------| |-------------------|
Вообщем, восстановил.
1. Напрямую переписал значения начала и размер разделов sda1 и sda2.
2. Проверил стандартными средствами parted и cfdisk.
3. Переписал загрузчик grub-install
[reboot]