Резервное копирование таблицы системных разделов

Я пытаюсь сделать резервную копию таблицы разделов Linux Ubuntu 10.04 LTS.

На самом деле я делаю тесты на виртуальных машинах (VirtualBox). У меня есть одна исходная система на виртуальном диске, другая виртуальная машина в качестве спасательной системы и другой пустой виртуальный диск того же размера, что и исходный системный диск.

Итак, запустив систему восстановления, я монтирую диск с исходной системой и использую эту команду для создания резервной копии таблицы разделов:

sfdisk /dev/sdb –d > /backup/sdb-part-table.sf

И файл генерируется и сохраняется с этим выходным сообщением:

Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.

Получив файл таблицы разделов, я размонтирую исходный диск и подключу резервный пустой диск.

Я пытаюсь использовать эту команду:

sfdisk /dev/sdb < /backup/sdb-part-table.sf

Затем я пытаюсь снова восстановить таблицу разделов, но выдает мне эту ошибку:

Checking that no-one is using this disk right now ...
OK

Disk /dev/sdc: 265 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdc1   *      0+    245-    246-   1973248   83  Linux
/dev/sdc2        245+    265-     20-    155649    5  Extended
/dev/sdc3          0       -       0          0    0  Empty
/dev/sdc4          0       -       0          0    0  Empty
/dev/sdc5        245+    265-     20-    155648   82  Linux swap / Solaris
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot    Start       End   #sectors  Id  System
/dev/sdc1   *      2048   3948543    3946496  83  Linux
/dev/sdc2       3950590   4261887     311298   5  Extended
/dev/sdc3             0         -          0   0  Empty
/dev/sdc4             0         -          0   0  Empty
/dev/sdc5       3950592   4261887     311296  82  Linux swap / Solaris
Warning: partition 1 does not end at a cylinder boundary

sfdisk: I don't like these partitions - nothing changed.
(If you really want this, use the --force option.)

Итак, наконец, я использую силу, чтобы сделать восстановление и, кажется, работает:

sfdisk --force /dev/sdb < /backup/sdb-part-table.sf

Получение этого результата:

Checking that no-one is using this disk right now ...
OK

Disk /dev/sdc: 265 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdc1   *      0+    245-    246-   1973248   83  Linux
/dev/sdc2        245+    265-     20-    155649    5  Extended
/dev/sdc3          0       -       0          0    0  Empty
/dev/sdc4          0       -       0          0    0  Empty
/dev/sdc5        245+    265-     20-    155648   82  Linux swap / Solaris
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot    Start       End   #sectors  Id  System
/dev/sdc1   *      2048   3948543    3946496  83  Linux
/dev/sdc2       3950590   4261887     311298   5  Extended
/dev/sdc3             0         -          0   0  Empty
/dev/sdc4             0         -          0   0  Empty
/dev/sdc5       3950592   4261887     311296  82  Linux swap / Solaris
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

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

Резервное копирование Mbr уже сделано и установлено. Я пытался установить после и до восстановления таблицы разделов.

Итак, есть идеи, как я могу заставить это работать?

Заранее спасибо, и хорошей недели:D

2 ответа

Предыдущий ответ был действительно очень близок; Вы только создали резервную копию таблицы разделов. Таблица разделов - это PART первого сектора. Другая вещь в первом секторе - загрузчик.

Однако, если вы точно копируете первый сектор, а не свой раздел /boot, вы можете легко получить случаи, когда код в первом секторе переходит по адресу, который не имеет необходимого файла. В этом случае загрузите некоторые соответствующие носители и переустановите загрузчик (я думаю, что в Ubuntu даже есть помощник для этого на их носителе).

Вы пробовали подход более низкого уровня? Например, используя dd if=/dev/sdc of=mbr.sav bs=512 count=1, который будет делать именно то, что вы ожидаете, то есть резервное копирование первых 512 байт вашего жесткого диска на mbr.sav? Чтобы восстановить резервную копию, инвертировать if а также of Значения аргументов.

Другие вопросы по тегам