Как изменить размер разделов в полном образе жесткого диска?

8

Я сделал полный образ жесткого диска, используя:

dd if=/dev/sda of=/home/user/harddriveimg bs=4M

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

Поскольку я менее чем знаком с командной строкой parted, я попытался:

gparted /home/user/harddriveimg

При загрузке таблицы разделов не удалось найти сами разделы, например, harddriveimg0.

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

Таймс-сквер
источник
1
Если вы хотите получить доступ к отдельным разделам из файла образа диска как к блочным устройствам (например, для их монтирования), загляните в kpartx .
Селада
@Celada, это похоже на хорошее решение! Является ли kpartx просто оболочкой для partx?
Таймс Сквер
Я считаю, что это partxработает только с реальными дисками, потому что он использует магию обнаружения разделов на основе ядра, тогда как kpartxиспользует устройство отображения, общий и более мощный механизм для создания блочных устройств в ядре.
Селада
@Celada, kpartxне использует ядро ​​для обнаружения таблицы разделов, но информирует ядро ​​о них, поэтому для него требуется устройство с возможностью разделения, такое как устройство с циклом.
psusi 26.12.12

Ответы:

3

Вам необходимо связать петлевое устройство с файлом:

sudo losetup /dev/loop0 /home/user/harddriveimg

Затем запустите gparted на этом.

psusi
источник
Это, к сожалению, не работает. Gparted по-прежнему ищет / dev / loop0p1 для первого раздела, указанного в таблице разделов, и так далее.
Таймс Сквер
@Timesquare, тогда кажется, что ваш libparted не работает. Какую версию вы используете и какой дистрибутив?
psusi 27.12.12
Моя libparted версия 2.0.0 на Archlinux. Я полагаю, что проблема в методе Gparted выбора блочного устройства, связанного с данной записью раздела. (Gparted - версия 0.14.1)
Timesquare
@Timesquare, нет, это правильное блочное устройство для раздела. Вам нужно расстаться 3.0 или позже.
psusi 28.12.12
Если я правильно понимаю, что вы говорите, проблема кроется в другом. После использования losttup, как вы предложили, блочные устройства / dev / loop0p1, / ​​dev / loop0p2 ... не существуют.
Таймс Сквер