This is my 3th attempt to build a DIY home nas.
The first attempt with a Raspberry PI was a disaster: the well-known “USB POWER BUG” makes my NAS (with 2 USB DISK) pretty unstable.
The second attempt with an ALIX board + voyage linux crashes without any reason, but I admit that the initial setup was a mess…
The goal is:
- An home NAS with 2 external USB: a little one EXT-4 for my mac TimeMachine (using Netatalk) and a bigger one NTFS as a generic storage (using Samba)
- TrasmissionDaemon with WEB interface, as thin torrent client
Now is up and running. But if it will die again I think that I will buy a QNAP
Contents [hide]
- 1 Install VOYAGE LINUX
- 2 Install VIM
- 3 Fix sudo
- 4 Add new user
- 5 Install NTFS-3G
- 6 Fstab and volumes
- 7 Enable swap file
- 8 Samba
- 9 SSH
- 10 Transmission
- 11 FIX cracklib config
- 12 Netatalk
- 13 FIX BOOT
- 14 Fix timezone
- 15 NOIP client
- 16 PUT APT cache on external disk
- 17 Clear APT cache
- 18 Final step – do a CompactFlash backup
- 19 EXTRA – Mount image done with DD
Install VOYAGE LINUX
Read the Voyage Linux README
Install VIM
1 | # apt-get install vim |
Fix sudo
1 2 3 4 5 6 7 8 9 | # chown -R root:root /usr/bin/sudo # chmod u+s /usr/bin/sudo # chown root:root /usr/lib/sudo/sudoers.so # chown root:root /etc/sudoers # chown root:root /etc/sudoers.d/ # chown root:root /etc/sudoers.d/README # chown root:root /var/lib/sudo visudo --- add user |
Add new user
1 2 | # useradd -m -s /bin/bash sarbyn # passwd sarbyn |
Install NTFS-3G
1 | # apt-get install ntfs-3g |
Fstab and volumes
1 2 3 4 5 6 7 | # mkdir /mnt/TimeMachine # mkdir /mnt/MUSIC # chown sarbyn:sarbyn /mnt/MUSIC # chown sarbyn:sarbyn /mnt/TimeMachine UUID=206606FF6606D606 /mnt/MUSIC ntfs-3g rw,defaults 0 0 UUID=03c90579-88f0-4478-ae8d-adc64972a07d /mnt/TimeMachine ext4 defaults 0 0 |
Enable swap file
1 2 | # mkswap /mnt/MUSIC/swapfile # swapon /mnt/MUSIC/swapfile |
Samba
1 2 3 4 5 | # apt-get install samba samba-common-bin # service samba stop # mv /var/lib/samba /var/tmp/samba # ln -s /var/tmp/samba /var/lib/samba # smbpasswd -a sarbyn |
1 2 3 4 5 6 7 8 9 10 11 12 | [mnt] path = /mnt read only = Yes guest only = Yes guest ok = Yes [mnt_RW] path = /mnt read only = No valid user = sarbyn browseable = yes writable = yes |
Next add these directories to the file etc/default/voyage-util so it now contains the line:
VOYAGE_SYNC_DIRS=”/var/cache”
SSH
1 2 3 4 5 6 | $ mkdir . ssh $ chmod 0700 . ssh / $ cd . ssh $ ls $ vim authorized_keys $ chmod 600 authorized_keys |
Disable root login and plaintext login in /etc/ssh/sshd_config file
Transmission
1 2 3 4 | # apt-get install transmission-daemon # service transmission-daemon stop # cp settings.json /etc/transmission-daemon/ # service transmission-daemon start |
Next add transmission directories to the file etc/default/voyage-util so it now contains the line:
VOYAGE_SYNC_DIRS=”/var/cache /var/lib/transmission-daemon”
FIX cracklib config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # apt-get install cracklib-runtime # create-cracklib-dict /usr/share/dict/* Before root@voyage: /var/cache/cracklib # ls -la -rw-r--r-- 1 root root 1024 Oct 4 13:28 cracklib_dict.hwm -rw-r--r-- 1 root root 16 Oct 4 13:28 cracklib_dict. pwd -rw-r--r-- 1 root root 16 Oct 4 13:28 cracklib_dict.pwi -rw-r--r-- 1 root root 65 Oct 4 13:17 src-dicts AFTER root@voyage: /var/cache/cracklib # ls -la -rw-r--r-- 1 root root 1024 Oct 7 22:46 cracklib_dict.hwm -rw-r--r-- 1 root root 412696 Oct 7 22:46 cracklib_dict. pwd -rw-r--r-- 1 root root 22968 Oct 7 22:46 cracklib_dict.pwi -rw-r--r-- 1 root root 65 Oct 4 13:17 src-dicts |
1 2 3 4 | # cd /usr/lib/ # root@voyage:/usr/lib# ln -s /var/cache/cracklib/cracklib_dict.hwm # root@voyage:/usr/lib# ln -s /var/cache/cracklib/cracklib_dict.pwd # root@voyage:/usr/lib# ln -s /var/cache/cracklib/cracklib_dict.pwi |
Netatalk
*DON’T USE NETATALK FROM DEBIAN REPOS*
The older version of netatalk are VERY…VERY unstable. Download the sources from Netatalk site and follow —> this tutorial <—
1 | # apt-get install build-essential libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libmysqlclient-dev libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev tracker libtracker-sparql-0.14-dev libtracker-miner-0.14-dev |
Next add /usr/local/var/netatalk to the file etc/default/voyage-util so it now contains the line:
VOYAGE_SYNC_DIRS=”/var/cache /var/lib/transmission-daemon /usr/local/var/netatalk”
1 2 3 4 5 6 | # apt-get install avahi-daemon # insserv avahi-daemon # insserv netatalk # /etc/init.d/avahi-daemon start # /etc/init.d/netatalk start |
Edit “/usr/local/etc/afp.conf”.
1 2 3 4 5 6 7 8 9 10 11 | [Global] ; Global server settings uam list = uams_dhx.so,uams_dhx2.so set password = yes [MusicAFP] path = /mnt/MUSIC [TimeMachineAFP] path = /mnt/TimeMachine time machine = yes |
Add user to Netatalk (using the SHORT password)
1 | # afppasswd -an sarbyn |
FIX BOOT
The NTFS volume does not mount at boot, so add some lines on /etc/rc.local
1 2 3 4 5 6 7 8 | # vim /etc/rc.local service transmission-daemon stop mount -a swapon /mnt/MUSIC/swapfile service transmission-daemon start # chmod +x /etc/rc.local |
Fix timezone
1 | # ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime |
NOIP client
1 2 3 4 5 | # tar xzf noip-duc-linux.tar.gz # cd no-ip-2.1.9 # make # make install |
Next add /usr/local/etc/ to the file etc/default/voyage-util so it now contains the line:
VOYAGE_SYNC_DIRS=”/var/cache /var/lib/transmission-daemon /usr/local/var/netatalk /usr/local/etc”
PUT APT cache on external disk
1 2 3 4 5 | # remountrw # cd /var/cache # rm apt # ln -s /mnt/MUSIC/APT_CACHE/ apt # remountro |
Clear APT cache
1 | # apt-get clean |
Final step – do a CompactFlash backup
Now is all setted up but it’s better to do a CompatFlash backup using dd
1 | # dd if=DISK of=voyage-backup.img bs=1m |
EXTRA – Mount image done with DD
1 2 3 | # apt-get install kpartx # kpartx -a MUSIC/backup_voyage_2014_10_09.iso # mount /dev/mapper/loop0p1 /mnt/cf -o loop,ro |