Difference between revisions of "Install Debian 5.0 (Lenny) On Buffalo Linkstation Mini"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m (cosmetics)
m (Added warning about LS-WSXxxxxTL/R1 models not working)
Line 8: Line 8:
  
 
== Prerequisites ==
 
== Prerequisites ==
# Buffalo LinkStation Mini running stock firmware  
+
# Buffalo LinkStation Mini models LS-WSxxxxGL/R1 running stock firmware ('''LS-WSXxxxxTL/R1 models will not work''')
#* If your device has already been modified to run another operating system and/or firmware, you can [[Revert Buffalo Linkstation Mini To Stock Firmware| revert to stock firmware]]
+
#* If your device has already been modified to run another operating system and/or firmware, you should [[Revert Buffalo Linkstation Mini To Stock Firmware| revert to stock firmware]]
 
#* This process was tested with model LS-WS1.0TGL/R1, but other models may work as well
 
#* This process was tested with model LS-WS1.0TGL/R1, but other models may work as well
 
# Ubuntu 10.04 Desktop Edition CD-ROM (download and burn [http://releases.ubuntu.com/lucid/ubuntu-10.04-desktop-i386.iso this ISO file])
 
# Ubuntu 10.04 Desktop Edition CD-ROM (download and burn [http://releases.ubuntu.com/lucid/ubuntu-10.04-desktop-i386.iso this ISO file])
Line 185: Line 185:
 
  mount -t ext3 /dev/md14 /mnt/lsmini/srv
 
  mount -t ext3 /dev/md14 /mnt/lsmini/srv
 
</pre>
 
</pre>
 +
  
 
=== Install Debian System ===
 
=== Install Debian System ===
Line 296: Line 297:
 
  reboot; logout
 
  reboot; logout
 
</pre>
 
</pre>
 +
  
 
=== Configure Debian System ===
 
=== Configure Debian System ===

Revision as of 17:44, 18 July 2010


Kurobrick.png
WARNING!

There is a possibility that you could brick your NAS with these instructions. Please make sure that you read the entire page carefully. These instructions may void your warranty. Proceed at your own risk.



Linkstation Mini

Contents


Prerequisites

  1. Buffalo LinkStation Mini models LS-WSxxxxGL/R1 running stock firmware (LS-WSXxxxxTL/R1 models will not work)
    • If your device has already been modified to run another operating system and/or firmware, you should revert to stock firmware
    • This process was tested with model LS-WS1.0TGL/R1, but other models may work as well
  2. Ubuntu 10.04 Desktop Edition CD-ROM (download and burn this ISO file)
  3. Computer which can boot the Ubuntu 10.04 Desktop Edition CD-ROM and access the network successfully (most modern computers meet this requirement)


Overview

  1. Use ACP Commander to establish Telnet session with device
  2. Uncouple secondary drive partitions from existing RAID configuration
  3. Partition and format secondary drive, install Debian 5.0, and prepare for initial boot
  4. Reboot device, establish SSH session with device, and complete installation


Procedure

