Хостинг

Решение проблемы с нередактируемым размером диска KVM Linux / Увеличение диска виртуальной машины битрикс Линукс

Решение проблемы с нередактируемым размером диска KVM Linux / Увеличение диска виртуальной машины битрикс Линукс

🔧 Решение проблемы с нередактируемым размером диска

 Если поле "размер хранилища" неактивно (серое), это означает, что VM запущена или есть снапшоты.

🛑 Шаг 1: Полное выключение VM

bash Скопировать

Закрыть блок

# В самой VM выполните:
sudo shutdown -h now

# Или в Virtual Machine Manager:
# Правый клик на VM → Shut Down (НЕ Suspend!)
 Убедитесь, что статус VM показывает "Shut off", а не "Paused" или "Running"

📸 Шаг 2: Проверка и удаление снапшотов

- В Virtual Machine Manager выберите вашу VM

- Перейдите в View → Snapshots (или нажмите на иконку камеры)

- Если есть снапшоты - удалите их или объедините с основным диском

- Важно: снапшоты блокируют изменение размера диска

💿 Шаг 3: Альтернативный способ через командную строку

 Если GUI не работает, используйте команды:

bash Скопировать

Закрыть блок

# Найти вашу VM
sudo virsh list --all

# Убедиться что VM выключена
sudo virsh shutdown centos9-vm  # замените на имя вашей VM

# Проверить информацию о дисках
sudo virsh domblklist centos9-vm

# Увеличить размер диска (например до 50GB)
sudo qemu-img resize /var/lib/libvirt/images/centos9.qcow2 50G

# Проверить новый размер
sudo qemu-img info /var/lib/libvirt/images/centos9.qcow2

🔄 Шаг 4: Обновление конфигурации VM

 После изменения размера через командную строку:

bash Скопировать

Закрыть блок

# Обновить XML конфигурацию VM
sudo virsh edit centos9-vm
 Или просто перезапустите Virtual Machine Manager.

🆕 Шаг 5: Создание нового диска (если ничего не помогает)

-

	 В Virtual Machine Manager:





	<li>Add Hardware → Storage

	- Create a disk image → укажите нужный размер

	- Device type: VirtIO disk

	- Finish
-
	 Запустите VM и подключите новый диск:

bash Скопировать

Закрыть блок

# Найти новый диск
lsblk

# Создать раздел
sudo fdisk /dev/vdb
# Нажмите: n → p → 1 → Enter → Enter → w

# Создать файловую систему
sudo mkfs.xfs /dev/vdb1

# Создать папку и примонтировать
sudo mkdir /data
sudo mount /dev/vdb1 /data

# Добавить в автозагрузку
echo "/dev/vdb1 /data xfs defaults 0 0" | sudo tee -a /etc/fstab

🔍 Диагностика проблемы

 Проверьте следующее:

bash Скопировать

Закрыть блок

# Статус VM
sudo virsh list --all

# Информация о диске
sudo qemu-img info /var/lib/libvirt/images/ваш-диск.qcow2

# Проверка снапшотов
sudo virsh snapshot-list centos9-vm

⚡ Быстрое решение:

- Полностью выключите VM (не suspend!)

- Удалите все снапшоты если есть

- Перезапустите Virtual Machine Manager

- Попробуйте изменить размер снова


 Если поле все еще неактивно, используйте командную строку с `qemu-img resize`.

Проверка состояния диска после увеличения

Шаг 1: Проверить текущее состояние

bash Скопировать

Закрыть блок

# Проверить размер файловой системы
df -h

# Проверить структуру дисков
lsblk

# Детальная информация о дисках
fdisk -l
 Вы увидите что-то вроде:
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda           8:0    0   50G  0 disk          # ← диск увеличен до 50GB
├─vda1        8:1    0    1G  0 part /boot
└─vda2        8:2    0   29G  0 part          # ← раздел остался 29GB
  ├─cs-root 253:0    0   27G  0 lvm  /
  └─cs-swap 253:1    0    2G  0 lvm  [SWAP]

