восстановление от образа диска записи с dd, к освобожденному пространству или определенному разделу

Я уже создал изображение с dd для диска записи изображение для окон 10, и я восстанавливаю его от режима восстановления Ubuntu

Когда я хочу восстановить окна, я стираю HDD и удаляю все разделы

wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda

Размер изображения составляет сжатых 5 ГБ (gz формат), несжатых 20 ГБ

У меня было три раздела

 Device     Boot     Start        End    Sectors   Size Id Type
    /dev/sda1  *         2048    1026047    1024000   500M  7 HPFS/NTFS/exFAT
    /dev/sda2         1026048  208089944  207063897  98.8G  7 HPFS/NTFS/exFAT
    /dev/sda3       208089949 1953520064 1745430116 832.3G  f W95 Ext'd (LBA)
    /dev/sda5       208090012 1953520064 1745430053 832.3G  7 HPFS/NTFS/exFAT

Все, в чем я нуждался, должно было восстановить изображение, которое создало от диска записи до sda1 и sda2 только, и сохраните sda5 (мои собственные файлы)

Я удалил sda1 и sda2, и создал новый раздел sda1 100 ГБ и восстановил изображение с

wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda1

но ничто не изменилось. Мои разделы теперь похожи на это

Device     Boot     Start        End    Sectors   Size Id Type
/dev/sda1            2048  195311615  195309568  93,1G 83 Linux
/dev/sda3       208089949 1953520064 1745430116 832,3G  f W95 Ext'd (LBA)
/dev/sda5       208090012 1953520064 1745430053 832,3G  7 HPFS/NTFS/exFAT

Нормальный и метод работы стер HDD полностью. Мне нужен метод работы для восстановления его к одному разделу только или освобожденному пространству

/dev/sda1

Как сделать это с dd?

ОБНОВЛЕНИЕ

$ fdisk -l Windows10template.img
Disk Windows10template.img: 20 GiB, 21474836480 bytes, 41943040 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: 0x266de740

Device                 Boot   Start      End  Sectors  Size Id Type
Windows10template.img1 *       2048  1026047  1024000  500M  7 HPFS/NTFS/exFAT
Windows10template.img2      1026048 41940991 40914944 19,5G  7 HPFS/NTFS/exFAT
3
задан 3 January 2017 в 13:37

2 ответа

Так как границы раздела на образе резервной копии диска выстраиваются в линию с подмножеством тех из текущей структуры диска, было бы относительно просто отключить соответствующую часть из gunzip вывод и запись это к правильным частям /dev/sda с dd, но я не собираюсь писать ответ, который собирается помочь только Вам все же перезаписать чьи-либо еще данные. Даже для себя существует большой риск сделать неправильное вычисление смещения или ввести в неправильном числе к тому же результату.

Вместо этого было бы намного лучше распаковать изображение диска на достаточно большой носитель и воздействовать на это. Можно сделать это даже в режиме восстановления. Но было бы намного легче, если бы Вы сделали это с графическим интерфейсом пользователя (например, от живого DVD/USB) – даже если Вы заканчиваете тем, что делали большую часть из этого на терминале.

Я предполагаю, что существует по крайней мере 25 ГБ (достаточно для содержания сжатого и распакованного образа резервной копии) свободный в файловой системе на /dev/sda5.

  1. Смонтируйте файловую систему на /dev/sda5.

    • На терминале, который работает с:

      udisksctl mount --block-device /dev/sda5 --options rw
      

      udisksctl скажет Вам, где диск был смонтирован.

    • Кроме того, можно использовать файловый менеджер или Диски Gnome для монтирования файловой системы.

    Я предположу, что точка монтирования расположена в /media/ubuntu/my-data. Скорректируйте следующие команды согласно фактической точке монтирования.

  2. Загрузите сжатое изображение диска веб-браузером или Вашим любимым клиентом HTTP на ранее смонтированную файловую систему, например:

    wget -P /media/ubuntu/my-data 'http://your_webhosting.com/Windows10template.img.gz'
    
  3. Распакуйте изображение и сохраните вывод в той же файловой системе. Можно использовать менеджера архива как Ролик Файла или инструмент командной строки, например:

    gunzip /media/ubuntu/my-data/Windows10template.img.gz
    
  4. Настройте циклическое устройство для распакованного изображения диска:

    sudo losetup -f --show /media/ubuntu/my-data/Windows10template.img
    

    losetup покажет Вам путь к циклическому устройству. Я предположу, что это /dev/loop7. Скорректируйте следующие команды согласно пути существующего устройства.

  5. Скажите ядру обнаруживать таблицу разделов внутри на циклическом устройстве (поддержанный изображением диска):

    sudo partprobe /dev/loop7
    

    Ядро добавит дополнительные узлы блочного устройства для обнаруженных разделов, т.е. /dev/loop7p1 и /dev/loop7p2.

  6. Скопируйте ранее выставленные разделы индивидуально в целевое устройство. Можно использовать менеджера по разделу как Диски Gnome или GParted или dd. Для последнего это сделает:

    sudo dd if=/dev/loop7p1 of=/dev/sda1 bs=8M
    sudo dd if=/dev/loop7p2 of=/dev/sda2 bs=8M
    

    Перепроверка, которую Вы ввели в корректном пути целевого устройства и что /dev/sda на самом деле, что Вы думаете, что это! Не полагайтесь на ядро для переприсвоения того же имени к блочному устройству через системные перезагрузки!

    Можно проверить идентификационные данные /dev/sda путем рассмотрения его расположения раздела (например, с fdisk /dev/sda или Диски Gnome) или использование уникальные и (главным образом) стабильные идентификаторы устройств в /dev/disk/by-*.

  7. Проверьте это /dev/sda1 и /dev/sda2 содержите намеченные данные.

  8. Вы сделаны. Перезагрузка в Windows или делает что.

  9. Очистите оставшееся изображение диска каждый раз, когда и поскольку Вам нравится. Удалите циклическое устройство для него (если Вы не перезагружали тем временем), или это не будет на самом деле удалено, пока Вы не сделаете:

    sudo losetup -d /dev/loop7
    
2
ответ дан 1 December 2019 в 15:23

dd является очень мощным, но также и очень опасным инструментом. резервное копирование независимо от того, что является новым на целевом диске (например, в разделе/dev/sda5), прежде чем Вы начнете вмешиваться в dd.

я думаю, что наименее опасный метод был бы к

  1. клон, 'все' с образа резервной копии на дополнительный диск

  2. клонирует первый раздел от дополнительного диска до первого раздела целевого диска.

  3. , Но Вы повредили верхнюю часть диска (первый mibibyte), таким образом, необходимо клонировать ту часть с образа резервной копии на целевой диск также. Можно использовать count=N для копирования только N блоков, и размер блока по умолчанию составляет 512 байтов.

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

4
ответ дан 1 December 2019 в 15:23

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

Похожие вопросы: