====== File System Hierarchy ======
**General Information**
Some of the most common top level directories in the Linux file system.
**Checklist**
* Distro(s): Any
**Sources**
* man hier
* Linux Foundation: http://refspecs.linuxfoundation.org/fhs.shtml
----
====== Top Level Directories ======
EL7 = Enterprise Linux 7 (Red Hat, CentOS, Scientific)
^ Directory ^ Used For ^
| / | Root directory; file system tree starts here |
| /bin | Executable programs needed to repair system; essential during boot; \\ EL7 symlinks /bin -> /usr/bin |
| /boot | All files needed to boot the Linux kernel |
| /dev | Special/device files; refer to physical device |
| /etc | "etcetera"; configuration files local to the system |
| /home | User local home directories |
| /lib and /lib64 | Shared libraries used by programs in /boot,/bin, /sbin; \\ EL7 symlinks /lib -> /usr/lib and /lib64 -> /usr/lib64 |
| /media and /mnt | Mount points for removable media and temporary file systems respectively |
| /opt | Add on or optional packages |
| /proc | Pseudo-filesystem that provides information on running processes and the kernel |
| /root | Home directory for the root user |
| /run | Process/user specific info created since last boot |
| /sbin | Similar to /bin, except for system administration not used by regular users; \\ EL7 symlinks /sbin -> /usr/sbin |
| /srv | Directory to use for data used by services (such as NFS, FTP, HTTP) |
| /sys | To interface with hardware devices managed by the kernel |
| /tmp | Temporary files that could be deleted without warning during boot |
| /usr | Directory containing sub directories with program files, libraries, and documentation. Typically mimics the contents of /. EL6: Not required during boot. EL7: Important directory contents has been relocated here; now required during boot. |
| /var | Files that can change dynamically (log files, mail, and spool files) |
----
====== Common Directories with Own Partition ======
It is common to mount the following directories onto their own partition:
^ Directory ^ Reason ^
| / | isolate the core OS away from the rest of the system |
| /boot | isolate kernel boot images, cannot be LVM |
| /home | isolate user data from the rest of the system; usually to allocate more storage space and preserve user data during upgrades |
| /tmp | isolate world writeable /tmp to give more secure mount options |
| /var | isolate other variable data that could grow from affecting the rest of the system. (yum cache, common place for applications to write to) |
| /var/log | prevent run away log files from affecting the rest of the system |
----
====== View Mounts ======
Different ways to see file system mounts.
----
===== Find Mounts =====
The "findmnt" command shows a tree like mount structure.
[root@srv01 ~]# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/vgroot-lvroot xfs rw,relatime,attr2,inode64,noquota
├─/proc proc proc rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=40,pgrp=1,timeout=300,minproto=5,maxproto=5,direct
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs rw,nosuid,nodev,noexec,mode=755
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
│ │ ├─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices
│ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer
│ │ ├─/sys/fs/cgroup/net_cls cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_cls
│ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio
│ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event
│ │ └─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb
│ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/config configfs configfs rw,relatime
│ └─/sys/kernel/debug debugfs debugfs rw,relatime
├─/dev devtmpfs devtmpfs rw,nosuid,size=1829904k,nr_inodes=457476,mode=755
│ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ ├─/dev/mqueue mqueue mqueue rw,relatime
│ └─/dev/hugepages hugetlbfs hugetlbfs rw,relatime
├─/run tmpfs tmpfs rw,nosuid,nodev,mode=755
├─/mnt/redusb /dev/mapper/vgredusb-lvredbackups ext4 rw,relatime,data=ordered
├─/mnt/blackusb /dev/mapper/vgblackusb-lvblackbackups ext4 rw,relatime,data=ordered
├─/boot /dev/sda1 xfs rw,relatime,attr2,inode64,noquota
├─/tmp /dev/mapper/vgroot-lvtmp xfs rw,relatime,attr2,inode64,noquota
├─/home /dev/mapper/vgroot-lvhome xfs rw,relatime,attr2,inode64,noquota
└─/var /dev/mapper/vgroot-lvvar xfs rw,relatime,attr2,inode64,noquota
----
===== Mount =====
The "mount" command showing only xfs and ext4 file system types (-t xfs,ext4)
[root@srv01 ~]# mount -t xfs,ext4
/dev/mapper/vgroot-lvroot on / type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/vgblackusb-lvblackbackups on /mnt/blackusb type ext4 (rw,relatime,data=ordered)
/dev/mapper/vgredusb-lvredbackups on /mnt/redusb type ext4 (rw,relatime,data=ordered)
/dev/mapper/vgroot-lvtmp on /tmp type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/vgroot-lvhome on /home type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/vgroot-lvvar on /var type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
----
===== df =====
"df" command with human readable (-h) and print file system type (-T):
[root@srv01 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vgroot-lvroot xfs 30G 1.9G 29G 7% /
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 1.8G 8.6M 1.8G 1% /run
tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/vgblackusb-lvblackbackups ext4 99G 65G 29G 70% /mnt/blackusb
/dev/mapper/vgredusb-lvredbackups ext4 99G 66G 28G 71% /mnt/redusb
/dev/mapper/vgroot-lvtmp xfs 8.0G 33M 8.0G 1% /tmp
/dev/mapper/vgroot-lvhome xfs 100G 65G 36G 65% /home
/dev/mapper/vgroot-lvvar xfs 8.0G 527M 7.5G 7% /var
/dev/sda1 xfs 247M 164M 83M 67% /boot