I'm using LVM with two logical volumes:
- First LV is mounted to the root directory
/
- Second LV is mounted to
/var/log
directory
Those two LVs are based on a physical volume /dev/sda3. The device /dev/sda is using a GPT partition table.
My purpose is to resize the partition /dev/sda3 to occupy all the free memory on the disk.
For that I used gdisk
command:
This is the current partition table I have:
Command (? for help): p
Disk /dev/sda: 4294967296 sectors, 2.0 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 546DEB45-C1DE-402B-BB51-4011AC159B4F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4294967262
Partitions will be aligned on 8-sector boundaries
Total free space is 4188012544 sectors (2.0 TiB)
Number Start (sector) End (sector) Size Code Name
1 34 614433 300.0 MiB EF00
2 614434 17386294 8.0 GiB 8200
3 17386295 106954718 42.7 GiB 8E00
This is what I did to resize the 3rd partition:
Command (? for help): d
Partition number (1-3): 3
Command (? for help): n
Partition number (3-128, default 3): 3
First sector (17386295-4294967262, default = 17386296) or {+-}size{KMGTP}:
Last sector (17386296-4294967262, default = 4294967262) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Changed type of partition to 'Linux LVM'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
Indeed, the 3rd partition has a new size:
Command (? for help): p
Disk /dev/sda: 4294967296 sectors, 2.0 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 546DEB45-C1DE-402B-BB51-4011AC159B4F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4294967262
Partitions will be aligned on 8-sector boundaries
Total free space is 1 sectors (512 bytes)
Number Start (sector) End (sector) Size Code Name
1 34 614433 300.0 MiB EF00
2 614434 17386294 8.0 GiB 8200
3 17386296 4294967262 2.0 TiB 8E00 Linux LVM
Now, I need to inform the kernel of the new change in the partition table.
To my understanding there are three options:
partprobe
:
Error: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
partx -uv /dev/sda
:
partition: none, disk: /dev/sda, lower: 0, upper: 0
/dev/sda: partition table type 'gpt' detected
/dev/sda: partition #1 resized
/dev/sda: partition #2 resized
/dev/sda: partition #3 resized
partx: /dev/sda: updating partition #3 failed: Invalid argument
partx: /dev/sda: error updating partition 3
reboot
: The machine is not recovering and I entered a KDB shell.
Q: What am I doing wrong and what is the proper way to increase the size of the partition /dev/sda3?
BTW, I noticed that when I use a smaller disk like 100GiB (instead of the 2TiB I used earlier), then the command partx -uv /dev/sda
is working without raising an error (partprobe
is still complaining). How can this be explained?
Appreciating your help!