Redhat изменить размер раздела

Прежде всего, я абсолютный новичок в Linux, но мне было поручено автоматизировать процесс изменения размера раздела в RHEL 6.5. Сервер находится как виртуальная машина в VMWare, и мы пытаемся организовать действие, при котором существующий файл VMDK расширяется, а размеры разделов в этом VMDK изменяются автоматически.

В качестве тестового примера VMDK рассматривается в системе как /dev/sdb. Размер этого скажем 5 ГБ. Теперь у меня есть 2 раздела: /dev/sdb1, /dev/sdb2, sdb1 занимает 1 ГБ, а sdb2 занимает 5 ГБ

Если кто-то теперь увеличит размер VMDK с 5 ГБ до 10 ГБ и укажет, что дополнительное место должно быть в / dev / sdb1, как я могу это сделать? До сих пор мне удалось создать процесс, при котором последний раздел может быть изменен без проблем (т. Е. / Dev/sdb2), но любые предыдущие не могут из-за номеров блоков Start и Ending.

Мой процесс выглядит следующим образом:

1) Увеличьте размер VMDK. 2) Запустите echo "1" > /sys/class/scsi_device/0:0:0:0/device/rescan, чтобы выбрать диск с измененным размером. 3) Используя fdisk, удалите раздел и создайте его заново.

Это прекрасно работает, если изменяемый раздел является последним разделом, но если это первый или второй раздел, то раздел просто воссоздается таким, каким он был. Есть ли инструмент, который может сделать это разумно?

Это вывод fdisk в моей среде:

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
67 heads, 62 sectors/track, 5048 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf3405e93

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         510     1059239   83  Linux
/dev/sdb2             511        2524     4183078   83  Linux

Как видите, sdb1 занимает 1 ГБ, а SDB2 - 4 ГБ, но на диске около 5 ГБ "свободно". Теперь, как мне изменить это так, чтобы sdb1 занимал это оставшееся место? Если я удаляю sdb1 и воссоздаю его, он делает тот же раздел. Я могу легко создать новый раздел, чтобы занять это пространство, или даже изменить sdb2, чтобы занять оставшееся пространство (просто удалить sdb2 и воссоздать его с помощью fdisk), но вопрос в том, как мне изменить sdb1, чтобы занять это пространство?

Надеюсь, мой вопрос ясен, и заранее спасибо

2 ответа

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

Однако в зависимости от вашей файловой системы вам не нужно удалять ее, а "только" размонтировать, а затем сделать resize2fs (по крайней мере для ext2/3/4), после выполнения вышеуказанного шага.

Сам ход мог быть сделан с parted,

Как это сделать: обратитесь к следующим ссылкам:

Раздельное руководство пользователя gnu.org и linuxquestions.org

Нечто подобное может сработать (вам нужно изменить свои номера:

parted move 2 -125 -0
parted resize 1 0.063 -125

Однако после версии 2.4. parted не содержит move поэтому вам может понадобиться другой инструмент (или он переименован в другую функцию, которую я не нашел)

Руководство по Qoute от gnu.org

Обратите внимание, что после версии 2.4 были удалены следующие команды: check, cp, mkfs, mkpartfs, move, resize.

Я чувствую вашу боль, я также относительно новичок в Linux, поэтому я понимаю вашу боль. LVM - это путь, который можно легко расширить. Если вы зарегистрированы в Red Hat, вы можете установить графический интерфейс (yum -y install system-config-lvm). После установки в строке CMD запустите 'system-config-lvm', это запустит графический интерфейс, и оттуда вы можете просмотреть различные диски / разделы и внести изменения, или в командной строке вам придется пройти три шага. процесс. Поэтому я просто использую графический интерфейс, который быстрый и простой. Надеюсь это поможет

Другие вопросы по тегам