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

Как увеличить корневой раздел на гостевом KVM

У меня есть гость kvm, как показано ниже, гостевой диск /dev/vda на самом деле это файл qcow2 в Host

[root@guest ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@guest ~]# uname -a
Linux guest 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

[root@guest ~]# parted -l
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  8590MB  8589MB  primary  xfs          boot

Но я только вижу 8G с участием dfкоманда, Как я могу увеличить корневой раздел до 64G? Я попробовал xfs_growfs /dev/vda1, но не работает

[root@guest ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       8.0G  1.1G  6.9G  14% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G   17M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/0

Во-первых, это могло быть вообще не связано с виртуализацией. Я думаю, вы используете один раздел 8 ГБ на диске 64 ГБ, как сообщает parted.

Если вам действительно нужно увеличить этот раздел, вы должны запустить его, чтобы увеличить единственный раздел, который у вас есть. Обычно я использую fdisk не только по историческим причинам. Но с parted должно получиться примерно так:

parted /dev/vda1 resizepart 1 64G

Только позже ты убежишь xfs_growfs чтобы воспользоваться дополнительной комнатой. Как вариант, вы можете запустить его в интерактивном режиме, выполнив сначала команду для отображения секторов:

(parted) unit s

затем команда для отображения размера диска в секторах (фактический размер диска):

(parted) print
...
Disk /dev/vda: (the number of sectors here)

и, наконец, команда для изменения размера раздела №1 до этого числа.

Если в parted не предусмотрена команда изменения размера, у вас есть только один вариант: вы записываете номер начального блока, тип раздела (основной), идентификатор раздела (должен быть 83), затем удаляете раздел и воссоздаете его с помощью именно тот же начальный блок, тип и идентификатор, а конечный блок должен быть установлен как последний доступный (как сообщает parted команда).

Как вариант вы можете использовать fdiskпри условии, что инструмент доступен. В этом случае вам следует запустить:

sudo fdisk / dev / vda

и дать команду p чтобы распечатать текущую таблицу разделов. Например:

Disk /dev/sda: 111,8 GiB, 120034123776 bytes, 234441648 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: 0x00070c95

Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *     2048 218028031 218025984  104G 83 Linux

С участием fdisk вы просто удаляете раздел и создаете его заново: вам будет предложено сделать его как можно больше.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-234441647, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-234441647, default 234441647): 

Created a new partition 1 of type 'Linux' and of size 111,8 GiB.

Command (m for help): p
Disk /dev/sda: 111,8 GiB, 120034123776 bytes, 234441648 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: 0x00070c95

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 234441647 234439600 111,8G 83 Linux

Затем вы дадите команду w для записи изменений на диск. Перед расширением файловой системы настоятельно рекомендуется перезагрузка.

Наконец, я предлагаю вам использовать df -H вместо того df -h так что показанные числа будут соответствовать числам parted -l.