Как расширить раздел CentOS 5 на VMware?


15

У меня есть виртуальная машина CentOS 5, и я добавил еще 20 ГБ к размеру диска. Как инициализировать и расширить доступное пространство?

Я также попытался загрузить GParted, но диск заблокирован; как мне его разблокировать?

введите описание изображения здесь

введите описание изображения здесь

Ответы:


25

Вы не сможете использовать GParted, потому что файловая система находится на LVM, а GParted не поддерживает это.

Во-первых, возьмите резервную копию VM. Затем выполните следующую команду как «root» из командной строки.

  1. Похоже, вы уже перезагрузились, но на всякий случай убедитесь, что ядро ​​распознает больший диск

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. Изменить размер второго раздела с помощью fdisk

    fdisk /dev/sda
    p     # print current
    d     # delete
    - 2
    n     # create
    - p   # primary partition
    2     # partition number
    - default first/last cylinders
    t     # change partition id
    - 2
    - 8e (hex code)
    p     # print the current again to verify it's expanded
    w     # write changes
    
  3. Перезагрузите виртуальную машину

    shutdown -r now
    
  4. Как только оно будет восстановлено, измените размер физического тома LVM

    pvresize /dev/sda2
    
  5. Теперь измените размер логического тома LVM ( ПРИМЕЧАНИЕ. Я не могу расшифровать, какое имя вашего логического тома основано на снимках экрана, и, следовательно, я предполагаю LogVol00. Вы можете определить это, запустив lvdisplay.)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. Наконец, давайте изменим размер файловой системы

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. Убедитесь, что файловая система больше

    df -h
    
  8. Выполнено


После перезагрузки нет необходимости fdisk. Используйте partprobeтам. SCSI-повторное сканирование интересно - работает ли оно на используемом диске?
Нильс

1
Поздняя вечеринка: p У меня были проблемы с partprobe, не перечитывающим используемые разделы, поэтому я перезагружаюсь почти во всех случаях. Повторное сканирование SCSI прекрасно работает с используемыми дисками. Вы можете запустить, dmesgчтобы подтвердить, что диск виден как новый размер
TheDude

грустно, что нет ничего похожего на scsi-rescan для xen-pv-дисков. Но это уже другая тема ...
Нильс

1
Большое спасибо, ваши инструкции сработали отлично!
Крис Хаас

Что я должен искать после шага 1 (echo & rescan)? Как я могу узнать, распознает ли ядро ​​лишний пробел или нет?
Джефф

4

Приведенные ниже шаги расширили мой раздел с 12 ГБ до 26 ГБ на VMWare EXSi 5.5 под управлением Centos 6 EXT4 VPS.

1) Определите имя устройства, которое по умолчанию / dev / sda, и подтвердите новый размер, выполнив команду:

# fdisk -l

2) Получить список разделов для устройства / dev / sda:

# ls -al /dev/sda*

brw-rw---- 1 root disk 8, 0 Dec 29 15:32 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 29 15:32 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 29 15:32 /dev/sda2

3) Создать новый основной раздел

# fdisk /dev/sda

Then type:
  n (enter) [create new partition]
  p (enter) [primary partition]
  3 (enter) [next available number from listed /dev/sda partitions in 2)
  (enter)   [start cylinder]
  (enter to use all available physical space) or specify size in +cylinders, +size{K,M,G}
  t (enter) [change partition type]
  3 (enter) [selecting /dev/sda3 partition]
  8e (enter) [this sets partition type to Linux LVM or type L then enter to see list of types] 
  w (enter)

  The partition table has been altered!

4) Перезагрузите Centos 6.X, затем войдите в систему с правами root

# reboot

5) Убедитесь, что новый раздел готов и введите «8e»:

# fdisk -l

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2089    16264192   8e  Linux LVM
/dev/sda3            2089        3916    14678054   8e  Linux LVM

6) Создать физический том:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7) Узнайте название группы томов:

# vgdisplay

--- Volume group ---
VG Name               vg_app1
...

8) Расширить физический объем:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9) Расширить существующую группу томов до нового физического тома (+ 100% БЕСПЛАТНО можно изменить до желаемого размера). Поскольку мы расширяем корневой раздел, следовательно, указываем на lv_root в группе томов vg_app1.

# lvextend -l +100%FREE /dev/vg_app1/lv_root

