1

How can the root directory be at 100 percent disc usage while its subdirectories not be? Is space allocated on a per directory basis? In the below example, it shows that the root is 100 percent used. Does this mean if I try to add content to one of the nonroot directories, it should work but if I try to add to the root, it won't work? I was expecting that 100 percent usage would be the total of ALL the directories added up, but as the example below shows, that's not the case:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/eubuntu10x32-root
                      3.5G  3.3G     0 100% /
none                  1.5G  180K  1.5G   1% /dev
none                  1.5G     0  1.5G   0% /dev/shm
none                  1.5G   40K  1.5G   1% /var/run
none                  1.5G     0  1.5G   0% /var/lock
none                  1.5G     0  1.5G   0% /lib/init/rw
none                  3.5G  3.3G     0 100% /var/lib/ureadahead/debugfs
/dev/sdb               50G   27G   21G  57% /home
/dev/sda1             228M   35M  181M  17% /boot

Thanks for some explanation of disc usage on filesystem.

3 Answers 3

0

File systems and mount points

You're missing out on a very important way Ubuntu/Linux handles file systems: all comes down to the same root (/) and other file systems ("volumes", "disks", "partitions") will be mounted on a location inside the root.

To explain two most interesting lines:

  • Your / is full:

    /dev/mapper/eubuntu10x32-root   3.5G  3.3G     0 100% /
    

    Here you see a "device mapper" meta-device being used for your root filesystem. I think you're using LVM here or encryption.

    3.5GiB for a / is a very low capacity for a desktop installation, unless you have directories like /usr, /var moved out of it. In your case it's clearly not sufficient.

  • Your second disk (sdb, without partitions) is mounted at /home and a partition of sda is mounted as /boot:

    /dev/sdb               50G   27G   21G  57% /home
    /dev/sda1             228M   35M  181M  17% /boot
    

    This separated /boot is common for a LVM/encrypted installation to allow the bootloader (Grub) to load the relevant software/drivers to be able to reach your other file systems to actually boot the operating system.

So, basically, your /home and /boot aren't just directories. They are directories on the / file system, but there's another file system mounted on top of it. This means that whenever you descend into it, you're looking into a different file system. Each file system has its own capacity, listed by df.

While you moved out /home and /boot, this wasn't enough to have sufficient space available on /. Solutions: grow the / file system, move out more like /usr or /var to another file system.

Are all directories under / mount points?

Directories not being a mount point are actual regular directories part of file system in mounted as /. There are also special ones, which don't actually represent data on disks, but in UNIX/Linux, everything is represented as files such as sockets, kernel interfaces (/proc, /sys), etc. and even directories itself are files.

How does this compare to Windows?

Windows tends to hide the difference between the devices/partitions and the actual file system being mounted. This means that a C: "drive" can also be mounted as such. In Ubuntu/Linux, you'll see that a partition, e.g. /dev/sda1 (first partition on sda) can be mounted (content being made available to the user) to any location. There's no second root for this like Windows makes the second drive a D:.

0

Linux works a bit differently then windows. You have a "root filesystem", and that is the disk you have mounted (pointed towards) the directory called /. But other discs, like for instance your your /home disc can be there. Where in windows they would be for instance c:\ and d:\ , you end up with them in "subdirectories" in linux, called "mountpoints".

So while the disc that you use as / might be full, if you mount an empty terabyte disc as /home it will be that: empty.

This also means that if you have enough space on /home you cannot add a file to /otherdir: that gets added to an actual subdir on the / partition!

0

As df shows, /dev/mapper/eubuntu10x32-root is mounted on / (the root of your file system).

The other "folders" that df shows are not really folders but also what is called "mount point".

For instance,

  • the real partition /dev/mapper/eubuntu10x32-root mounted on / is full.

  • the real partition /dev/sdb mounted on /home is not full (57%).

The thing is that you can't access these disk partitions directly. So partitions have to be mounted on some mount points (folders). For example, the /home folder is called a mount point for /dev/sdb since the physical disk is "linked" to this folder.

This means that when you write something into /home, your data are actually written to /dev/sdb, not /dev/mapper/eubuntu10x32-root. 3.5G is small for a root partition and you lack space on it but you can still write in your home directory because there are 21G available in it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .