LINUX.ORG.RU

Как уменьшить размер образа диска, созданного dd?

 , ,


0

2

Сабж. Есть образ диска, снятый с раздела, который потом пришлось уменьшить на 500 Кб. Теперь, естественно, записать образ на раздел невозможно, т. к. он меньше. Как откусить маленький кусочек от образа?

Невозможно

Возможно. Конец некуда писать, конечно, но остальное запишет.

Какие данные содержал раздел, какая файловая система? Вероятно в конце нет значимых данных, работать будет.

anonymous
()
Ответ на: комментарий от anonymous

Чёрт побери, я же могу откусить кусочек другого раздела и прибавить его к этому и не будет никаких проблем. Вот я дурачок-то.

Но, всё-таки, образ уменьшить возможно? Или только на другой раздел записывать, уменьшать и снова снимать образ?

Fedorast
() автор топика

на образе надо сделать resize2fs иначе фс рано или поздно попытается туда что-то записать и обломится

futurama ★★★★★
()
Ответ на: комментарий от Fedorast

Можно, например через qemu-img, но на самом деле это не нужно.
При записи на блочное устройство вы не сможете выйти за пределы размера устройства.

ArcFi
()
Ответ на: комментарий от Fedorast

Обычно такие утилиты уменьшают размер ФС. Образ или раздел это другой уровень, которым они не занимаются. После уменьшения ФС можно отрезать лишнее любой подходящей программой, например truncate, или забить - не запишется остаток, и ладно.

anonymous
()

Спасибо за ответы, получается, просто взять и отрезать (чтоб без геморроя или дополнительного раздела) никак.

Fedorast
() автор топика
Ответ на: комментарий от Fedorast

Если потом идёт ещё раздел, тогда правильней забэкапить его начало, запомнить его размер и смещение, удалить, вернуть остаток на место, скопировать образ dd обратно на раздел, виндовыми средствами уменьшить раздел, если системный, то нужен раздел восстановления, диск или установочный. Потом восстановить следующий раздел и его данные. Придётся перезагружаться, но виндовое лучше делать виндовым.

anonymous
()
Ответ на: комментарий от Fedorast

Вот смотрите, в образе в управляющих структурах NTFS записан размер файловой системы, допустим M.
Если этот образ развернуть на меньший раздел, записав только часть, то возможны 2 сценария:
1) в хвосте что-то было и оно потеряется
2) в хвосте ничего не было, но туда могут быть попытки записи.
Чтобы этого не происходило, нужно обеспечить в управляющих структурах NTFS наличие нового размера N.

Чисто умозрительный вариант:

# losetup -f --show образ
# ntfsresize --size N /dev/loopX
# umount /dev/loopX
# truncate -s N образ

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от Fedorast

Как же никак

dd if=/dev/zero of=image.img count=0 seek=$NEWSIZEBYTES bs=1 — получается truncate файла до нужного размера.

olegkrutov ★★
()

Накатить образ диска на временный носитель, там его уменьшить по всем правилам и создать новый образ уже нужного размера

ism ★★★
()
Ответ на: комментарий от ism

Накатить образ диска на временный носитель, там его уменьшить по всем правилам и создать новый образ уже нужного размера

Была такая мысль, одна из первых, но это геморр и костыль.

Fedorast
() автор топика
Ответ на: комментарий от ArcFi

В вашем случае достаточно просто отресайзить ФС одной командой. Менять размер образа не нужно.

Я правильно понимаю, что в таком случае в конце файла образа останется кусочек, который не используется вообще никак? И его никак не убрать?

Fedorast
() автор топика
Ответ на: комментарий от Fedorast

если в образе не NTFS?

... то нужно применять команду изменения размера для файловой системы «не NTFS».

Вообще, для создания образов NTFS есть ntfsclone, которая избавляет от хранения в образе «пустого места», полезна при сохранении образа на ФС, поддерживающих «дырявые» (sparse) файлы, а также поддерживает свой компактный формат хранения для остальных ФС (но его нельзя будет смонтировать).

bormant ★★★★★
()
Ответ на: комментарий от bormant

ntfsclone

Любопытно, не слышал о таком, спасибо :3

Fedorast
() автор топика
Ответ на: комментарий от Fedorast

останется кусочек, который не используется вообще никак? И его никак не убрать?

См. выше truncate.

bormant ★★★★★
()

юзай нормальный софт где все уже сделали за тебя

r im drive

читая такие треды начинаешь понимать, за что любят ос х

smilessss ★★★★★
()
Ответ на: комментарий от smilessss

любят ос х

Отучаемся говорить за всю сеть.

Fedorast
() автор топика
Ответ на: комментарий от Fedorast

можно не менять образ, а записать толко первые n байт.

LiBer ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.