У меня есть раздел (/dev/sda1) размером 10 ГБ. Также есть файл "dd" другого раздела размером 7 ГБ ( /dev/sdb1).
Когда я выполняю команду как:
dd если=sdb1.dd из=/dev/sda1
затем все идет нормально, но я не могу использовать оставшиеся 3 ГБ пространства /dev/sda1
Есть ли способ заставить DD использовать оставшееся свободное пространство (в данном случае 3 ГБ)?
решение1
dd
не заботится о свободном пространстве (как в концепции файловой системы), он просто копирует блок за блоком.
Если sdb1.dd
это образ файловой системы, вы можете увеличить его с помощью resize2fs
или других инструментов (в зависимости от типа файловой системы) после его копирования.
resize2fs /dev/sda1
решение2
Есть ли способ заставить DD использовать оставшееся свободное пространство (в данном случае 3 ГБ)?
Нет.
Более того, если предположить, что целевой раздел имеет правильный размер (как вы говорите), то фактически вы создаете файловую систему, которая знает только о первой части раздела. Ее dd
не волнует значение данных, записанных как в источнике, так и в месте назначения.
В зависимости от используемой файловой системы вы можете иметь возможностьрасширить файловую системуиспользовать весь раздел, но это выходит далеко за рамки ответственности, dd
и детали будут во многом зависеть от того, какая именно файловая система находится внутри этого файла образа.
решение3
dd не копирует файлы, если копирует байты. Это включает структуру файловой системы, которая является файловой системой размером 7 гигабайт. Когда вы закончите копирование, данные файловой системы покажут, что это файловая система размером 7 гигабайт.
Если вы просто пытаетесь дублировать все файлы, использование dd для создания копии — это не то, что вам нужно. Используйте tar или dump/restore на свежесозданную файловую систему.