External Drives
Most people store their media files collection on external hard-drives attached by USB, FireWire or eSATA.
autofs, the kernel-based automounter for Linux can be used to mount external hard-drives:
$ sudo apt-get install autofs5
The installation creates and starts the system service autofs and creates the following configuration files:
/etc/auto.master
/etc/auto.net
/etc/auto.misc
/etc/auto.smb
/etc/default/autofs
Create the directory, where external USB hard-drives will be mounted into:
$ sudo mkdir -p /etc/media/usb
Edit the file /etc/auto.master
and add the following line:
/media/usb /etc/auto.usb --timeout=900 --ghost
To identify the exact properties of the external hard-drive to be mounted later, make sure the cable is connected and it is powered on. The issue the following command:
$ sudo blkid -o list -w /dev/null
This will display a list of all attached file-systems and their various properties:
device fs_type label mount point UUID
----------------------------------------------------------------------------------------
...
/dev/sdb1 ext3 MyDrive (not mounted) 00b0bc8a-57f7-497c-92c9-d1ad42d94432
...
With the properties now known to us, we are able to create the autofs configuration file /etc/auto.usb
referenced earlier in the master configuration file.
MyDrive -fstype=ext3,noatime,nodiratime,sync,users,rw,nodev,noexec,nosuid,context=system_u:object_r:removable_t :/dev/disk/by-uuid/00b0bc8a-57f7-497c-92c9-d1ad42d94432
It should be all on one line.
Finally restart the autofs service:
$ sudo restart autofs
The external hard-drive will be mounted as soon as we access the directory
/media/usb/MyDrive
and un-mounted again after 15 minutes of no activity.
Media Server
MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients.
Installation
Installation from the Ubuntu software package repository:
$ sudo apt-get install minidlna
Configuration
Open the configuration file /etc/minidlna.conf
.
media_dir=A,/media/usb/MyDrive/Music
media_dir=V,/media/usb/MyDrive/Videos/Movies
media_dir=V,/media/usb/MyDrive/Videos/Series
media_dir=P,/media/usb/MyDrive/Pictures
media_dir=/var/lib/transmission-daemon/downloads
Web Monitor
MiniDLNA provides a web page, where the current status of it can be examined.
Add the following block to your internal nginx server configuration:
# MiniDLNA / ReadyMedia
location /minidlna {
proxy_pass http://localhost:8200/;
}
Troubleshooting
Inotify watches
Inotify is a method how the media server gets notified, if any changes in the media file directories happen. If the media collection is large, you might get the following error in the logs:
WARNING: Inotify max_user_watches [8192] is low or close to the number of
used watches [1253] and I do not have permission to increase this limit.
Please do so manually by writing a higher value into
/proc/sys/fs/inotify/max_user_watches.
To increase the value from 8192 to a value eight times as high:
$ sudo -s
$ echo 65536 > /proc/sys/fs/inotify/max_user_watches
$ exit