URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79749
[ Назад ]

Исходное сообщение
"Случайно удалил MBR. Как восстановить?"

Отправлено Mr.Link , 10-Апр-08 13:30 
Случайно удалил 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.
Можно ли что-нибудь сделать?
Можно ли из памяти записать на диск.

Содержание

Сообщения в этом обсуждении
"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 10-Апр-08 14:33 
Вот добавление.
--- cut ---
#gpart /dev/sda

Begin 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)r

Primary 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)r

Primary 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)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
--- cut ---

В /proc/partitions нашел вот что
major minor  #blocks  name

   8     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


"Случайно удалил MBR. Как восстановить?"
Отправлено Gennadi , 13-Апр-08 20:09 
1. Стартуешь с загрузочного диска и выбираешь "Other Options" -> Boot Installed System
   Когда система стартовала - заходишь как "root", стартуешь YaST->System->Boot Loader проверяешь настройки и   Save->Finish. Делаешь reboot. Всё


2. Стартуешь с загрузочного диска и выбираешь repair installed system там всё понятно - есть опция для ремонта Boot Loader'а.


"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 14-Апр-08 10:47 
>1. Стартуешь с загрузочного диска и выбираешь "Other Options" -> Boot Installed System
>   Когда система стартовала - заходишь как "root", стартуешь YaST->System->Boot Loader проверяешь настройки и   Save->Finish. Делаешь reboot. Всё
>
>
>2. Стартуешь с загрузочного диска и выбираешь repair installed system там всё
>понятно - есть опция для ремонта Boot Loader'а.

Интересно, откуда система с диска узнает какая разметка была?
А как загрузчик восстановить я знаю.
И мне надо, чтоб точно было, а что он там спросит я не знаю. И если там ничего не будет по восстановлению, то я всё потеряю.
М.б. я не прав... Но мне надо точно знать, что grub запишет на диск по крайней мере MBR с параметрами разделов из памяти (ну или откуда-нибудь из резервной копии), а не будет пытаться сканировать диск на наличие разделов.


"Случайно удалил MBR. Как восстановить?"
Отправлено Gennadi , 14-Апр-08 18:37 
>Интересно, откуда система с диска узнает какая разметка была?
>А как загрузчик восстановить я знаю.
>И мне надо, чтоб точно было, а что он там спросит я
>не знаю. И если там ничего не будет по восстановлению, то
>я всё потеряю.
>М.б. я не прав... Но мне надо точно знать, что grub запишет
>на диск по крайней мере MBR с параметрами разделов из памяти
>(ну или откуда-нибудь из резервной копии), а не будет пытаться сканировать
>диск на наличие разделов.

Информация записана здесь:

/boot/grub/menu.lst


"Случайно удалил MBR. Как восстановить?"
Отправлено djaarf , 15-Апр-08 17:33 
dumpe2fs выдает первый блок для раздела (это для экст2,3) там же или в /proc/partitions можно увидеть размер разделов в блоках,
можно попробовать воссоздать таблицу разделов fdisk-ом
Я бы на всякий случай сбекапил бы разделы перед этим.
Отпиши чо сделал и чо получилось?

"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link_ , 15-Апр-08 19:25 
>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)r

16787925 - это начало extended раздела получается, а 271610955 - длина
и еще заметил странности вывода (по-моему) parted - выдает не то, что реально записано на диске CHS (правда в этом не полностью разобрался). Поиск ничего толкового не дает.
К примеру, какая нумерация используется в chs на данный момент от 0 или 1.
Попытки продолжу завтра.


"Случайно удалил MBR. Как восстановить?"
Отправлено Gennadi , 15-Апр-08 23:43 
>[оверквотинг удален]
>   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.
>Попытки продолжу завтра.

Всё, что ты делашь, в конечном итоге приведёт к тому, что ты всё потеряешь!!!!

Зачем ты экспериментируешь с разлелами???? Оставь это....

Сделай как я сказал. Я уже так много раз восстанавливал загрузчик!


"Случайно удалил MBR. Как восстановить?"
Отправлено djaarf , 16-Апр-08 09:40 
>[оверквотинг удален]
>>К примеру, какая нумерация используется в chs на данный момент от 0
>>или 1.
>>Попытки продолжу завтра.
>
>Всё, что ты делашь, в конечном итоге приведёт к тому, что ты
>всё потеряешь!!!!
>
>Зачем ты экспериментируешь с разлелами???? Оставь это....
>
>Сделай как я сказал. Я уже так много раз восстанавливал загрузчик!

Загрузчик не главная его цель, ему надо таблицу разделов восстановить, а то что ты ему посоветовал похерит то что у него осталось



"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 16-Апр-08 11:32 
>
>Загрузчик не главная его цель, ему надо таблицу разделов восстановить, а то
>что ты ему посоветовал похерит то что у него осталось

Вот именно. Физически на диске уже нет раздела sda1 и ссылки на sda2.


"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 17-Апр-08 11:42 
Вообщем отписываюсь.
Путём долгих расчетов и посектороного сканирования dd, выяснилось, что таблица extended раздела тоже испорчена. Как такое получилось - не пойму. Но так же удалось найти начало ntfs(sda5) и, по-моему, reiserfs (root, sda6) разделов. Вот раздумываю, тратить на это еще время или же бросить и переустановить.
Проблема возникает в определении концов этих разделов и нахождении swap и home.
Посоветуйте, как? А то снова пробовать руками - руки опускаются (конечно интересно, но время...)

"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 17-Апр-08 15:46 
Кому интересно.
Не знаю, как размечают другие дистрибутивы, но вот что я выяснил.
sda2 не испортился, а видимо разметка была переписана при установке linux таким образом.

|--------------------------------------sda2-------------------------------------------|
|  512   | NTFS    |   512    | root      |  512     | swap       |  512     |  home  |
|1 2(Ext)| ^       |^ 1 2(Ext)| ^         |^ 1 2(Ext)| ^          |^ 1       | ^      |
|-+-------|        | |-+-------|          | |-+-------|           | |---------|      |
   |----------------|   |------------------|   |-------------------|


"Случайно удалил MBR. Как восстановить?"
Отправлено Mr.Link , 17-Апр-08 17:33 
Вообщем, восстановил.
1. Напрямую переписал значения начала и размер разделов sda1 и sda2.
2. Проверил стандартными средствами parted и cfdisk.
3. Переписал загрузчик grub-install
   [reboot]