Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

We all know that mounting a new partition as /home and maybe /boot is extremely useful. Or mounting a remote directory as /opt can be great for sharing system tools. Are there any other, maybe more esoteric, uses for extra partitions or hard drives or nifty ways to mount external volumes? Maybe even if anyone also has windows machines *shudder*, post some cool tricks involving partitioning and hard drive mounting.

share|improve this question

9 Answers 9

FUSE (Filesystem in USErspace) allows many things to be accessible as ordinary files (not an exhaustive list by any means):

There are also many FUSE filesystems that present a view of another filesystem with filtering, renaming or modified metadata or content:

  • Keep copies of all past versions of files with copyfs, waybackfs, ...
  • Log every action with loggedfs
  • Encrypt files transparently with encfs
  • Convert audio content with mp3fs
  • See a read-only view or change permissions with bindfs
  • See a partial read-only view with rofs-filtered
  • Convert file name character sets with convmvfs
  • Get a case-insensitive view with ciopfs

More possibilities on the FUSE site and elsewhere. You can also easily define your own in Erlang, Haskell, Lisp, Lua, Ocaml, Perl, Python, ...

share|improve this answer

Most unices have a logical volume manager. Use it.

  • Filesystems are now designated by meaningful names (like /dev/mapper/darkstar-home) rather than through drive letters (like /dev/sda1, oops, it's now /dev/sdb1 because I booted with an external disk plugged in) or with safe but meaningless UUIDs.

  • Want to move a filesystem to a different disk? Create a physical volume on the new disk, add it to the volume group, and move the logical volume onto the new physical volume. All done without downtime, no unmounting required.

  • When you make a backup, take a snapshot of the disk and run your backup from the snapshot. That way the backup is a consistent view of the filesystem (i.e., there really was a point in time when the filesystem was in that state). This doesn't hold with naive backups (e.g. file A is backed up, then a program modifies first A then B, then B is backed up: the backup has the new B and the old A).

  • Need to enlarge a filesystem? Logical volumes don't need to be contiguous, so all you need is enough free space, never mind where.

share|improve this answer

You have someone who can only access your server over ftp and are confined to their home directory but you realise they they need access to some other directory not in their home folder.

For example bob has ftp access to your web server, but also you want to let him view the log files in /var/logs/httpd/vhosts/bobssite.com/. It is a hassle to reconfigure everything so that apache writes logs for bobssite.com to bobs home folder but you can use the bind option to remount the folder like this

mkdir /home/bob/logs
mount --bind /var/logs/httpd/vhosts/bobssite.com /home/bob/logs/

More information can be found here.

share|improve this answer
3  
You can also use bindfs, which is more flexible: you don't need to be root to use it, and it can change ownership and permissions on the fly. –  Gilles Sep 25 '10 at 0:32

Most unices clean /tmp on boot. If you do this, there isn't much point in storing the contents of /tmp on disk in the first place. Many unices allow a filesystem to be stored in memory (the data will be written in the swap if necessary). For some reason, even though Linux has tmpfs for this, most distributions don't mount /tmp as tmpfs. It's easily remedied with a line in /etc/fstab:

tmpfs  /tmp  tmpfs  mode=1777

By default, the filesystem can grow up to half your RAM. If you have a lot of swap, you might want to allow it to contain bigger files, e.g. to allow up to 2 GB:

tmpfs  /tmp  tmpfs  mode=1777,2g

(Making the filesystem larger has a negligible overhead; the virtual memory usage grows as needed. It's still a good idea to have a limit because a runaway program could fill it very fast, and it's better to run out of /tmp than to run out of memory available for processes.)

share|improve this answer
    
You might want to add size=512MB or something similar to the options. By default tmpfs takes half your RAM which is more that you might want for a reduced little throw-away filesystem –  tante Sep 28 '10 at 12:24
1  
Why would you want to reduce the maximum size of the filesystem even more than the default (which is very conservative: you might want to store files up to your virtual memory size)? (Note that the memory required for the filesystem is the memory required to store the actual data and metadata, plus something like 10–100kB of overhead (measured on a mostly idle Ubuntu 10.04 i386 system).) –  Gilles Sep 28 '10 at 18:14

If your OS supports it, make all your filesystems on RAID 1 arrays, even if you they're not replicated. That way, if you ever need to transfer the filesystem to a different disk, you can do it online and quickly by adding the partition on the second disk to the array, rebuilding the array and removing the first disk.

Some LVM systems can mirror volumes, so you don't need another layers. ZFS does it without any external help.

share|improve this answer

Performance related:

Avoid file access time writing:

-o noatime

Usability related:

You can use alternative device names, e.g. labels or uuids.

For example to identify my MP3 player I use this device name in my fstab:

UUID=0C9F-6901

You can print the uuids of connected devices via the blkid command.

Analogous to that you can set a label at mkfs time or later via e2fstune and comparable tools. Then you can use

LABEL=mylabel

in the fstab or at the command line.

share|improve this answer

An oldie. Keep your software on one disk, and your data on another. Therefore you can seek both at the same time. Makes for faster disk access.

share|improve this answer

I like to have a separate partition for all personal data which I don't have to backup, e.g. svn checkouts, copies of data which mainly resides on an other server etc

share|improve this answer

Mount an .iso image as a loopback filesystem. I keep a number of .iso files around, and this can be a handy way to copy reference files on the disk image.

stefan@host1:~ $ ls -ld ubuntu-10.04-server-amd64.iso
-rw-r--r-- 1 stefan staff 710412288 2010-06-27 11:51 ubuntu-10.04-server-amd64.iso
stefan@host1:~ $ mkdir ./ubuntu-10.04-server-amd64
stefan@host1:~ $ sudo mount -o loop ubuntu-10.04-server-amd64.iso ./ubuntu-10.04-server-amd64
stefan@host1:~ $ ls ubuntu-10.04-server-amd64
cdromupgrade  doc      isolinux    pics  preseed             ubuntu
dists         install  md5sum.txt  pool  README.diskdefines

Or, if I want to read an offline copy of the installation manual, I can do that from the commandline:

stefanl@host1:~ $ links ubuntu-10.04-server-amd64/doc/install/manual/en/index.html

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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