If you are trying to increase your disk partition in the Linux Server and you are getting below error then you are hitting the 2TB limit for your disk which was mostly partitioned using DOS/MBR method
NOCHANGE: partition 1 could only be grown by 1 [fudge=2048]
[root@<server> ~]# sudo growpart -v /dev/sdl 1 NOCHANGE: partition 1 could only be grown by 1 [fudge=2048]
MBR
MBR stands for Master Boot Record. An MBR is method of containing information on how a disk’s logical partitions, containing file systems, are organized on the disk. The concept of a MBR is super old.
GPT
GPT stands for GUID Partition Table. GPT is method of containing information on how a disk’s logical partitions, containing file systems, are organized on the disk, this time using universally unique identifiers, which are also known as globally unique identifiers (GUIDs). GPT’s have been with us since the late 2000’s.
GPT is a more advanced partitioning technique that allows large partitions, whereas MBR is limited to 2 TB disk space per partition.
Now since you may have partitioned your disk using “fdisk” instead of “parteed” so your disks partitions are of MBR/DOS type with an upper limit of 2TB
Now you will need to convert your DOS/MBR partitioned disk to GPT type
We have done this using a live disk in running production instances safely, however, it is always important to create system backups. It is important that our disk was not a bootable disk but a normal Block Volume disk that was used for storing database files.
Without converting to GPT we could not take advantage of the entire disk capacity.
Assuming that the disk is /dev/sdb:
# gdisk -l /dev/sdb GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** Warning! Secondary partition table overlaps the last partition by 32 blocks! Try reducing the partition table size by 128 entries. (Use the 's' item on the experts' menu.) Disk /dev/sdw: 4294967296 sectors, 2.0 TiB Logical sector size: 512 bytes Disk identifier (GUID): <GUID> Partition table holds up to 128 entries First usable sector is 34, last usable sector is 4294967262 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 4294967294 2.0 TiB 8300 Linux filesystem
As you can see, I also got the above warning message with gdisk -l which means that either I need to make space at the end of the disk by shrinking the partitions on it OR need to add more space to the disk.
Warning! Secondary partition table overlaps the last partition by
32 blocks!
I added more space to the disk by extending the Block Volume and the above warning message went away.
Now run gdisk command to write the GPT partition table to your disk
# gdisk /dev/sdb GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if you don't want to convert your MBR partitions to GPT format! *************************************************************** 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/sdb. 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.
So basically you pass “w” as a parameter and then give “Y”.
Reload the partition:
partprobe /dev/sdb
Run gdisk list command again to verify
# gdisk -l /dev/sdw GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdw: 6861881344 sectors, 3.2 TiB Logical sector size: 512 bytes Disk identifier (GUID): <GUID NUMBR> Partition table holds up to 128 entries First usable sector is 34, last usable sector is 6861881310 Partitions will be aligned on 2048-sector boundaries Total free space is 2566916030 sectors (1.2 TiB) Number Start (sector) End (sector) Size Code Name 1 2048 4294967294 2.0 TiB 8300 Linux filesystem
Now you can run growpart to extend the partition
# sudo growpart /dev/sdb 1 CHANGED: partition=1 start=2048 old: size=4294965247 end=4294967295 new: size=6861879262 end=6861881310
Run lsblk as that will also tell what is the current partition size.
# lsblk|grep -i sdb sdb 65:96 0 3.2T 0 disk └─sdb1 65:97 0 2T 0 part
- Building a Scalable and Secure AI Infrastructure in the Cloud - May 12, 2024
- Harnessing the Power of AI in the Cloud for Business Transformation - March 2, 2024
- Building a Resilient Cybersecurity Framework in the Oracle Cloud - January 16, 2024