Могу ли я создать изображение расширенного раздела с помощью dd?

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

sudo dd if=/dev/sdc3 conv=sync,noerror bs=64K | gzip -c > TOSHIBA_ExtPart.img.gz

, после чего получил ошибку: Нет такого устройства или адреса.

* Я хочу сделать идеальную копию раздела, потому что есть удаленные файлы, которые я хочу восстановить в будущем в разделе, поэтому файл с изображениями должен содержать их.

Есть ли какая-то ошибка, которую я сделал? Или это лучший способ сделать это?

(ОС: Ubuntu 16.04 LTS)

2
задан 4 October 2017 в 09:09

3 ответа

Я согласен с @ravery, что вы должны проверить, что вы действительно пытаетесь читать с правильного устройства.

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

Очевидная работа - сделать образ всего диска /dev/sdX, где X - буква диска (например, a или b или c). Но это означает больше работы.

Другой альтернативой является поиск start и размер расширенного раздела с помощью parted.

sudo parted /dev/sdX u MiB print

u MiB означает, что устройство является mibibytes. Используйте этот размер блока также в dd, а затем используйте seek и count в dd для выбора правильных данных для копирования в изображение.

seek= и count= используются как bs=. Это описано в man dd. может использовать bs=1M, а затем использовать вывод из разделенной командной строки для значений для поиска и подсчета.

sudo dd if=/dev/sdX bs=1M seek=Start count=Size | gzip -c > TOSHIBA_ExtPart.img.gz
1
ответ дан 22 May 2018 в 17:51
  • 1
    Извините за беспокойство, но я совершенно новичок в Ubuntu и не могу понять последнее предложение. Можете ли вы рассказать мне, как это сделать более конкретно, особенно с dd? – YM.Ubuntu.16.04.LTS 4 October 2017 в 11:18
  • 2
    seek= и count= используются как bs=. Он описан в man dd. Я имею в виду, что вы можете использовать bs=1M, а затем использовать вывод из разделенной командной строки для значений поиска и подсчета. Если вы чувствуете себя неловко с этим, сделайте изображение всего диска. Это просто, и у вас есть лучшие шансы на успех. – sudodus 4 October 2017 в 11:23
  • 3
    Основная причина, по которой я хочу скопировать расширенный раздел, заключается в том, что у меня мало места для внешнего жесткого диска. Я просто копировал раздел отдельно. В любом случае, спасибо за ответ, это действительно помогает понять о dd. – YM.Ubuntu.16.04.LTS 4 October 2017 в 11:44
  • 4
    Я вижу, почему вы хотите скопировать только расширенный раздел. Я думаю, что вы добьетесь успеха с seek и count. Вы можете проверить, что dd записывает правильное количество блоков. Если вы хотите быть уверенным, вы должны извлечь изображение из сжатого файла и проверить, можно ли его использовать. Удачи :-) – sudodus 4 October 2017 в 11:51
  • 5
    Вы имеете в виду, что вы скопировали логический раздел (разделы) в расширенном разделе? Если {этот раздел / эти разделы} заполняют расширенный раздел (и нет незанятого пространства), вы скопируете все пространство на диске, если есть удаленные файлы, которые вы хотите восстановить. Так что это тоже сработает. - Но если в расширенном разделе есть нераспределенное место на диске, вам нужен метод с seek и count. – sudodus 4 October 2017 в 12:02

Я согласен с @ravery, что вы должны проверить, что вы действительно пытаетесь читать с правильного устройства.

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

Очевидная работа - сделать образ всего диска /dev/sdX, где X - буква диска (например, a или b или c). Но это означает больше работы.

Другой альтернативой является поиск start и размер расширенного раздела с помощью parted.

sudo parted /dev/sdX u MiB print

u MiB означает, что устройство является mibibytes. Используйте этот размер блока также в dd, а затем используйте seek и count в dd для выбора правильных данных для копирования в изображение.

seek= и count= используются как bs=. Это описано в man dd. может использовать bs=1M, а затем использовать вывод из разделенной командной строки для значений для поиска и подсчета.

sudo dd if=/dev/sdX bs=1M seek=Start count=Size | gzip -c > TOSHIBA_ExtPart.img.gz
1
ответ дан 18 July 2018 в 05:47

Я согласен с @ravery, что вы должны проверить, что вы действительно пытаетесь читать с правильного устройства.

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

Очевидная работа - сделать образ всего диска /dev/sdX, где X - буква диска (например, a или b или c). Но это означает больше работы.

Другой альтернативой является поиск start и размер расширенного раздела с помощью parted.

sudo parted /dev/sdX u MiB print

u MiB означает, что устройство является mibibytes. Используйте этот размер блока также в dd, а затем используйте seek и count в dd для выбора правильных данных для копирования в изображение.

seek= и count= используются как bs=. Это описано в man dd. может использовать bs=1M, а затем использовать вывод из разделенной командной строки для значений для поиска и подсчета.

sudo dd if=/dev/sdX bs=1M seek=Start count=Size | gzip -c > TOSHIBA_ExtPart.img.gz
1
ответ дан 24 July 2018 в 18:26

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

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