🔧 Расширение раздела (НУЖНО ДЕЛАТЬ!)

Для CentOS 9 с LVM (стандартная установка):

bash Скопировать

Закрыть блок

# 1. Расширить физический раздел
sudo growpart /dev/vda 2

# 2. Проверить что раздел увеличился
lsblk

# 3. Расширить физический том LVM
sudo pvresize /dev/vda2

# 4. Проверить доступное место в группе томов
sudo vgdisplay

# 5. Расширить логический том (корневой раздел)
sudo lvextend -l +100%FREE /dev/cs/root

# 6. Расширить файловую систему XFS
sudo xfs_growfs /

Проверка результата:

bash Скопировать

Закрыть блок

# Проверить новый размер
df -h

# Должно показать примерно 47-48GB вместо 27GB
lsblk

📊 Пошаговая диагностика

1. Установить необходимые утилиты (если нужно):

bash Скопировать

Закрыть блок

# Если growpart не найдена
sudo dnf install cloud-utils-growpart

# Если нужны LVM утилиты
sudo dnf install lvm2

2. Детальная проверка LVM:

bash Скопировать

Закрыть блок

# Информация о физических томах
sudo pvdisplay

# Информация о группах томов
sudo vgdisplay

# Информация о логических томах
sudo lvdisplay

3. Проверка типа файловой системы:

bash Скопировать

Закрыть блок

# Узнать тип ФС
mount | grep " / "

# Или
lsblk -f

🎯 Быстрый скрипт для автоматизации:

bash Скопировать

Закрыть блок

#!/bin/bash
echo "=== DISK EXPANSION SCRIPT ==="
echo "Current disk usage:"
df -h /

echo -e "\nCurrent disk structure:"
lsblk

echo -e "\nExpanding partition..."
sudo growpart /dev/vda 2

echo -e "\nResizing PV..."
sudo pvresize /dev/vda2

echo -e "\nExtending LV..."
sudo lvextend -l +100%FREE /dev/cs/root

echo -e "\nGrowing filesystem..."
sudo xfs_growfs /

echo -e "\nNew disk usage:"
df -h /

echo -e "\nNew disk structure:"
lsblk
 Сохраните как `expand_disk.sh` и запустите:

bash Скопировать

Закрыть блок

chmod +x expand_disk.sh
./expand_disk.sh

⚠️ Важные моменты:

- Обязательно нужно расширять - иначе дополнительные 20GB не будут использоваться

- CentOS 9 использует XFS по умолчанию, а не ext4

- Команды безопасны - они только увеличивают размер

- Данные не потеряются при правильном выполнении

🔍 Если что-то пошло не так:

bash Скопировать

Закрыть блок

# Проверить ошибки в логах
sudo journalctl -xe

# Принудительная проверка диска (только если проблемы)
sudo xfs_repair -n /dev/cs/root  # только проверка
 Начните с команды `df -h` и `lsblk` - покажите результат, чтобы я мог точно сказать, что делать дальше!


[root@nashilocal ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             4.0M     0  4.0M   0% /dev
tmpfs                3.7G     0  3.7G   0% /dev/shm
tmpfs                1.5G  8.7M  1.5G   1% /run
/dev/mapper/cs-root   26G   18G  8.3G  69% /
/dev/vda1            960M  249M  712M  26% /boot
tmpfs                750M  4.0K  750M   1% /run/user/0
[root@nashilocal ~]# lsblk
NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0          11:0    1   2K  0 rom
vda         252:0    0  50G  0 disk
├─vda1      252:1    0   1G  0 part /boot
└─vda2      252:2    0  29G  0 part
  ├─cs-root 253:0    0  26G  0 lvm  /
  └─cs-swap 253:1    0   3G  0 lvm  [SWAP]
[root@nashilocal ~]# fdisk -l
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5fd2cc3d

Device     Boot   Start      End  Sectors Size Id Type
/dev/vda1  *       2048  2099199  2097152   1G 83 Linux
/dev/vda2       2099200 62914559 60815360  29G 8e Linux LVM


Disk /dev/mapper/cs-root: 26 GiB, 27913093120 bytes, 54517760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/cs-swap: 3 GiB, 3221225472 bytes, 6291456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@nashilocal ~]#

