Я сделал полный образ (по крайней мере, я так думаю), используя dd if=/dev/sda of=/mnt/sda.img bs=32M где mnt - это внешний HD, который я использую.

Я пришел, чтобы восстановить этот образ этим утром, поэтому я загрузился на работающем USB, подключил внешний жесткий диск и запустил dd if=/mnt/sda.img of=/dev/sda bs=32M , я перезагрузился, и это выяснило, что диск отсутствует его MBR и таблица разделов. Я снова попытался записать на диск с гораздо меньшим размером блока, я думаю о 64k, но это не имело никакого значения.

У меня не получилось сделать резервную копию всего диска? (т.е. потеряли MBR?)

Я запустил файл на sda.img и он идентифицирует его как данные ext4.

РЕДАКТИРОВАТЬ: (в ответ на mpy)

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

sfdisk -l /mnt/sda.img

sfdisk: диск sda.img: невозможно получить геометрию

Диск sda.img: 7294 цилиндра, 255 головок, 63 сектора / дорожка

У меня есть два образа на этом жестком диске, один с установленным linux, другой с win 7. Изображение Linux не того же размера, оно меньше, по-видимому, dd не все скопировал.

ls -l

..... 60003385344 29 мая 14:19 sda.img

..... 64023257088 31 мая 13:08 sda-win.img

Я ценю тот факт, что я должен был проверить размер изображения, прежде чем стирать мой HD сейчас ... Можно ли попытаться восстановить этот образ (скажем, предположим, что отсутствующие 4 ГБ были просто пустым пространством)? Интересно, что я могу смонтировать образ и получить доступ к тому, что выглядит как большая часть данных (я не вижу ничего пропавшего)

1 ответ1

1

Если вы можете смонтировать образ с помощью цикла, это намекает на то, что образ содержит только раздел. Обычно вы должны получить сообщение об ошибке, если попытаетесь замонтировать образ всего диска:

# mount -o loop sda.img /mnt/loop
mount: you must specify the filesystem type

Это подтверждается file который также сообщил вам о файловой системе ext4 . Для всего образа диска file должен идентифицировать загрузочный сектор:

# file sda.img
sda.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200, GRUB version 0.97; partition 1: ID=0x83, active, starthead 32, startsector 2048, 77607966 sectors; partition 2: ID=0x82, starthead 254, startsector 77611008, 4194304 sectors; partition 3: ID=0x83, starthead 254, startsector 81805312, 894967808 sectors, code offset 0x48, OEM-ID "      \320", Bytes/sector 190, sectors/cluster 124, reserved sectors 191, FATs 6, root entries 185, sectors 64514 (volumes <=32 MB) , Media descriptor 0xf3, sectors/FAT 20644, heads 6, hidden sectors 309755, sectors 2147991229 (volumes > 32 MB) , physical drive 0x7e, dos < 4.0 BootSector (0x0)

Для справки, вот вывод sfdisk -l для образа диска (sda.img) и образа раздела (sda1.img):

# sfdisk -l sda.img
Disk sda.img: cannot get geometry

Disk sda.img: 0 cylinders, 0 heads, 0 sectors/track
Warning: The partition table looks like it was made
  for C/H/S=*/255/63 (instead of 0/0/0).
For this listing I'll assume that geometry.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
 sda.img1   *      0+   4830-   4831-  38803983   83  Linux
 sda.img2       4831+   5092-    262-   2097152   82  Linux swap / Solaris
 sda.img3       5092+  60801-  55710- 447483904   83  Linux
 sda.img4          0       -       0          0    0  Empty

# sfdisk -l sda1.img
Disk sda1.img: cannot get geometry

Disk sda1.img: 0 cylinders, 0 heads, 0 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 sda1.img: unrecognized partition table type
No partitions found

Следовательно, я предполагаю, что ваш sda.img содержит только раздел. Это лучше, чем ничего. Гадание (!) из разных размеров (64023257088-60003385344 = ок. 4 ГБ), я полагаю, вы потеряли только раздел подкачки, что не повредит.

Так что делать?!

  1. Разбейте ваш жесткий диск на sda1 = 60003385344 байта (sda2 = остальные)
  2. напишите свое изображение в sda1 .
  3. восстановить загрузчик
    • как это сделать, зависит от того, какой из них вы использовали
    • для GRUB:
      1. mount sda1 (например, mkdir /root/part1 && mount /dev/sda1 /root/part1)
      2. chroot /root/part1
      3. update-grub (это путь Debian, зависит от вашего дистрибутива)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .