Як розширити розділ CentOS 5 на VMware?


15

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

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

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

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

Відповіді:


25

Ви не зможете використовувати GParted, оскільки файлова система знаходиться на LVM, а GParted це не підтримує.

По-перше, ВІДПОВІДУЙТЕ РЕКЛАМУ ВМ. Потім виконайте наступне як "корінь" з командного рядка.

  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-Rescan цікавий - чи працює він на використаному диску?
Нілс

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

сумно, що для xen-pv-дисків немає нічого подібного scsi-rescan. Але це вже інша тема ...
Нілс

1
Дуже дякую, ваші інструкції спрацювали прекрасно!
Кріс Хаас

Що я повинен шукати після кроку 1 (відлуння та повторна перевірка)? Як я можу визначити, розпізнає ядро ​​додатковий простір чи ні?
Джефф

4

Наведені нижче кроки розширили мій розділ з 12G до 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

Легко. Заходьте у свій VM як корінь. Введіть "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 виконує магію rescan без перезавантаження
andrej

@andrej Навіть якщо диск використовується?
Нілс

Так, це магія низького рівня з боку контролера, тому вона буде працювати і на встановлених дисках. Ви повинні бути впевнені, що ви збільшили накопичувач, а не віднімати з нього простір.
andrej

2

Завантажте живий компакт-диск Gparted ISO . Потім приєднайте ISO до CentOS та завантажтесь із живого CD (перейдіть до налаштувань віртуальної машини, виберіть “CD / DVD” та виберіть “Використовувати ISO” на панелі праворуч). Потім виберіть розділ, який ви хочете змінити. Клацніть на меню розділів (верхнє рядок меню), а потім натисніть на «Змінити розмір». Потім виберіть "Застосувати всі операції" у меню "Редагувати".


Я завантажив, але на накопичувачі є значок блокування .. Я прикріпив зображення
Андрій


Спасибі! +1 для цієї програми, що нагадує Magic.
jstuardo

0

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

Перш ніж збільшити диск, я взяв такі відомості з Linux VM:

# 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

Вимкніть VM зараз.

Тепер я збираюся збільшити існуючий віртуальний диск (/dev/sdb ) від VMware командного рядка. Примітка: це завдання слід виконувати лише тоді, коли вимкнений комп'ютер вимкнений.

Перейдіть до місця розташування віртуального диска.

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

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

Тепер вам потрібно живити VM. Увійдіть у VM за допомогою PuTTY або консолі як основного користувача.

# 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

Тепер Goig повинен видалити журнал з диска, щоб перетворити його у файлову систему 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 за допомогою привілеїв root. Тепер ви можете знайти розділ, збільшений до 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 дав мені графічний інтерфейс, коли я редагував свій VM перед його запуском, щоб змінити розмір, доступний для VM. Я використав це і розширив його до 40 ГБ.
  2. Потім я завантажив CentOS і запустив 'fdisk -l' як root. Я міг побачити новий простір. Потім я побіг 'df -h', щоб переконатися, що мій старий розділ все ще там.
  3. Потім я запустив "cfdisk / dev / sda" і отримав текстовий графічний інтерфейс, який показав мої розділи. У моєму випадку розділ, який я хотів змінити, був / dev / sda3 і був останнім розділом.
  4. Потім я використовував cfdisk для видалення розділу, а потім створив новий з усім наявним простором. Я написав свої зміни та кинув.
  5. Потім я перезавантажив VM (відключення зараз -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.