Змінити розмір зображення розділу з GParted?


15

Я змінив розмір розділів у GParted раніше. Тепер я хотів би перенести велику, але в основному порожню секцію на менший диск. Замість того, щоб змінити розмір на місці, я вважаю за краще зробити копію на 3-му накопичувачі (зображення диска за допомогою dd), змінити розмір копії, а потім додати копію на новий диск. Але я не думаю, що Gparted працює на зображеннях дисків? Як би я це зробив? Чи можу я використовувати інструменти, які GParted використовує безпосередньо?

О-о! Або я можу використовувати певну річ, щоб зробити файл зображення схожим на фізичний диск, на якому може працювати gparted?


Відповіді:


3

Ви не можете цього зробити з 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.

Це воно! Тепер ви можете скопіювати це зображення диска на новий пристрій.


Гммм ... логічний розділ знаходиться всередині розширеного розділу. Чи повинен я створювати логічний розділ під час створення копії?
ендоліт

Я використовував resize2fs у файлі зображень ext3 вчора ввечері, а сам файл згодом зменшився! :) Я подумав, що це буде окремим кроком, оскільки файлова система не є такою ж, як розділ.
ендоліт

@endolith: Так, ddлогічний розділ. Якщо ви зробили розширений розділ, ви отримаєте всі логічні розділи всередині нього!
Патчі

@Patches: Ну, є лише один логічний розділ всередині нього. :)
endolith

1
@endolith: Все-таки я думаю, ddщо розширений розділ додасть додаткову інформацію, яка буде плутати e2fsprogsі ntfsprogs. Вони нічого не знають про перегородки, як ви виявили раніше.
Патчі

14

Я не впевнений, яка була ситуація 5 років тому, але сьогодні це торт.

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

Тепер ви можете з'їсти торт.


0

Не могли б ви змінити розмір на місці з GParted, а потім застосувати Clonezilla для переміщення розділу на новий диск?


2
Я не хочу змінювати його розмір на місці. Не хочу накручувати оригінал, якщо мені не доведеться.
ендоліт

0

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

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

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


Я перетворюю розділ з Диска A (який я хочу лише для читання) у файл зображення на Диску С, змінює його розмір, а потім переміщую його до розділу на Диску B, який менший за A (тому мені потрібно змінити розмір спочатку).
ендоліт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.