При клонировании раздела ext4 с помощью команды "dd" на больший раздел свободное пространство не увеличивается

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

Недавно я пытался клонировать мой HD с помощью инструмента dd. Все было хорошо, как клонирование разделов ntfs, но когда дело доходит до ext4 - dd делает странные вещи. Например. Имея раздел 12 ГБ с 4 ГБ свободного места, когда я пытаюсь клонировать его на новом разделе 25 ГБ, он действительно клонирует его, но данные, которые ранее были 12 ГБ, теперь 21 ГБ с 4 ГБ (такой же объем свободного пространства все еще был старый раздел). Это происходит каждый раз, когда я клонирую свой домашний и корневой разделы (ext4). Я также пытался уменьшить размер нового раздела до размера старого, но затем dd заканчивает с ошибкой, говоря, что не хватает места, которого должно быть достаточно...

Кто-нибудь? В чем дело?

1 ответ

Я предполагаю, что вы делаете что-то вроде:

sudo dd if=/dev/sda98 of=/dev/sda99

где /dev/sda98 имеет размер 12 ГБ, а /dev/sda99 - 25 ГБ.

Очевидно, что эти имена неверны, но вы поняли.

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

Решением является изменение размера файловой системы, расположенной в разделе:

sudo resize2fs /dev/sda99

он работает в файловых системах EXT2, EXT3 и EXT4.

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

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

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

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