✅ Отлично! Диск увеличен, но нужно расширить разделы

 Вижу что:


- Диск vda: увеличен до 50GB ✅

- Раздел vda2: остался 29GB (нужно расширить)

- Корневая ФС: использует только 26GB из 50GB доступных

🔧 Расширяем до полного размера:

Шаг 1: Расширить раздел vda2

bash Скопировать

Закрыть блок

growpart /dev/vda 2

Шаг 2: Проверить что раздел увеличился

bash Скопировать

Закрыть блок

lsblk
# Должно показать vda2 около 49G вместо 29G

Шаг 3: Расширить физический том LVM

bash Скопировать

Закрыть блок

pvresize /dev/vda2

Шаг 4: Проверить доступное место

bash Скопировать

Закрыть блок

vgdisplay | grep "Free"

Шаг 5: Расширить логический том

bash Скопировать

Закрыть блок

lvextend -l +100%FREE /dev/cs/root

Шаг 6: Расширить файловую систему

bash Скопировать

Закрыть блок

xfs_growfs /

Шаг 7: Проверить результат

bash Скопировать

Закрыть блок

df -h
# Должно показать около 46-47GB вместо 26GB для корневой ФС

🚀 Выполните все команды подряд:

bash Скопировать

Закрыть блок

echo "=== Expanding partition ==="
growpart /dev/vda 2

echo -e "\n=== New partition structure ==="
lsblk

echo -e "\n=== Resizing physical volume ==="
pvresize /dev/vda2

echo -e "\n=== Available space in VG ==="
vgdisplay | grep -E "(VG Name|Free)"

echo -e "\n=== Extending logical volume ==="
lvextend -l +100%FREE /dev/cs/root

echo -e "\n=== Growing XFS filesystem ==="
xfs_growfs /

echo -e "\n=== Final result ==="
df -h /
lsblk
 После выполнения у вас должно быть:


- Корневая ФС (/): ~46-47GB вместо 26GB

- Свободное место: ~28GB вместо 8GB

-

🔧 Установим необходимую утилиту

Шаг 1: Установить cloud-utils-growpart

bash Скопировать

Закрыть блок

dnf install -y cloud-utils-growpart

Шаг 2: После установки выполнить расширение

bash Скопировать

Закрыть блок

growpart /dev/vda 2

🛠️ Альтернативный способ через fdisk (если установка не работает):

bash Скопировать

Закрыть блок

# 1. Запустить fdisk
fdisk /dev/vda

# 2. В интерактивном режиме выполнить:
# p          # показать разделы
# d          # удалить раздел
# 2          # выбрать раздел 2
# n          # создать новый раздел
# p          # primary
# 2          # номер раздела
# 2099200    # начальный сектор (тот же что был)
# [Enter]    #ор (по умолчанию - до конца диска)
# t          # изменить тип
# 2          # раздел 2
# 8e         # Linux LVM
# w          # записать изменения

# 3. Перечитать таблицу разделов
partprobe /dev/vda

🚀 Полная последовательность команд:

bash Скопировать

Закрыть блок

# Установить утилиту
dnf install -y cloud-utils-growpart

# Расширить раздел
growpart /dev/vda 2

# Проверить результат
lsblk

# Продолжить с LVM
pvresize /dev/vda2
lvextend -l +100%FREE /dev/cs/root
xfs_growfs /

# Проверить финальный результат
df -h /
 Начните с установки `cloud-utils-growpart` и покажите результат!