Skip to content

NOCHANGE: partition 1 could only be grown by 1 [fudge=2048] error when extending a disk partition

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
Brijesh Gogia
Leave a Reply