У меня есть образ диска RAW, который имеет два раздела, с файловой системой ext2 и ext3 соответственно. Я хочу добавить гигабайт к размеру последнего раздела и изменить размер его файловой системы. Как я могу это сделать?
1 ответ
Во-первых, в этом процессе есть риск, и все может немного отличаться в зависимости от некоторых сделанных мной предположений, которые могут быть ошибочными. СОЗДАЙТЕ СВОИ ДАННЫЕ, прежде чем пытаться это сделать.
Примечание о ниже: Шаги 3 - 6 можно было бы избежать, если вы используете что-то вроде gparted для автоматизации этих шагов с помощью графического интерфейса.
После резервного копирования выполняются следующие шаги:
Убедитесь, что изображение отключено и не используется.
Разверните размер образа виртуального диска. Я обычно использую qemu-resize, чтобы сделать это. Вы можете, вероятно, просто dd -bs = X count = y >> iso.img, чтобы расширить изображение. Двойная стрелка очень важна, единственная стрелка уничтожит ваше существующее изображение.
В зависимости от ваших инструментов, вам может понадобиться или не потребоваться создание петлевого устройства для преобразования необработанного образа в виртуальный диск. Для этого вы можете использовать losttup /dev /loop0 /path /to /block - это создаст /dev /loop0, который вы затем сможете использовать вместо ссылки на базовый файл.
Используйте ваш менеджер разделов, чтобы изменить размер диска. Я обычно использую fdisk. Первым шагом здесь является выгрузка информации о разделах. второй шаг - удалить последний раздел и воссоздать его, используя идентичный начальный блок, и убедиться, что атрибут типа файловой системы правильный, а флаг загрузки установлен правильно (возможно, выключен). Затем вы можете записать это на диск.
Введите kpartx /dev /loop0 - это создаст /dev /mapper /loop0pX, чтобы вы могли напрямую получить доступ к разделам.
используйте resize2fs /dev /mapper /loop0pX, чтобы изменить его размер. Обратите внимание, что эта команда может называться как-то иначе. resize4fs является распространенной альтернативой.
При необходимости используйте dmsetup remove /dev /mapper /loop0pX
Используйте losttup -D /dev /loop0, чтобы удалить блочное устройство.