Size of logical volume vg_app1/lv_root changed from 11.63 GiB (2978 extents) to 25.63 GiB (6561 extents).
Logical volume lv_root successfully resized

10) Изменить размер логического корневого тома:

# resize2fs /dev/vg_app1/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_app1/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_app1/lv_root to 6718464 (4k) blocks.
The filesystem on /dev/vg_app1/lv_root is now 6718464 blocks long.

Примечание: используйте ext2online вместо resize2fs, если это виртуальная машина Red Hat.

11) Проверьте доступное пространство:

# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_app1-lv_root
                      26G   10G   14G  42% /
tmpfs                 9.8G     0  9.8G   0% /dev/shm
/dev/sda1             477M   88M  364M  20% /boot

2

Легко. Войдите в свою виртуальную машину как root. Введите "fdisk -l" - если вы уже видите новый размер диска - хорошо.

Если нет - попробуйте partprobe- если вы все еще не видите новый размер диска - перезагрузите компьютер.

Сейчас fdisk /dev/sda

  1. Запишите свой стартовый цилиндр для второго раздела.
  2. «Удалить» второй раздел
  3. Воссоздать второй раздел, тот же пусковой цилиндр, последний цилиндр в конце
  4. установите тип воссозданного раздела на 8e (LVM)
  5. запишите изменения и выйдите из fdisk
  6. partprobe
  7. pvresize /dev/sda2

Теперь ваш VG VolGroup00 имеет на 20 ГБ больше места. Делай с ней что хочешь. Точно так же, как в физической системе (измените размер LV, а затем, например, измените размер FS).


echo 1> / sys / class / scsi_disk / 0 \: 0 \: 0 \: 0 / device / rescan выполняет магию повторного сканирования без перезагрузки
andrej

@andrej Даже если диск используется?
Нильс

Да, это магия низкого уровня на стороне контроллера, поэтому она будет работать и на смонтированных дисках. Вам нужно только быть уверенным, что вы увеличили накопитель, чтобы не вычесть из него пространство.
Андрей

2

Загрузите Gparted live CD ISO . Затем подключите ISO к CentOS и загрузитесь с live cd (перейдите в настройки виртуальной машины, выберите «CD / DVD» и выберите «Использовать ISO» на правой панели). Затем выберите раздел, размер которого вы хотите изменить. Нажмите на меню раздела (верхняя строка меню), затем нажмите «Изменить размер». Затем выберите «Применить все операции» в меню «Редактировать».


Я загрузил, но диск имеет значок блокировки .. Я прикрепил изображение
Андрей


Благодарность! +1 за это предложение Particion Magic-like.
jstuardo

0

Здесь я беру пример раздела, чтобы расширить диск с 5 ГБ до 7 ГБ без потери данных. Вы можете изменить в зависимости от вашего свободного места.

Прежде чем увеличивать диск, я взял следующие данные из виртуальной машины Linux:

# df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test
# fdisk -s /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
 255 heads, 63 sectors/track, 652 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1         652     5237158+  83  Linux

Выключите ВМ сейчас.

Теперь я собираюсь увеличить существующий виртуальный диск ( /dev/sdb) из VMware из командной строки. Примечание: эта задача должна выполняться только при выключенном ВМ.

Перейти к месту расположения виртуального диска.

# vmware-vdiskmanager -x  7Gb RedHatEnterprise_Linux_4-0.vmdk

Теперь будет расти виртуальный диск до 7Gb

Теперь вам нужно включить виртуальную машину. Войдите в виртуальную машину, используя PuTTY или консоль от имени пользователя root.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test

Это все еще показывает старый размер. Размонтируйте раздел, который вы собираетесь увеличить.

# umount /dev/sdb1

Запустите восстановление файловой системы на диске

# fsck -n /dev/sdb1

Теперь можно удалить журнал с диска и превратить его в файловую систему ext2.

# tune2fs -O ^has_journal /dev/sdb1

Теперь начните разбиение, /dev/sdbчтобы назначить увеличенное пространство /dev/sdb1. Примечание: не паникуйте, вы не потеряете данные здесь.

Я удаляю существующее /dev/sdb1и воссоздаю вместе с доступным свободным пространством.

# fdisk /dev/sdb
Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition’s system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-913, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-913, default 913):
Using default value 913

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         913     7333641   83  Linux

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Теперь перезапустите машину Linux, чтобы эффект вступил в силу (мы также можем использовать partprobe, настоятельно рекомендуется перезапустить машину).

