23

This is my filesystem :

 $ df -h -x tmpfs -x devtmpfs
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/fedora-root  9.8G  7.6G  1.7G  83% /
/dev/mapper/fedora-home   50G   27G   21G  57% /home
/dev/sda9               1022M  8.4M 1014M   1% /boot/efi

And as you can see the root filesystem is full.

I already tried to delete all the useless things but still I don't have enough space.

How could I increase it ? I have 60 giga left in my hard drive, is there any way I can move my root filesystem there ?

  • 3
    Can you show the result of sudo pvscan, please? – mattdm May 3 '16 at 13:20
  • 1
    @mattdm PV /dev/sda10 VG fedora lvm2 [141.56 GiB / 77.56 GiB free] Total: 1 [141.56 GiB] / in use: 1 [141.56 GiB] / in no VG: 0 [0 ] – Dimitri Danilov May 3 '16 at 13:22
  • 15
    Erm, 1.7G free, where is the problem? – Simon Richter May 4 '16 at 0:03
  • 3
    If this is your definition of "full" you should see my filesystem lol – Lightness Races in Orbit May 4 '16 at 8:44
  • 2
    @SimonRichter I had 1.9 giga when I removed all my /var/cache, but this directory filled very quickly and I have ~ 100 mo in average – Dimitri Danilov May 4 '16 at 9:36
46

Good news! pvscan shows PV /dev/sda10 VG fedora lvm2 [141.56 GiB / 77.56 GiB free] — so you should be able to add up to 77.56GiB to any of your filesystems. I'd suggest adding it in smaller blocks (like 10GiB), so you have a reserve to put into /home if you decide you need growth there later.

This is a relatively well-tested and generally safe operation, but all root-level volume and filesystem operations have some risk — make sure you have a functioning backup first. Then....

You can extend your root logical volume to use the free space with lvextend, like this:

sudo lvextend --size +10G --resizefs /dev/fedora/root

(Or -L and -r instead of --size and --resizefs, if you prefer short options.)

  • 5
    While it's always a good idea to have backups. I would consider this to be pretty low risk since no existing data is moved and the filesystem is (presumablly) native linux, not reverse engineered. – plugwash May 3 '16 at 16:09
  • 141.56 GiB / 77.56 GiB free reads like X out of Y free. So at first I thought it was a joke :P – Insane May 4 '16 at 2:41
  • 1
    @Insane Yeah, that's not the best formatting. You can get the same information formatted in different ways from pvs or pvdisplay, if you prefer. – mattdm May 4 '16 at 17:33
10

More general answer for LVM:

Firstly - make sure you have additional unpartitioned storage. Then:

  1. Use fdisk to create new partition (safer than expanding existing one)

  2. Use pvcreate to create physical LVM volume:

    pvcreate /dev/sdxx
    
  3. Use vgextend to extend existing LVM group using new physical volume:

    vgextend groupname /dev/sdxx
    

    You can get group names with vgdisplay

  4. Use lvextend on lvm mapper to expand lvm volume:

    lvextend -l +100%FREE /dev/mapper/xxx
    
  5. Grow the filesystem:

    xfs_growfs /dev/mapper/xxx
    

    Or

    resize2fs /dev/mapper/xxx
    
2

The / filesystem may be a particular challenge, as that needs to be supported by the boot loader.

This answer doesn't specify how to accomplish the requested task, but does provide a workaround.

Another option: find a sub-directory (e.g., /big/) which has lots of data. Then copy that data onto your 60GB of space, mv the directory with lots of space (e.g., mv /big /bigback), and mount your 60GB (or a portion of it) onto /big. After confirming everything works as expected, rm /bigback to re-gain space on /

  • If you do this, immediately after, do touch /.autorelabel; reboot to make sure the moved files have the right SELinux labels. – mattdm May 3 '16 at 13:36
  • 1
    This is a valid and useful solution (not requiring much knowledge) when we fly without LVM. With it, the change is even less painful. – Gombai Sándor May 3 '16 at 13:36
  • There is no reason in principle that / needs to be supported by the bootloader, but in this case it is true because there is no separate /boot. When monkeying with LVM, always make /boot real. – Joshua May 4 '16 at 17:57
-1

Another option, before you attempt anything more drastic, is to use BleachBit to remove temporary and other unneeded files.

From wikipedia:

BleachBit is a free and open-source disk space cleaner, privacy manager, and computer system optimizer.

It should be in the package manager, so this should do it.

sudo yum install bleachbit

Or download from their page.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.