Note: Do not attempt to execute the following commands as a single script Instead, copy and paste each block of commands into a shell window and monitor the resulting output for errors

    Prepare Device

  1. Disconnect power cable from device
  2. Move device switch to "on" position
  3. Attach device to network
  4. Connect power cable to device
  5. Wait for device to finish booting (no blinking lights)
  6. Open device web interface (factory default address is http://192.168.11.150, or use the IP address assigned by DHCP)
  7. Login (user = admin, password = password)
  8. Nuvola apps important.png 
    WARNING!

    The next step will erase all data on your Linkstation Mini. It is recommended that you backup your existing data. Proceed at your own risk.


  9. Remove existing RAID configuration (Disk Management | RAID Setup | RAID Array 1 | Change RAID Array ...)
  10. Create new RAID1 (mirroring) array (Disk Management | RAID Setup | RAID Array 1 | RAID Mode: RAID1 ...)
  11. Wait for "Building RAID Array" to complete
  12. You may proceed immediately after the array has been built (you do not need to wait for the drive check to complete)'

  13. Boot Ubuntu 10.04 Desktop Edition CD-ROM on computer
  14. Select language as desired (English)
  15. Click on "Try Ubuntu 10.04 LTS" (to use Ubuntu without making any changes to your system)
  16. Open a new terminal window (Applications | Accessories | Terminal )
  17. Start a new bash shell with root privileges
    sudo bash
    
  18. Install OpenJDK (for running ACP Commander software)
     apt-get update
     apt-get -q -y install openjdk-6-jre
    
  19. Download ACP Commander software (acp_commander.jar)
     wget http://downloads.nas-central.org/TOOLS/ALL_LS_KB_ARM9/ACP_COMMANDER/acp_commander.jar
    
  20. Determine IP address of device and assign it to environment variable (substitute appropriate IP address)
     export IP_ADDRESS=192.168.11.150
    
  21. Instruct device to enable Telnet and remove root password
     java -jar acp_commander.jar -t ${IP_ADDRESS} -o
    
  22. Establish Telnet session with device
     telnet ${IP_ADDRESS}
    
  23. Login as root (no password required)
  24. Set recent date and time (prevent error messages about file dates, format=MMDDhhnnYYYY)
     date 071720032010
    
  25. Kill all unnecessary processes
     kill -9 $(ps | grep -vE '\[.*\]|(init)|(syslogd)|(klogd)|(getty)|(telnetd)|(-sh)|(ps)|(VmSize)|(grep)|(kill)|(awk)' | awk '{print $1}')
    
  26. Nuvola apps important.png 
    WARNING!

    Your device will no longer boot after the next step. You must complete the installation of the Debian system before your device will boot again.


  27. Free secondary drive (/dev/sdb) partitions from RAID configuration
     mdadm --manage /dev/md0  --fail /dev/sdb1
     mdadm --manage /dev/md1  --fail /dev/sdb2
     mdadm --manage /dev/md10 --fail /dev/sdb5
     mdadm --manage /dev/md2  --fail /dev/sdb6
    
     mdadm --manage /dev/md0  --remove /dev/sdb1
     mdadm --manage /dev/md1  --remove /dev/sdb2
     mdadm --manage /dev/md10 --remove /dev/sdb5
     mdadm --manage /dev/md2  --remove /dev/sdb6
    
  28. Make sure secondary drive is not in use
     if hdparm -z /dev/sdb ; then echo; echo "SECONDARY DRIVE READY (/dev/sdb)"; echo; else grep sdb /proc/mounts /proc/mdstat; echo "Please check that /dev/sdb is not in use"; fi;
    
  29. The following commands will delete all existing partitions on the secondary drive and reconfigure it as follows...

    Partition Mount Size Type Description
    1 /boot 128MB fd linux raid autodetect
    2 swap 256MB 82 linux swap
    3 / (root) 12GB fd linux raid autodetect
    4 /srv 100% fd linux raid autodetect
  30. Repartition secondary drive (substitute partition sizes as desired)
     PARTITION1_SIZE=128MB
     PARTITION2_SIZE=256MB
     PARTITION3_SIZE=12GB
     echo -e "d\n1\nd\n2\nd\n3\nd\n4\nn\np\n1\n\n+${PARTITION1_SIZE}\nn\np\n2\n\n+${PARTITION2_SIZE}\nn\np\n3\n\n+${PARTITION3_SIZE}\nn\np\n\n\nt\n1\nfd\nt\n2\n82\nt\n3\nfd\nt\n4\nfd\nw\n" | fdisk /dev/sdb
    
  31. Create and activate swap partition
     mkswap /dev/sdb2
     swapon /dev/sdb2
    
  32. Create RAID volumes
     echo "y" | mdadm --create --verbose /dev/md11 --level=1 --raid-devices=2 missing /dev/sdb1
     echo "y" | mdadm --create --verbose /dev/md13 --level=1 --raid-devices=2 missing /dev/sdb3
     echo "y" | mdadm --create --verbose /dev/md14 --level=1 --raid-devices=2 missing /dev/sdb4
    
  33. Format RAID volumes
     mkfs.ext3 -F /dev/md11
     mkfs.ext3 -F /dev/md13
     mkfs.ext3 -F /dev/md14
    
  34. Mount RAID volumes
     mkdir -p                /mnt/lsmini
     mount -t ext3 /dev/md13 /mnt/lsmini
     mkdir -p                /mnt/lsmini/boot
     mount -t ext3 /dev/md11 /mnt/lsmini/boot
     mkdir -p                /mnt/lsmini/srv
     mount -t ext3 /dev/md14 /mnt/lsmini/srv
    


    Install Debian System

  35. Install root filesystem (from archive of debootstrap stage 2 files)
     cd /mnt/lsmini
     wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/5.0/bootstrap-debian-5.0.5-armel-stage2.tar.gz
     tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/bootstrap-debian-5.0.5-armel-stage2.tar.gz
    
  36. Install custom kernel (Debian 5.0 backported kernel 2.6.32-15)
     cd /mnt/lsmini
     wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/5.0/kernel-2.6.32-15-debian-lsmini.tar.gz
     tar --extract --verbose --same-permissions --gzip --file kernel-2.6.32-15-debian-lsmini.tar.gz
    
  37. Install custom boot loader (force boot from /dev/md13)
     cd /mnt/lsmini
     wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/initrd-md13-armv5tejl-softfloat-1.0.tar.gz
     tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/initrd-md13-armv5tejl-softfloat-1.0.tar.gz
    
  38. Prepare host settings (adjust host name and IP addresses as needed)
     export HOST_NAME=lsmini
     export HOST_ADDRESS=192.168.1.77
     export HOST_NETMASK=255.255.0.0
     export HOST_GATEWAY=192.168.1.1
    
  39. Configure network interface (/etc/network/interfaces)
     echo "# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or"  >/mnt/lsmini/etc/network/interfaces
     echo "# /usr/share/doc/ifupdown/examples for more information."          >>/mnt/lsmini/etc/network/interfaces
     echo "#"                        >>/mnt/lsmini/etc/network/interfaces
     echo "auto lo eth0"             >>/mnt/lsmini/etc/network/interfaces
     echo "iface lo inet loopback"   >>/mnt/lsmini/etc/network/interfaces
     echo "iface eth0 inet static"   >>/mnt/lsmini/etc/network/interfaces
     echo " address ${HOST_ADDRESS}" >>/mnt/lsmini/etc/network/interfaces
     echo " netmask ${HOST_NETMASK}" >>/mnt/lsmini/etc/network/interfaces
     echo " gateway ${HOST_GATEWAY}" >>/mnt/lsmini/etc/network/interfaces
    
  40. Configure host name (/etc/hostname)
     echo "${HOST_NAME}" >/mnt/lsmini/etc/hostname
    
  41. Configure mapping from address to host name (/etc/hosts)
     echo "127.0.0.1 localhost"           >/mnt/lsmini/etc/hosts
     echo "${HOST_ADDRESS} ${HOST_NAME}" >>/mnt/lsmini/etc/hosts
    
  42. Configure mount points (/etc/fstab) WARNING: Do not modify the last column... any value other than zero will cause the device to hang (at the console) on disk errors. Don't find out the hard way.
     echo "/dev/sdb2   none      swap   sw,pri=1                     0  0"  >/mnt/lsmini/etc/fstab
     echo "/dev/md13   /         ext3   noatime,errors=remount-ro    0  0" >>/mnt/lsmini/etc/fstab
     echo "/dev/md11   /boot     ext3   noatime,errors=remount-ro    0  0" >>/mnt/lsmini/etc/fstab
     echo "/dev/md14   /srv      ext3   noatime,errors=remount-ro    0  0" >>/mnt/lsmini/etc/fstab
     echo "shm         /dev/shm  tmpfs  noatime,nodev,nosuid,noexec  0  0" >>/mnt/lsmini/etc/fstab
    
  43. Configure network name resolution (/etc/resolv.conf)
     cp -a /etc/resolv.conf /mnt/lsmini/etc/resolv.conf
    
  44. Change root password (new password = lsmini)
     export SED_FILE='/mnt/lsmini/etc/shadow'
     export SED_SEARCH='^\s*root\:\*?\:'
     export SED_REPLACE='root:$6$bmlbpJYn$xAgZr6KxoRLjDcPZNDBcnMF52gZrU7xkib43LhSlAvzVS4OqmiHaxB0GInPtoaPQ2FguHQQuxM95cMfvUnYn31:'
     sed -r "s/${SED_SEARCH}/${SED_REPLACE}/" -i ${SED_FILE}
    
  45. Prepare for reboot (Overwrite factory-installed boot files with custom ones)
     cd /mnt/lsmini
     rm -rf /boot/*
     cp -a /mnt/lsmini/boot/* /boot/
    
  46. Wait for RAID synchronization to complete
     while egrep -iq '(recovery)|(resync)' /proc/mdstat; do
         clear
         cat /proc/mdstat
         sleep 5
     done
     clear
     cat /proc/mdstat
     sync
    
  47. Unmount RAID volumes
     sync
     cd /mnt
     umount /mnt/lsmini/boot
     umount /mnt/lsmini/srv
     umount /mnt/lsmini
    
  48. Reboot device
     reboot; logout
    


    Configure Debian System

  49. Wait for device to finish booting (no blinking lights)
  50. Assign new IP address to environment variable
     export IP_ADDRESS=192.168.1.77
    
  51. Use SSH to login as root (password = lsmini)
     ssh root@${IP_ADDRESS}
    
  52. Change root password to something hard to guess
     passwd root
    
  53. Configure package sources (/etc/apt/sources.list)
     echo "deb     http://ftp.debian.org      lenny         main contrib"  >/etc/apt/sources.list
     echo "deb-src http://ftp.debian.org      lenny         main contrib" >>/etc/apt/sources.list
     echo "deb     http://security.debian.org lenny/updates main contrib" >>/etc/apt/sources.list
     echo "deb-src http://security.debian.org lenny/updates main contrib" >>/etc/apt/sources.list
    
  54. Update package lists
     apt-get update
    
  55. Select timezone
     dpkg-reconfigure tzdata
    
  56. Ensure that date and time are correct
     date
    
  57. Make sure primary drive is not in use (/dev/sda)
     if hdparm -z /dev/sda ; then echo; echo "PRIMARY DRIVE READY (/dev/sda)"; echo; else grep sda /proc/mounts /proc/mdstat; echo "Please check that /dev/sda is not in use"; fi;
    
  58. Repartition primary drive (must have same partition sizes as secondary drive)
     PARTITION1_SIZE=128MB
     PARTITION2_SIZE=256MB
     PARTITION3_SIZE=12GB
     echo -e "d\n1\nd\n2\nd\n3\nd\n4\nn\np\n1\n\n+${PARTITION1_SIZE}\nn\np\n2\n\n+${PARTITION2_SIZE}\nn\np\n3\n\n+${PARTITION3_SIZE}\nn\np\n\n\nt\n1\nfd\nt\n2\n82\nt\n3\nfd\nt\n4\nfd\nw\n" | fdisk /dev/sda
    
  59. Format and activate swap partition on primary drive
     mkswap /dev/sda2
     swapon /dev/sda2
    
  60. Automatically mount swap partition at boot
     echo  "/dev/sda2   none      swap   sw,pri=2                     0  0"  >>/etc/fstab
    
  61. Add primary drive partitions to RAID volumes (/dev/md11, /dev/md13, and /dev/md14)
     echo "y" | mdadm --manage /dev/md11 --add /dev/sda1
     echo "y" | mdadm --manage /dev/md13 --add /dev/sda3
     echo "y" | mdadm --manage /dev/md14 --add /dev/sda4
    
  62. Add user (never login as root again, use sudo command instead)
     export USER_NAME=visitor
     adduser ${USER_NAME}
    
  63. Allow user to become super user (using sudo command)
     echo "${USER_NAME}    ALL=(ALL) ALL" >>/etc/sudoers
    
  64. Wait for RAID synchronization to complete
     while egrep -iq '(recovery)|(resync)' /proc/mdstat; do
         clear
         cat /proc/mdstat
         sleep 5
     done
     clear
     cat /proc/mdstat
     sync
    
  65. Restart device
     reboot; logout;
    

    Congratulations! You should now have a working Debian 5.0 server running on a Buffalo Linkstation Mini.

See Also


References