Score:0

How to expand partition that is in the middle of other partitions (or create new and migrate data over)

mx flag

So I have a need to expand a partition (/tmp) on a system and not understanding exactly how to proceed with this (I did not initially set the partitions up).

The following commands show:

fdisk -l
Disk /dev/sda: 4798.6 GB, 4798552211456 bytes, 9372172288 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
Disk label type: gpt

#         Start          End    Size  Type            Name
1         2048       411647    200M  EFI System      EFI System Partition
2       411648      1435647    500M  Microsoft basic
3      1435648    395407359  187.9G  Microsoft basic
4    395407360    446607359   24.4G  Microsoft basic
5    446607360    497807359   24.4G  Microsoft basic
6    497807360    549007359   24.4G  Microsoft basic
7    549007360    569487359    9.8G  Microsoft basic
8    569487360    585871359    7.8G  Linux swap
9    585871360   6585871360    2.8T  Linux filesyste

The various partitions I have created are:

/dev/sda3 on / type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda4 on /var type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda9 on /home type ext4 (rw,relatime,data=ordered)
/dev/sda7 on /tmp type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda2 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
/dev/sda5 on /var/log type xfs     (rw,relatime,attr2,inode64,noquota)
/dev/sda6 on /var/log/audit type xfs (rw,relatime,attr2,inode64,noquota)

I see the following sizes allocated:

Filesystem   Size  Used Avail Use% Mounted on
/dev/sda3    188G  123G   66G  66% /
/dev/sda4    25G  3.8G   21G  16% /var
/dev/sda9    2.8T  224G  2.4T   9% /home
/dev/sda7    9.8G   46M  9.8G   1% /tmp
/dev/sda2    497M  161M  337M  33% /boot
/dev/sda1    200M  9.8M  191M   5% /boot/efi
/dev/sda5    25G  151M   25G   1% /var/log
/dev/sda6    25G   71M   25G   1% /var/log/audit

From what I can see, /dev/sda8 must have been deleting and recreated from an XFS to EXT4 partition.

I need to expand /dev/sda7 to have more space and from a quick tally, /dev/sda is roughly 5TB and we are only using a bit over 3TB for /dev/sda1 --> /dev/sda9. Leads me to believe I have 1-2TB left sitting on /dev/sda. I need to grow this without losing data and preferably without downtime.

I "think" I will need to create another partition (/dev/sda10) and assign this with the desired space. From there I would run "mkfs -t ext4 /dev/sda10" to assign it a filesystem. Then update /etc/fstab to point /dev/sda10 to /tmp (maybe mount /dev/sda10 first and copy all of /tmp over?).

Am I on the correct path for this? Thanks

Score:1
bd flag

Your mount and df outputs confirm that /tmp is a mounted filesystem residing on /dev/sda7.

Your fdisk output shows that /dev/sda7 is immediately followed on /dev/sda by a partition /dev/sda8 of type "Linux Swap". Chances are this partition is in use as a swap partition. (You can verify that with the swapon command.) If you want to grow /dev/sda7 in place you'll have to remove /dev/sda8 first.

Your fdisk output also shows that the total size of the disk is 9372172288 sectors, but the last partition /dev/sda9 ends at sector 6585871360. So there is 9372172288 - 6585871360 = 2786300928 sectors, or 1.3 TB, of unpartitioned free space after the last partition.

This leaves you with two possible avenues:

a) Move the swap partition to the unpartitioned space and extend the /tmp partition to the space formerly occupied by the swap partition. You can do that without downtime, by first creating a new swap partition /dev/sda10 of the required size starting at sector 6585871360, activating it with swapon /dev/sda10, then deactivating the old swap partition with swapoff /dev/sda7. After the old swap partition has drained you can delete partition 8 and extend partition 7 to that space. This will give you a /tmp partition of at most 585871360 - 549007360 = 36864000 sectors, or 17.6 GB.

b) Move the /tmp partition to the unpartitioned space. This will allow you to extend it up to 1.3 TB. It will however require a (short) downtime since you'll need to unmount the current /tmp partition which is not possible while the system is running.

IT_User avatar
mx flag
Thanks. Created sda10 and just copied data over then remounted tmp to this instead. Appreciate the assistance!
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.