Восстановить

Восстановить

Я регулярно делал полные резервные копии своего жесткого диска (со всеми разделами) с помощью ddинструмента as backup.imgfile. У меня есть несколько таких файлов.

Теперь, когда мой старый жесткий диск вышел из строя, как мне использовать backup.imgфайл для записи на новый жесткий диск, чтобы все разделы и файлы остались нетронутыми, как на изображении?

Также возможно ли извлечь часть данных (несколько файлов/папок) из такого файла backup.img?

решение1

Восстановить

Вы можете восстановить образ на новом жестком диске, выполнив следующие действия:

# dd if=backup.img of=/dev/sd?

В результате вы получите клон вашего оригинального диска, включая все разделы и данные.

Недостатком этого варианта является то, что размер разделов не изменится, ddпоэтому новый диск должен быть идентичен исходному или превышать его по емкости.

Если вас это устраивает, вы можете использовать загрузочный образ, содержащий gpartedили аналогичный (например, Parted Magic), и изменить размер разделов в соответствии с новым диском.

Монтаж

Для монтирования образа вам понадобится losetup.

Старый метод

Старый способ сделать это — вычислить смещение относительно начала раздела следующим образом:

Запускаем fdiskи смотрим размер сектора:

# fdisk -l backup.img
Disk backup.img: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x91999386

Device      Boot   Start      End  Sectors  Size Id Type
backup.img1 *       2048  1026047  1024000  500M 83 Linux
backup.img2      1026048 16777215 15751168  7.5G 8e Linux LVM

чтобы рассчитать свое смещение, прочтитеНачинатьстолбец для раздела, который вас интересует, и умножьте это значение на размер вашего сектора. Например, чтобы прочитать backup.img1выше, умножьте 2048 x 512 = 1048576.

Используйте это значение в качестве смещения для losetupследующих значений:

# losetup -o 1048576 /dev/loop0 backup.img

затем смонтируйте петлевое устройство:

# mount -t ext4 /dev/loop0 /mnt

Более поздний метод

Более новые версии losetupбудут сканировать и автоматически создавать /dev/loopзаписи для всех разделов образа следующим образом:

# losetup -Pf backup.img
# ls /dev/loop0*
/dev/loop0  /dev/loop0p1  /dev/loop0p2
# mount -t ext4 /dev/loop0p1 /mnt

Разделы LVM

В моем примере выше второй раздел показан как LVM. Чтобы извлечь файлы из них, просто позвольте LVM сделать свое волшебство на устройстве loopback. Первое сканирование:

# pvs
  PV           VG            Fmt  Attr PSize PFree 
  /dev/loop0p2 fedora-server lvm2 a--  7.51g 40.00m

затем активируйте VG (обратите внимание на имя VG из приведенной выше команды, ваше имя, вероятно, будет отличаться от моего):

# vgchange -a y fedora-server
  2 logical volume(s) in volume group "fedora-server" now active

проверьте какие разделы у вас есть:

# ls /dev/fedora-server/
root  swap

и смонтируйте один из них:

# mount -t ext4 /dev/fedora-server/root /mnt

Выход

После извлечения файлов:

# umount /mnt
# losetup -d /dev/loop0

или для креплений LVM:

# umount /mnt
# vgchange -a n fedora-server
  0 logical volume(s) in volume group "fedora-server" now active
# losetup -d /dev/loop0

Связанный контент