я скопировал USB-накопитель в .img
файл с помощью dd
:
dd if=/dev/sdc of=myimage.img
я хочу уменьшить размер раздела в образе. Я перепробовал несколько методов и всегда получаю образ, смонтированный с обратной связью, раздел которого по-прежнему является полным размером USB.
-
как изменить
myimage.img
иметь меньший раздел после установки замыкания на себя? -
нужно ли копировать нули в пустую часть раздела до этого?
-
нужно ли дефрагментировать, чтобы при уменьшении размера изображения удалять пустые байты? (Из того, что я прочитал, Linux распространяется на весь раздел, поэтому я не ожидаю, что все данные в конце образа равны нулевым байтам. Даже запись всех нулей будет потреблять пустые байты, где бы они ни находились.)
примечание. Я не пытаюсь сэкономить место на диске, поэтому сжатие не помогает тебя.
фон
у меня Linux установлен на USB-накопитель с помощью ext4
. Я намерен дублировать установку для нескольких устройств. Я сделал это успешно, но хотел бы создать на том же USB-накопителе раздел только для чтения с системой и небольшой раздел, который позволяет постоянное хранилище. Вместо того, чтобы сломать мой USB, я пытаюсь изменить копию USB. Надеюсь, мы не отвлекаемся на это прошлое.
Короче, я сделано следующее:
# Create mount point in current directory
sudo mkdir mnt
# Loopback mount the image
fdisk -l myimage.img
sudo mount -o offset=<partion_block_start * block_size> myimage.img mnt
# Copy all zeros to remaining space of the image
cd mnt
sudo dd if=/dev/zero of=filler conv=fsync bs=1M
rm filler
cd ..
во-первых, я попытался использовать parted
как описано в этот суперпользователь ответ и qemu-img
как описано в этот другой суперпользователь ответ.
sudo umount mnt
parted myimage.img
# At parted command prompt
(parted) resizepart 1
# Entered my end <target size>. Note that parted uses zero-based
# indexing. This could be your final image size. In my case, the way the
# Linux installer worked, the partition started at 1M.
(parted) print
# I see that the partition is now sized as I expect
(parted) exit
# Just another sanity check
sudo parted -m esp3_007.img unit B print
# I see that the partition is now sized as I expect
когда я снова пытаюсь смонтировать образ, он работает нормально, но df
по-прежнему показывает раздел такого же размера. Тогда я попробовал
qemu-img resize myimage.img <target_size>
и теперь, когда я пытаюсь смонтировать образ, я получаю " Маунт: тип неправильно ПС, плохой вариант, плохо суперблок..." сообщение об ошибке.
затем я попытался с помощью gparted
как описано в этом сайте в должности. Графический интерфейс показал полный раздел, если я не побежал parted
в первую очередь. Даже тогда графический интерфейс не позволял мне изменять размер раздела.
за попытку уменьшить размер раздела и начать с новой копии myimage.img
пробовал fdisk
описано в это AskUbuntu ответ
sudo fdisk myimage.img
Command (m for help): d
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
# defaults on the rest seemed to be correct in my case.
когда я установил перегородка, она все еще показала как одинаковый размер.