Welcome to Eric Hameleers (Alien BOB)'s Wiki pages.

If you want to support my work, please consider a small donation:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

linux:slug [2009/11/17 22:56]
alien Notes about emailing/rotating logfile
linux:slug [2010/04/24 19:20] (current)
alien More slashes at the end of directories removed.
Line 44: Line 44:
 The firmware that ships with the NSLU2 does not have a telnet server. The only management interface is the web interface.\\  The firmware that ships with the NSLU2 does not have a telnet server. The only management interface is the web interface.\\ 
 The NSLU2 will start out of the box on IP address "''192.168.1.77''" so you should be able to quickly access it at [[http://192.168.1.77|http://192.168.1.77]]. If you do not use the subnet **''192.168.1.0/255.255.255.0''** in your network, then you will have to configure a computer with an IP address in that range and use a cross-cable or a ethernet switch in order to make your computer and the NSLU2 talk to each other. Alternatively you can configure an //IP alias// for your computer's network card: assign an address in the NSLU2's network range to that alias interface and then connect the NSLU2 to your LAN.\\ The default //username/password// combination of the web interface of the NSLU2 is "''admin/admin''". The NSLU2 will start out of the box on IP address "''192.168.1.77''" so you should be able to quickly access it at [[http://192.168.1.77|http://192.168.1.77]]. If you do not use the subnet **''192.168.1.0/255.255.255.0''** in your network, then you will have to configure a computer with an IP address in that range and use a cross-cable or a ethernet switch in order to make your computer and the NSLU2 talk to each other. Alternatively you can configure an //IP alias// for your computer's network card: assign an address in the NSLU2's network range to that alias interface and then connect the NSLU2 to your LAN.\\ The default //username/password// combination of the web interface of the NSLU2 is "''admin/admin''".
 +
 +<note tip>If you are __re-flashing__ your //slug// (for instance if you try to recover from a bad flash, see below) then the device's IP address will not be ''192.168.1.77'' but the address it was using before the re-flash - i.e. the one you gave it.</note>
  
 Once you flashed the NSLU2, you will have to enable the telnet server of the //uNSLUng// firmware before you can do anything else (do not attach any external storage yet!). The default //username/password// combination for the uNSLUng firmware is "''root/uNSLUng''".\\ To enable the telnet server, you will have to use the web-based management interface - [[http://192.168.1.77/Management/telnet.cgi|http://192.168.1.77/Management/telnet.cgi]]. Once you flashed the NSLU2, you will have to enable the telnet server of the //uNSLUng// firmware before you can do anything else (do not attach any external storage yet!). The default //username/password// combination for the uNSLUng firmware is "''root/uNSLUng''".\\ To enable the telnet server, you will have to use the web-based management interface - [[http://192.168.1.77/Management/telnet.cgi|http://192.168.1.77/Management/telnet.cgi]].
Line 70: Line 72:
 <note warn>Do not turn off the NSLU2 while you are flashing it! Also do not try to use a wireless network connection for this.</note> <note warn>Do not turn off the NSLU2 while you are flashing it! Also do not try to use a wireless network connection for this.</note>
  
 +If you are re-flashing a bad flash (it happened to me: the flash got corrupted somehow and the //slug// would no longer properly boot), leave off the "--verify" because that will verify the flash content prior to re-flashing and report failure: <code>
 +$ upslug2 --device eth2 --verify --image Unslung-6.10-beta.bin
 +
 +  NSLU2     00:14:bf:63:4b:23 Product ID: 1 Protocol ID: 0
 +  Firmware Version: R23V29 [0x2329]
 +
 +Upgrading LKG634B67 00:14:bf:63:4b:67
 +    . original flash contents  * packet timed out
 +    ! being erased             - erased
 +    u being upgraded           U upgraded
 +    v being verified           V verified 
 +
 +  Display:
 +    <status> <address completed>+<bytes transmitted but not completed>
 +  Status:
 +    * timeout occurred         + sequence error detected
 +
 +  17fdbf+0005c0 ...VVVVVVVVvvUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
 +00:14:bf:63:4b:67: flash verification error (address 0x17FDC0, length 1472) [std::exception]
 + The verification step failed, the flash has not been written
 + correctly (or maybe there is a bug in upslug2).  Try repeating
 + the verification step and, if that fails for the same reason,
 + try repeating the whole upgrade.
 +</code> 
 +
 +Recovering from a //bad flash// is straight-forward: just re-flash. As long as you do not overwrite the //RedBoot// sector, you are doing nothing that can cause irreversible harm.
  
 ==== Unslinging to flash device ==== ==== Unslinging to flash device ====
Line 75: Line 103:
 After flashing with new firmware, enable the telnet server, login as //root// and while logged on perform the "//unsling//": After flashing with new firmware, enable the telnet server, login as //root// and while logged on perform the "//unsling//":
  
-  * Plugin flash disk (512MB or larger) into the "''Disk 2''" port +  * Plugin an unformatted flash disk (512MB or larger) into the "''Disk 2''" port 
-  * In the Web GUI, [[http://192.168.1.77/Management/disk_fs.htm|http://192.168.1.77/Management/disk_fs.htm]] check that the +  * In the Web GUI, [[http://192.168.1.77/Management/disk_fs.htm|http://192.168.1.77/Management/disk_fs.htm]] check that the flash disk is detected, and let the NSLU2 format it. After formatting it must display as "''Formatted (EXT3)''"!
-  flash disk is detected, and let the NSLU2 format it. After formatting it must display as "''Formatted (EXT3)''"!+
   * In the telnet session (stay logged in!) enter <code>unsling disk2</code>. You will have to enter a new password for root then.   * In the telnet session (stay logged in!) enter <code>unsling disk2</code>. You will have to enter a new password for root then.
   * Afer the //unslining// process completes, a comment is left in your telnet terminal that you have to reboot the machine: <code>   * Afer the //unslining// process completes, a comment is left in your telnet terminal that you have to reboot the machine: <code>
Line 104: Line 131:
 </code> </code>
  
-This will automatically install the dependencies as well:+Please follow carefully the post-installation instructions shown on-screen after installing some of these packages (such as syslog-ng, nfs-utils) or they will not work properly. Sendmail will for instance state: <code bash> 
 +sendmail will run as a daemon now. Alternatively, execute: 
 +echo 'smtp    stream  tcp     nowait  root    /opt/sbin/sendmail -bs' >> /etc/inetd.conf 
 +echo '0-59/15 * * * * root /opt/sbin/sendmail -q  & > /dev/null 2>&1' >> /etc/crontab 
 +</code> 
 + 
 +Installing these base packages will automatically install their dependencies as well:
   * for openssh : openssl, zlib   * for openssh : openssl, zlib
   * for rsnapshot : coreutils, perl, rsync, openssh   * for rsnapshot : coreutils, perl, rsync, openssh
Line 165: Line 198:
 # mkdir /mnt/thevault/.snapshots # mkdir /mnt/thevault/.snapshots
 </code> Set the proper permissions on all directories: <code> </code> Set the proper permissions on all directories: <code>
-# chmod 0700 /mnt/thevault/.private/ +# chmod 0700 /mnt/thevault/.private 
-# chmod 0755 /mnt/thevault/.private/.snapshots/ +# chmod 0755 /mnt/thevault/.private/.snapshots 
-# chmod 0755 /mnt/thevault/.snapshots/ +# chmod 0755 /mnt/thevault/.snapshots 
-</code> In ''/etc/exports'', add the directory ''.private/.snapshots/'' as a read only NFS export: <code> +</code> In ''/opt/etc/exports'', add the directory ''.private/.snapshots'' as a read only NFS export: <code> 
-  /mnt/thevault/.private/.snapshots 127.0.0.1(ro,no_root_squash) +  /mnt/thevault/.private/.snapshots  127.0.0.1(ro,no_root_squash) 
-</code> In ''/etc/fstab'', mount ''.private/.snapshots/'' read-only under ''.snapshots/'' <code> +</code> In ''/etc/fstab'', mount ''.private/.snapshots'' read-only under ''.snapshots'' <code> 
-  localhost:/mnt/thevault/.private/.snapshots /mnt/thevault/.snapshots nfs  ro   0 0+  localhost:/mnt/thevault/.private/.snapshots  /mnt/thevault/.snapshots  nfs  ro   0 0
 </code> Now restart the NFS daemon: <code> </code> Now restart the NFS daemon: <code>
 /opt/etc/init.d/S56nfs-utils condrestart /opt/etc/init.d/S56nfs-utils condrestart
 </code> Now mount the read-only snapshot root (happens automatically at boot): <code> </code> Now mount the read-only snapshot root (happens automatically at boot): <code>
-# mount /mnt/thevault/.snapshots/</code>+# mount /mnt/thevault/.snapshots</code>
  
   * In ''/opt/etc/mail/aliases'' add an email alias for user root so that you will receive emails generated from root's cronjobs.   * In ''/opt/etc/mail/aliases'' add an email alias for user root so that you will receive emails generated from root's cronjobs.
Line 185: Line 218:
 </code> As you may notice, these crontab entries schedule the jobs with larger intervals to run a bit before the jobs that trigger more regularly.(//daily// runs 30 minutes before //hourly//; and //weekly// in turn runs 30 minutes before //daily//). This is to prevent for instance the //weekly// rsnapshot job to run before the //daily// job (the same goes for combinations of other intervals). If you would schedule them the other way round, a problem may arise in case the larger interval job would start (re)moving backup directories before the shorter interval job has finished it's work.  </code> As you may notice, these crontab entries schedule the jobs with larger intervals to run a bit before the jobs that trigger more regularly.(//daily// runs 30 minutes before //hourly//; and //weekly// in turn runs 30 minutes before //daily//). This is to prevent for instance the //weekly// rsnapshot job to run before the //daily// job (the same goes for combinations of other intervals). If you would schedule them the other way round, a problem may arise in case the larger interval job would start (re)moving backup directories before the shorter interval job has finished it's work. 
  
 +<note>It seems that my changes to ''/etc/fstab'' are being overwritten at boot. However, there is an alternative to mounting through fstab: If the file ''/unslung/rc.local'' exists, it will be executed. So, I copied ''/etc/rc.d/rc.local'' to that file (it did not exist): <code>
 +cp -a /etc/rc.d/rc.local /unslung/rc.local</code> removed the line <code>
 +if ( [ -r /unslung/rc.local ] && . /unslung/rc.local ) ; then return 0 ; fi
 +</code> and then added these lines at the bottom: <code>
 +mount -t ext3 -o defaults,usrquota /dev/sdb1 /mnt/thevault
 +mount -t nfs localhost:/mnt/thevault/.private/.snapshots /mnt/thevault/.snapshots
 +</code></note>
  
 ==== The rsnapshot log file ==== ==== The rsnapshot log file ====
Line 208: Line 248:
 </code> </code>
  
-<note warn> I have not managed to make the //slug//'s cron send me emails yet using sendmail ... If anyone knows what I missed, let me know on the discussion page</note>+<note warn> I have not managed to make the //slug//'s cron send me emails yet using sendmail ... all emails seem to piling up in the local mail spool. If anyone knows what I missed, let me know on the discussion page</note>
  

Personal Tools
sponsoring