1

Я пытаюсь клонировать диск с помощью команды dd . Мой размер входного диска составляет 1 ТБ, который заполнен только на 10%. Размер моего выходного диска составляет 300 ГБ, что больше, чем я ожидал, клонировать.

Но после того, как мое клонирование закончилось, я мог видеть это сообщение: No space left on device .

Это немного странно, как 10% 1 ТБ заполняют 300 ГБ пространства. Может кто-нибудь объяснить мне эту вещь, почему это произошло? Мои данные были повреждены?

3 ответа3

4

Если ваше устройство ввода (if=) имеет размер 1 ТБ, то наш выходной файл (of=) также будет 1 ТБ.

dd - это очень низкоуровневый инструмент, который просто копирует ВСЕ байты из входного потока в выходной поток независимо от того, что это за данные или даже они выделены. Это даже включает в себя пустые (0x00) секторы и сектора с мусором в них. Это не касается структур данных высокого уровня, которые представляют "файлы", "каталоги" и т.д.

Если ваша цель состоит в том, чтобы получить точный побайтовый клон диска объемом 1 ТБ, вам потребуется передать данные с помощью алгоритма сжатия, такого как bzip2 , чтобы разместить его на меньшем диске.

Если ваша цель - просто сделать резервную копию ваших данных, тогда dd не является подходящим инструментом для этого. Вместо этого вы захотите использовать tar или другой инструмент для архивирования.

1

dd копирует основной диск напрямую, а не файловую систему. Он не знает о выделенных блоках или неиспользованном пространстве.

Если вы хотите захватить только файловую систему, а это файловая система Linux EXTx, которая не смонтирована, я бы рекомендовал уменьшить ее до минимального размера (сначала нужно отключить и сначала выполнить fsck), используя

resize2fs -M /dev/sd??

Затем скопируйте раздел файловой системы на ваш резервный диск.

Чтобы восстановить исходный размер стебля рипа (вернуть свободное пространство), запустите

resize2fs /dev/Ed??

Еще лучше использовать инструмент архивирования с поддержкой файловой системы, такой как tar.

0

Это немного странно, как 10% 1 ТБ заполняют 300 ГБ пространства.

Нету. 100% 1 ТБ заняли 300 ГБ и хотели большего.

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

Использование dd является RAW копией. Он не копирует данные в использовании. Для этого вам нужно что-то, что понимает разницу между заполненными страницами и страницами с пустыми строками.

Может кто-нибудь объяснить мне эту вещь, почему это произошло? Мои данные были повреждены?

Нет, вы просто дали команду сделать что-то еще, чем хотели.

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