Изменить размер образа раздела с помощью GParted?

12851
endolith

Я изменил размер разделов в GParted раньше. Теперь я хотел бы переместить большой, но в основном пустой раздел на меньший диск. Вместо того, чтобы изменить его размер на месте, я бы предпочел сделать копию на 3-м диске (образ диска с помощью dd), изменить размер копии, а затем скопировать ее на новый диск. Но я не думаю, что Gparted работает с образами дисков? Как бы я это сделал? Могу ли я использовать инструменты, которые GParted использует напрямую?

Ooh! Или я могу использовать петлю, чтобы файл образа выглядел как физический диск, на котором может работать gparted?

10
https://softwarebakery.com/shrinking-images-on-linux x29a 7 лет назад 0

4 ответа на вопрос

7
user7455651

Я не уверен, какая ситуация была 5 лет назад, но сегодня это торт.

$ sudo udisksctl loop-setup -f disk.img Mapped file disk.img as /dev/loop0. $ sudo gparted /dev/loop0 

Теперь вы можете съесть торт.

3
Patches

Вы не можете сделать это с помощью GParted, но вы можете использовать ntfsresizeкоманду непосредственно на образе диска.

Сначала клонируем образ диска. Вы можете найти имя дискового устройства с помощью blkidили gParted, а затем запустить:

sudo dd if=<disk device> of=<image file> 

Например:

$ sudo dd if=/dev/sda2 of=disk.img 1000000+0 records in 1000000+0 records out 512000000 bytes (512 MB) copied, 9.33361 s, 54.9 MB/s 

Затем проверьте, можете ли вы изменить его размер до нужного, запустив:

ntfsresize -i <image file> 

Например:

$ ntfsresize -i disk.img ntfsresize v2011.4.12 (libntfs-3g) Device name : disk.img NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 511996416 bytes (512 MB) Current device size: 512000000 bytes (512 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 4 MB (0.6%) Collecting resizing constraints ... You might resize at 3035136 bytes or 4 MB (freeing 508 MB). Please make a test run using both the -n and -s options before real resizing! 

В этом примере я могу изменить размер до 4 МБ, потому что я только что сделал пустой образ диска в целях иллюстрации!

Теперь вы можете выполнить тестовый прогон, если хотите, хотя в этом нет особой необходимости, поскольку вы работаете с изображением. Вы можете указать размер в килобайтах, мегабайтах или гигабайтах используя символ k, Mили G, соответственно:

ntfsresize -cnvs <size> <image file> 

Например:

$ ntfsresize -cnvs 256M disk.img  ntfsresize v2011.4.12 (libntfs-3g) 

Нет вывода - это хороший вывод! Теперь сделайте это по-настоящему:

ntfsresize -vs <size> <image file> 

Последний пример:

$ ntfsresize -vs 256M disk.img  ntfsresize v2011.4.12 (libntfs-3g) Device name : disk.img NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 511996416 bytes (512 MB) Current device size: 512000000 bytes (512 MB) New volume size : 255996416 bytes (256 MB) Checking for bad sectors ... Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 4 MB (0.6%) Collecting resizing constraints ... Needed relocations : 625 (3 MB) WARNING: Every sanity check passed and only the dangerous operations left. Make sure that important data has been backed up! Power outage or computer crash may result major data loss! Are you sure you want to proceed (y/[n])? y Schedule chkdsk for NTFS consistency check at Windows boot time ... Resetting $LogFile ... (this might take a while) Relocating needed data ... Relocate record 1:0x80:00000001:0x00000000:0x0000f423 --> 0x00007a11 Relocate record 2:0x80:00000624:0x00000000:0x0000f424 --> 0x00007a12 100.00 percent completed Updating $BadClust file ... Updating $Bitmap file ... Updating Boot record ... Syncing device ... Successfully resized NTFS on device 'disk.img'. You can go on to shrink the device for example with Linux fdisk. IMPORTANT: When recreating the partition, make sure that you 1) create it at the same disk sector (use sector as the unit!) 2) create it with the same partition type (usually 7, HPFS/NTFS) 3) do not make it smaller than the new NTFS filesystem size 4) set the bootable flag for the partition if it existed before Otherwise you won't be able to access NTFS or can't boot from the disk! If you make a mistake and don't have a partition table backup then you can recover the partition table by TestDisk or Parted's rescue mode. 

Это оно! Теперь вы можете скопировать этот образ диска на новое устройство.

Хм ... логический раздел находится внутри расширенного раздела. Должен ли я сам создавать логический раздел при создании копии? endolith 12 лет назад 0
Вчера вечером я использовал resize2fs для файла изображения ext3, а сам файл впоследствии уменьшился в размере! :) Я думал, что это будет отдельный шаг, потому что файловая система не совпадает с разделом. endolith 12 лет назад 0
@endolith: Да, `dd` логический раздел. Если вы сделали расширенный раздел, вы получите все логические разделы внутри него! Patches 12 лет назад 0
@Patches: Ну, там только один логический раздел, того же размера. :) endolith 12 лет назад 0
@endolith: Тем не менее, я думаю, `расширение расширенного раздела принесет дополнительную информацию, которая запутает` e2fsprogs` и `ntfsprogs`. Они ничего не знают о разделах, как вы обнаружили ранее. Patches 12 лет назад 1
@Patches: Да, это то, что я понял endolith 12 лет назад 0
0
uSlackr

Не могли бы вы изменить его размер с помощью GParted, а затем использовать Clonezilla, чтобы переместить раздел на новый диск?

Я не хочу изменять его размер на месте. Не хочу испортить оригинал, если мне не нужно. endolith 12 лет назад 2
0
Mawg

Я использую GParted много, много лет, и никогда не терял немного. Мне также нравится бесплатное домашнее издание Easus для Windows.

Насколько большой / маленький ваш раздел? Можете ли вы скопировать данные на USB / DVD / бесплатную онлайн-систему хранения, чтобы не потерять их, а затем изменить их размер на месте? Два вышеупомянутых инструмента не потеряют ваши данные, если вы позволите им работать до конца.

Вы говорите I've resized partitions in GParted before- так зачем волноваться сейчас? И DD сделает немного для битовой копии ... так что вам все равно придется изменить размер (сначала дефрагментируйте).

Я преобразовываю раздел с диска A (который мне нужен только для чтения) в файл образа на диске C, меняю его размер, а затем перемещаю в раздел на диске B, который меньше, чем A (поэтому мне нужно изменить размер первый). endolith 12 лет назад 0