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

Расширение раздела на диске VMware в Linux

У меня проблемы с расширением диска. Я использую виртуальную машину VMware Debian 9 на хосте ESXi.

После увеличения размера виртуального диска на 32 ГБ и перезагрузки виртуальной машины я вижу:

bob@apollo:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0   64G  0 disk 
├─sdb1   8:17   0   16G  0 part /var/lib/jenkins
└─sdb2   8:18   0   16G  0 part /var/www

bob@apollo:~$ mount | grep sdb
/dev/sdb2 on /var/www type ext4 (rw,relatime,data=ordered)
/dev/sdb1 on /var/lib/jenkins type ext4 (rw,relatime,data=ordered)

bob@apollo:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

GPT PMBR size mismatch (67108863 != 134217727) will be corrected by w(rite).
GPT PMBR size mismatch (67108863 != 134217727) will be corrected by w(rite).

Command (m for help): p

Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 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: gpt
Disk identifier: 513133B6-1030-427A-8950-E43374665229

Device        Start      End  Sectors Size Type
/dev/sdb1      2048 33554431 33552384  16G Linux filesystem
/dev/sdb2  33554432 67106815 33552384  16G Linux filesystem

Техника, о которой я узнал, скрываясь на этом сайте, заключается в использовании fdisk для удаления раздела и создания нового, большего размера. Я надеюсь, что необходимая запись также решит несоответствие размера GPT PMBR, которое я вижу с помощью fdisk.

bob@apollo:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

GPT PMBR size mismatch (67108863 != 134217727) will be corrected by w(rite).
GPT PMBR size mismatch (67108863 != 134217727) will be corrected by w(rite).

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (33554432-67108830, default 33554432): 
Last sector, +sectors or +size{K,M,G,T,P} (33554432-67108830, default 67108830): 134217728
Value out of range.
Last sector, +sectors or +size{K,M,G,T,P} (33554432-67108830, default 67108830): 

Created a new partition 2 of type 'Linux filesystem' and of size 16 GiB.
Partition #2 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): w
GPT PMBR size mismatch (67108863 != 134217727) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
bob@apollo:~$ 

Так что здесь произошло много чего

  1. / dev / sdb теперь содержит 134 217 728 секторов. Но «допустимый диапазон» доходит только до старых 67 108 830.
  2. Когда я «воссоздаю» раздел 2 с его исходным размером и пытаюсь записать изменения, fdisk вылетает с «Недействительным аргументом».

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

fdisk плохо работает с таблицами GPT. Сначала отремонтируйте таблицу GPT с помощью parted:

bob@apollo:~$ sudo parted -l

Warning: Not all of the space available to /dev/sdb appears to be used, you can
fix the GPT to use all of the space (an extra 67108864 blocks) or continue with
the current setting? 
Fix/Ignore? F                                                             
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  17.2GB  17.2GB  ext4         primary
 2      17.2GB  34.4GB  17.2GB  ext4         primary

Во-вторых, остановите все службы, которые обращаются к этим дискам, и отключите диск:

bob@apollo:~$ sudo systemctl stop jenkins.service
bob@apollo:~$ sudo systemctl stop apache2.service
bob@apollo:~$ sudo umount /dev/sdb1
bob@apollo:~$ sudo umount /dev/sdb2

В-третьих, расширьте раздел, как вы изначально планировали:

bob@apollo:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 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: gpt
Disk identifier: 513133B6-1030-427A-8950-E43374665229

Device        Start       End   Sectors Size Type
/dev/sdb1      2048  33554431  33552384  16G Linux filesystem
/dev/sdb2  33554432 134217694 100663263  48G Linux filesystem

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (33554432-134217694, default 33554432): 
Last sector, +sectors or +size{K,M,G,T,P} (33554432-134217694, default 134217694): 

Created a new partition 2 of type 'Linux filesystem' and of size 48 GiB.
Partition #2 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Удивительно, но ничего перемонтировать из /dev/sdb, это делается после записи в / dev / sdb. Если вы просмотрите точки монтирования, данные все равно должны быть там. Снова запустите свои службы, чтобы все заработало, как было.