{"id":136,"date":"2014-10-15T09:54:24","date_gmt":"2014-10-15T08:54:24","guid":{"rendered":"http:\/\/www.sarbyn.com\/tech\/?p=136"},"modified":"2015-08-13T14:41:35","modified_gmt":"2015-08-13T13:41:35","slug":"alix-2d-voyage-linux-a-diy-home-nas","status":"publish","type":"post","link":"https:\/\/www.sarbyn.com\/blog\/2014\/10\/15\/alix-2d-voyage-linux-a-diy-home-nas\/","title":{"rendered":"Alix.2D + Voyage Linux = a DIY home NAS"},"content":{"rendered":"<p>This is my 3th attempt to build a DIY home nas.<br \/>\nThe first attempt with a Raspberry PI was a disaster: the well-known &#8220;USB POWER BUG&#8221; makes my NAS (with 2 USB DISK) pretty unstable.<br \/>\nThe second attempt with an ALIX board + voyage linux crashes without any reason, but I admit that the initial setup was a mess&#8230;<\/p>\n<p>The goal is:<\/p>\n<ul>\n<li>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)<\/li>\n<li>TrasmissionDaemon with WEB interface, as thin torrent client<\/li>\n<\/ul>\n<p>Now is up and running. But if it will die again I think that I will buy a QNAP \ud83d\ude42<br \/>\n<\/p>\n<h5>Install VOYAGE LINUX<\/h5>\n<p>Read the <a href=\"http:\/\/svn.voyage.hk\/repos\/voyage\/branches\/voyage-live\/0.9.2\/config\/includes.chroot\/READM\">Voyage Linux README<\/a><\/p>\n<h5>Install VIM<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install vim\r\n<\/pre>\n<h5>Fix sudo<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# chown -R root:root \/usr\/bin\/sudo\r\n# chmod u+s \/usr\/bin\/sudo\r\n# chown root:root \/usr\/lib\/sudo\/sudoers.so\r\n# chown root:root \/etc\/sudoers\r\n# chown root:root \/etc\/sudoers.d\/\r\n# chown root:root \/etc\/sudoers.d\/README\r\n# chown root:root \/var\/lib\/sudo\r\n\r\nvisudo --- add user\r\n<\/pre>\n<h5>Add new user<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# useradd -m -s \/bin\/bash sarbyn\r\n# passwd sarbyn\r\n<\/pre>\n<h5>Install NTFS-3G<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install ntfs-3g\r\n<\/pre>\n<h5>Fstab and volumes<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# mkdir \/mnt\/TimeMachine\r\n# mkdir \/mnt\/MUSIC\r\n# chown sarbyn:sarbyn \/mnt\/MUSIC\r\n# chown sarbyn:sarbyn \/mnt\/TimeMachine\r\n\r\nUUID=206606FF6606D606 \/mnt\/MUSIC ntfs-3g   rw,defaults     0       0\r\nUUID=03c90579-88f0-4478-ae8d-adc64972a07d \/mnt\/TimeMachine ext4 defaults 0 0\r\n<\/pre>\n<h5>Enable swap file<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# mkswap \/mnt\/MUSIC\/swapfile\r\n# swapon \/mnt\/MUSIC\/swapfile\r\n<\/pre>\n<h5>Samba<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install samba\u00a0samba-common-bin\r\n# service samba stop\r\n# mv \/var\/lib\/samba \/var\/tmp\/samba\r\n# ln -s \/var\/tmp\/samba \/var\/lib\/samba\r\n# smbpasswd -a sarbyn\r\n<\/pre>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n&#x5B;mnt]\r\npath = \/mnt\r\nread only = Yes\r\nguest only = Yes\r\nguest ok = Yes\r\n\r\n&#x5B;mnt_RW]\r\npath = \/mnt\r\nread only = No\r\nvalid user =\u00a0sarbyn\r\nbrowseable = yes\r\nwritable = yes\r\n<\/pre>\n<p>Next add these directories to the file etc\/default\/voyage-util so it now contains the line:<br \/>\nVOYAGE_SYNC_DIRS=&#8221;\/var\/cache&#8221;<\/p>\n<h5>SSH<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n$ mkdir .ssh\r\n$ chmod 0700 .ssh\/\r\n$ cd .ssh\r\n$ ls\r\n$ vim authorized_keys\r\n$ chmod 600 authorized_keys\r\n<\/pre>\n<p>Disable root login and plaintext login in \/etc\/ssh\/sshd_config file<\/p>\n<h5>Transmission<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install transmission-daemon\r\n# service transmission-daemon stop\r\n# cp settings.json \/etc\/transmission-daemon\/\r\n# service transmission-daemon start\r\n<\/pre>\n<p>Next add transmission directories to the file etc\/default\/voyage-util so it now contains the line:<br \/>\nVOYAGE_SYNC_DIRS=&#8221;\/var\/cache \/var\/lib\/transmission-daemon&#8221;<\/p>\n<h5>FIX cracklib config<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install cracklib-runtime\r\n# create-cracklib-dict \/usr\/share\/dict\/*\r\n\r\nBefore\r\nroot@voyage:\/var\/cache\/cracklib# ls -la\r\n-rw-r--r-- 1 root root 1024 Oct 4 13:28 cracklib_dict.hwm\r\n-rw-r--r-- 1 root root 16 Oct 4 13:28 cracklib_dict.pwd\r\n-rw-r--r-- 1 root root 16 Oct 4 13:28 cracklib_dict.pwi\r\n-rw-r--r-- 1 root root 65 Oct 4 13:17 src-dicts\r\n\r\nAFTER\r\nroot@voyage:\/var\/cache\/cracklib# ls -la\r\n-rw-r--r-- 1 root root 1024 Oct 7 22:46 cracklib_dict.hwm\r\n-rw-r--r-- 1 root root 412696 Oct 7 22:46 cracklib_dict.pwd\r\n-rw-r--r-- 1 root root 22968 Oct 7 22:46 cracklib_dict.pwi\r\n-rw-r--r-- 1 root root 65 Oct 4 13:17 src-dicts\r\n<\/pre>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# cd \/usr\/lib\/\r\n# root@voyage:\/usr\/lib# ln -s  \/var\/cache\/cracklib\/cracklib_dict.hwm\r\n# root@voyage:\/usr\/lib# ln -s  \/var\/cache\/cracklib\/cracklib_dict.pwd\r\n# root@voyage:\/usr\/lib# ln -s  \/var\/cache\/cracklib\/cracklib_dict.pwi\r\n<\/pre>\n<h5>Netatalk<\/h5>\n<p><strong>*DON&#8217;T USE NETATALK FROM DEBIAN REPOS*<\/strong><br \/>\nThe older version of netatalk are VERY&#8230;VERY unstable. Download the sources from Netatalk site and follow &#8212;&gt;\u00a0<a href=\"http:\/\/netatalk.sourceforge.net\/wiki\/index.php\/Install_Netatalk_3.1.6_on_Debian_7_Wheezy\">this tutorial<\/a>\u00a0&lt;&#8212;<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# 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\r\n<\/pre>\n<p>Next add \/usr\/local\/var\/netatalk to the file etc\/default\/voyage-util so it now contains the line:<br \/>\nVOYAGE_SYNC_DIRS=&#8221;\/var\/cache \/var\/lib\/transmission-daemon \/usr\/local\/var\/netatalk&#8221;<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install avahi-daemon\r\n\r\n# insserv avahi-daemon\r\n# insserv netatalk\r\n# \/etc\/init.d\/avahi-daemon start\r\n# \/etc\/init.d\/netatalk start\r\n<\/pre>\n<p>Edit &#8220;\/usr\/local\/etc\/afp.conf&#8221;.<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n&#x5B;Global]\r\n; Global server settings\r\nuam list = uams_dhx.so,uams_dhx2.so\r\nset password = yes\r\n\r\n&#x5B;MusicAFP]\r\n    path = \/mnt\/MUSIC\r\n\r\n&#x5B;TimeMachineAFP]\r\n    path = \/mnt\/TimeMachine\r\n    time machine = yes\r\n<\/pre>\n<p>Add user to Netatalk (using the SHORT password)<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# afppasswd -an sarbyn\r\n<\/pre>\n<h5>FIX BOOT<\/h5>\n<p>The NTFS volume does not mount at boot, so add some lines on \/etc\/rc.local<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# vim \/etc\/rc.local\r\n\r\nservice transmission-daemon stop\r\nmount -a\r\nswapon \/mnt\/MUSIC\/swapfile\r\nservice transmission-daemon start\r\n\r\n# chmod +x \/etc\/rc.local\r\n<\/pre>\n<h5>Fix timezone<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# ln -sf \/usr\/share\/zoneinfo\/Europe\/Amsterdam \/etc\/localtime\r\n<\/pre>\n<h5>NOIP client<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# wget http:\/\/www.no-ip.com\/client\/linux\/noip-duc-linux.tar.gz\r\n# tar xzf noip-duc-linux.tar.gz\r\n# cd no-ip-2.1.9\r\n# make\r\n# make install\r\n<\/pre>\n<p>Next add \/usr\/local\/etc\/ to the file etc\/default\/voyage-util so it now contains the line:<br \/>\nVOYAGE_SYNC_DIRS=&#8221;\/var\/cache \/var\/lib\/transmission-daemon \/usr\/local\/var\/netatalk \/usr\/local\/etc&#8221;<\/p>\n<h5>PUT APT cache on external disk<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# remountrw\r\n# cd \/var\/cache\r\n# rm apt\r\n# ln -s \/mnt\/MUSIC\/APT_CACHE\/ apt\r\n# remountro\r\n<\/pre>\n<h5>Clear APT cache<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get clean\r\n<\/pre>\n<h5>Final step &#8211; do a CompactFlash backup<\/h5>\n<p>Now is all setted up but it&#8217;s better to do a CompatFlash backup using dd<\/p>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# dd if=DISK of=voyage-backup.img bs=1m\r\n<\/pre>\n<h5>EXTRA &#8211; Mount image done with DD<\/h5>\n<pre class=\"brush: bash; collapse: false; title: ; notranslate\" title=\"\">\r\n# apt-get install kpartx\r\n# kpartx -a MUSIC\/backup_voyage_2014_10_09.iso\r\n# mount \/dev\/mapper\/loop0p1 \/mnt\/cf -o loop,ro\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This is my 3th attempt to build a DIY home nas. The first attempt with a Raspberry PI was a disaster: the well-known &#8220;USB POWER BUG&#8221; 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 <a class=\"read-more\" href=\"https:\/\/www.sarbyn.com\/blog\/2014\/10\/15\/alix-2d-voyage-linux-a-diy-home-nas\/\">&hellip;&nbsp;<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[43],"tags":[44,40,46,45],"class_list":["post-136","post","type-post","status-publish","format-standard","hentry","category-diy-2","tag-alix","tag-diy","tag-nas","tag-voyage-linux"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3JApm-2c","jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/posts\/136"}],"collection":[{"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":32,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"predecessor-version":[{"id":248,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/posts\/136\/revisions\/248"}],"wp:attachment":[{"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sarbyn.com\/blog\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}