Назад | Перейти на главную страницу

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

Я пытаюсь создать резервную копию таблицы разделов 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

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

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

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