# shutdown now -r

Теперь еще раз проверьте расширенную файловую систему, если вы пропустите этот шаг, resize2fsкоманда порекомендует запустить ее.

# e2fsck -f /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 13/655360 files (7.7% non-contiguous), 22121/1309289 blocks

Теперь измените размер файловой системы.

# resize2fs /dev/sdb1
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/sdb1 to 1833410 (4k) blocks.
The filesystem on /dev/sdb1 is now 1833410 blocks long.

Теперь проверьте файловую систему.

# fsck -n /dev/sdb1
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 13/917504 files, 30538/1833410 blocks

Теперь воссоздайте раздел в формате ext3.

# tune2fs -j /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Creating journal inode: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Перезагрузите компьютер Linux один раз, чтобы эффективно использовать файловую систему ext3.

# shutdown -r now

Вы снова авторизуетесь в Linux с правами суперпользователя. Теперь вы можете найти раздел увеличен до 7 ГБ.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             6.8G  2.1G  4.5G  32% /
/dev/sda1              99M   12M   83M  13% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sdb1             6.9G   39M  6.7G   1% /mnt/test

Почему вы удаляете, а затем восстанавливаете журнал? Это не обязательно, файловая система ext3 может быть расширена так же, как файловая система ext2. Кроме того, вам не хватает одной большой части головоломки: раздел для расширения находится на LVM.
Жиль "ТАК - перестань быть злым"

0

Я только что сделал это в VMware с CentOS 6.4. Ответ № 1 правильный, но отсутствует один шаг, который я обнаружил.

В Gparted у моего тоже был значок замка.

В строке с разделом, на которой есть значок блокировки, щелкните правой кнопкой мыши и выберите «деактивировать». Это делает замок уйти.

Затем вы можете щелкнуть правой кнопкой мыши и изменить размер раздела.

Затем примените изменения.

Затем щелкните правой кнопкой мыши и выберите «активировать».


0

Вы можете сделать шаги 5 и 6 единым, добавив -rпереключатель в lvresize. Это lvresizeзапустит resize2fsавтоматически с необходимыми параметрами:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00

Добро пожаловать в * nix StackExchange!

0

Для CentOS 6.6 на VMWare я сделал следующее, чтобы увеличить его с 30 ГБ до 40 ГБ (обратите внимание, что я не использовал LVM, а просто стандартные разделы Linux (Id 83)):

ПРИМЕЧАНИЕ. Сначала сделайте резервную копию своей виртуальной машины на случай потери данных. Вы не должны терять данные, если все идет хорошо.

  1. VMWare дал мне графический интерфейс, когда я редактировал свою виртуальную машину перед ее запуском, чтобы изменить размер доступного для виртуальной машины. Я использовал это и расширил его до 40 ГБ.
  2. Затем я загрузил CentOS и запустил 'fdisk -l' от имени пользователя root. Я мог видеть новое пространство. Затем я запустил 'df -h', чтобы убедиться, что мой старый раздел все еще там.
  3. Затем я запустил «cfdisk / dev / sda» и получил текстовый графический интерфейс, который отображал мои разделы. В моем случае размер раздела, который я хотел изменить, был / dev / sda3 и был последним разделом.
  4. Затем я использовал cfdisk, чтобы удалить раздел, а затем создать новый со всем доступным пространством. Я написал свои изменения и ушел.
  5. Затем я перезагрузил виртуальную машину (выключение сейчас -r).
  6. После перезагрузки я использовал 'resize2fs / dev / sda3', где / dev / sda3 - воссозданный раздел. Это автоматически завершило изменение размера для меня.
  7. Теперь с 'df -h' я вижу новый полный размер.

Информация найдена из комбинации ответов на этой странице и на http://positon.org/resize-an-ext3-ext4-partition


0

Другой подход заключается в создании LVM на полном диске вместо раздела.

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

blockscan --rereadpt /dev/<PV disk
pvresize /dev/<PV disk>
# The associated VG is now resized
lvresize /dev/mapper/<LV> -r -l +100%FREE

0

Иногда вам нужно сделать

echo "- - -" >  /sys/class/scsi_host/host<n>/scan

Это зависит от того, создаете ли вы новый диск или расширяете существующий, в зависимости от того, какой тип повторного сканирования требуется.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.