You make your own mount point directories. If you want to ask why, I can only point to the great answer by Wouter Verhelst.
Internal drives
/mnt
is a valid place to make your own if you like, and so is /
.
/mnt
may have been used for this purpose by some historical installation systems, as well as for removable media (before /media
). It's still valid for you to do so, but the system itself is no longer supposed to set up anything in /mnt
.
I think it's reasonable to use /mnt if you might make multiple mount points. It makes it easy to see all of them together, and it's known as one of the locations people like to use. Some other people like to use /Volumes
- following the OS X system, or /vol
. /data is common for a single mount point. /d/ is also used. /disk/ is almost certainly used by some, but may be distracting for storage which is not disk-based.
If you use /mnt, I would also create /mnt/tmp. Then there will still be a convenient directory for temporary mounts, the original use of /mnt which FHS mentions.
Preferred mount points for internal HDDs
It's possible that manually creating mount points under /media
is a bad idea on some common systems. Modern Linux OS's will create mount points for removable media automatically, and it's possible the structure they create would conflict, or simply appear inconsistent with your own. You don't say what your system is, but you may be interested in portable guidelines, especially if you're asking about FHS. Note this reasoning is similar to why the FHS says the OS must not populate /mnt.
Mount point for system-wide USB disk
Network filesystems
It is sometimes recommended to mount network filesystems in a dedicated sub-directory e.g. /n/host
, /nfs/host
or /net/host
etc.
For example, if you mount a network filesystem at /host and the network becomes unreachable, ls /
may hang when it tries to stat the network filesystem. This could be undesirable and frustrating, at a time when you are already becoming frustrated.
To use your example: /sys/
doesn't contain "real" files, but is entirely provided by the kernel. Do you want all READMEs to become part of the kernel? You probably don't.
Documentation is in /usr/share/doc
. Which contains normal files on your harddisk. Some documentation about /sys
and /proc
is in the kernel source, that is in /usr/src/linux/Documentation
(if you've installed the kernel source, and made the symlink for your current kernel).
Best Answer
According to the Wikipedia page the standard is for "Unix and Unix-like operating systems". While it may have grown out of a predominantly GNU/Linux environment, the intention seems to have consistently positioned it as focused on the broader *nix world.
The first version, originally bearing the catchy name, FSSTND, was published in 1994. The accompanying FAQ describes how it originated:
The Linux Foundation is currently working on the next version, FHS 3.0, and clearly indicated they see it as applying to the wider Unix ecosystem:
As to whether in practice the FHS is widely adopted: it is, but inconsistently.
1. http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/FSSTND-FAQ
2. http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs