I have a drive with this configuration:
fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2612 20971520 83 Linux
/dev/sda3 60736 60801 525312 82 Linux swap / Solaris
There is 478GB unallocated space, how would I go about adding this space to /dev/sda1
without losing the data that is currently on /dev/sda1
? (the filesystem is ext4).
NOTE: it is a server with only SSH, no GUI for running stuff like gparted.
Best Answer
Enlarge the partition:
fdisk -u /dev/sda
.p
to print the partition table, take note of the number, start, end, type of sda1.Delete it:
d
:Recreate it with same number (1), start and type but with a bigger end (taking care not to overlap with other partitions). Try to align things on a megabyte boundary that is for end, make it a multiple of 2048 minus 1. Change the type if needed with
t
(for partitions holding anextX
orbtrfs
filesystem, the default of83
is fine).Then
w
to write andq
to quit.The partition table will have been modified but the kernel will not be able to take that into account as some partitions are mounted.
However, if in-use partitions were only enlarged, you should be able to force the kernel to take the new layout with:
If that fails, you'll need to reboot. The system should boot just fine.
Then, resize the filesystem so it spreads to the extent of the enlarged partition:
Which for
ext4
will work just fine even on a live FS.