Назад | Перейти на главную страницу

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), но никакие предыдущие не могут из-за номеров начальных и конечных блоков.

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

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, чтобы занять это пространство?

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

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

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

Сам ход может быть выполнен с parted.

Чтобы узнать, как это сделать: перейдите по следующим ссылкам:

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', это запустит графический интерфейс, и оттуда вы сможете просматривать различные диски / разделы и вносить изменения или в командной строке вам нужно будет пройти три шага обработать. Поэтому я просто использую графический интерфейс, быстрый и простой. Надеюсь это поможет