Difference between revisions of "Install Debian 6.0 (Squeeze) On Buffalo Linkstation Mini"
Rpinchbeck (Talk | contribs) m (Corrected bug description) |
Rpinchbeck (Talk | contribs) m (Adjusted date and partition sizes) |
||
(26 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
__TOC__ | __TOC__ | ||
+ | |||
== Overview == | == Overview == | ||
− | The following process converts a [[:Category:LS-WSGL/R1|Buffalo Linkstation Mini]] (model LS-WSxxxxGL/R1) into a | + | The following process converts a [[:Category:LS-WSGL/R1|Buffalo Linkstation Mini]] (model LS-WSxxxxGL/R1) into a [http://www.gnu.org/gnu/linux-and-gnu.html GNU/Linux] server running [http://en.wikipedia.org/wiki/Debian Debian] version 6.0.5 (Squeeze) with the Debian 6.0 [http://en.wikipedia.org/wiki/Linux_kernel Linux] kernel (version 2.6.32-45). |
+ | '''No disassembly required.''' | ||
+ | Both [http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_1 RAID1 (Mirroring)] and [http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0 RAID0 (Striping)] configurations are supported. | ||
Here is how the process works: | Here is how the process works: | ||
# Use ACP Commander software to establish Telnet session with device | # Use ACP Commander software to establish Telnet session with device | ||
# Uncouple secondary drive partitions from existing RAID configuration | # Uncouple secondary drive partitions from existing RAID configuration | ||
− | # Partition and format secondary drive, install Debian 6.0, and prepare for initial boot | + | # Partition and format secondary drive, install Debian 6.0 (Squeeze), and prepare for initial boot |
# Reboot device, establish SSH session with device, and complete installation | # Reboot device, establish SSH session with device, and complete installation | ||
+ | |||
== Requirements == | == Requirements == | ||
Line 19: | Line 23: | ||
#* 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]] | #* 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. | + | # Ubuntu 10.04 Desktop Edition CD-ROM (download and burn [http://releases.ubuntu.com/lucid/ubuntu-10.04.4-desktop-i386.iso this disc image]) |
# Computer which can boot the Ubuntu 10.04 Desktop Edition CD-ROM and access the network successfully (most modern computers meet this requirement) | # Computer which can boot the Ubuntu 10.04 Desktop Edition CD-ROM and access the network successfully (most modern computers meet this requirement) | ||
+ | |||
== Instructions == | == Instructions == | ||
Line 99: | Line 104: | ||
<li> Set recent date and time (prevent error messages about file dates, format=MMDDhhnnYYYY) | <li> Set recent date and time (prevent error messages about file dates, format=MMDDhhnnYYYY) | ||
<pre> | <pre> | ||
− | date | + | date 081300002012 |
</pre> | </pre> | ||
Line 109: | Line 114: | ||
</pre> | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Disable all active swap paritions | ||
+ | <pre> | ||
+ | swapoff -a | ||
+ | |||
+ | </pre> | ||
</li> | </li> | ||
Line 151: | Line 163: | ||
|2 | |2 | ||
|swap | |swap | ||
− | | | + | |512MB |
|82 | |82 | ||
|linux swap | |linux swap | ||
Line 171: | Line 183: | ||
<pre> | <pre> | ||
PARTITION1_SIZE=128MB | PARTITION1_SIZE=128MB | ||
− | PARTITION2_SIZE= | + | PARTITION2_SIZE=512MB |
PARTITION3_SIZE=12GB | 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 | 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 | ||
Line 190: | Line 202: | ||
echo "y" | mdadm --create --verbose /dev/md11 --level=1 --raid-devices=2 missing /dev/sdb1 | 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/md13 --level=1 --raid-devices=2 missing /dev/sdb3 | ||
− | |||
</pre> | </pre> | ||
Line 199: | Line 210: | ||
mkfs.ext3 -F /dev/md11 | mkfs.ext3 -F /dev/md11 | ||
mkfs.ext3 -F /dev/md13 | mkfs.ext3 -F /dev/md13 | ||
− | |||
</pre> | </pre> | ||
</li> | </li> | ||
+ | |||
+ | |||
+ | === Install Debian System === | ||
<li> Mount RAID volumes | <li> Mount RAID volumes | ||
Line 210: | Line 223: | ||
mkdir -p /mnt/lsmini/boot | mkdir -p /mnt/lsmini/boot | ||
mount -t ext3 /dev/md11 /mnt/lsmini/boot | mount -t ext3 /dev/md11 /mnt/lsmini/boot | ||
− | |||
− | |||
</pre> | </pre> | ||
</li> | </li> | ||
− | + | <li> Install custom boot loader (force boot from /dev/md13) | |
− | + | ||
− | + | ||
− | <li> Install | + | |
<pre> | <pre> | ||
cd /mnt/lsmini | cd /mnt/lsmini | ||
− | wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/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/ | + | tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/initrd-md13-armv5tejl-softfloat-1.0.tar.gz |
</pre> | </pre> | ||
</li> | </li> | ||
− | <li> Install custom kernel (Debian 6.0 kernel 2.6.32- | + | <li> Install custom kernel (Debian 6.0 Linux kernel 2.6.32-45) |
<pre> | <pre> | ||
cd /mnt/lsmini | cd /mnt/lsmini | ||
− | wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/6.0/kernel-2.6.32- | + | wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/6.0/kernel-2.6.32-45-debian-lsmini.tar.gz |
− | tar --extract --verbose --same-permissions --gzip --file kernel-2.6.32- | + | tar --extract --verbose --same-permissions --gzip --file kernel-2.6.32-45-debian-lsmini.tar.gz |
</pre> | </pre> | ||
</li> | </li> | ||
− | <li> Install | + | <li> Install root filesystem (from archive of debootstrap stage 2 files) |
<pre> | <pre> | ||
cd /mnt/lsmini | cd /mnt/lsmini | ||
− | wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/ | + | wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/6.0/bootstrap-debian-6.0.5-armel-stage2.tar.gz |
− | tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/ | + | tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/bootstrap-debian-6.0.5-armel-stage2.tar.gz |
</pre> | </pre> | ||
Line 293: | Line 301: | ||
echo "/dev/md13 / ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab | echo "/dev/md13 / ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab | ||
echo "/dev/md11 /boot ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab | echo "/dev/md11 /boot ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab | ||
− | |||
echo "none /dev/shm tmpfs noatime,nodev,nosuid,noexec 0 0" >>/mnt/lsmini/etc/fstab | echo "none /dev/shm tmpfs noatime,nodev,nosuid,noexec 0 0" >>/mnt/lsmini/etc/fstab | ||
Line 311: | Line 318: | ||
SED_SEARCH='^\s*root\:\*?\:' | SED_SEARCH='^\s*root\:\*?\:' | ||
SED_REPLACE='root:$6$bmlbpJYn$xAgZr6KxoRLjDcPZNDBcnMF52gZrU7xkib43LhSlAvzVS4OqmiHaxB0GInPtoaPQ2FguHQQuxM95cMfvUnYn31:' | SED_REPLACE='root:$6$bmlbpJYn$xAgZr6KxoRLjDcPZNDBcnMF52gZrU7xkib43LhSlAvzVS4OqmiHaxB0GInPtoaPQ2FguHQQuxM95cMfvUnYn31:' | ||
− | sed -r "s | + | sed -r "s~${SED_SEARCH}~${SED_REPLACE}~" -i "${SED_FILE}" |
</pre> | </pre> | ||
</li> | </li> | ||
− | <li> Workaround bug in Debian 6 (/etc/network/run links to /dev/shm/network but directory is missing) | + | <li> Workaround bug in Debian 6 (/etc/network/run links to /dev/shm/network, but directory is missing, which prevents network interfaces from starting) |
<pre> | <pre> | ||
mv /mnt/lsmini/etc/network/run run.original | mv /mnt/lsmini/etc/network/run run.original | ||
Line 353: | Line 360: | ||
cd /mnt | cd /mnt | ||
umount /mnt/lsmini/boot | umount /mnt/lsmini/boot | ||
− | |||
umount /mnt/lsmini | umount /mnt/lsmini | ||
Line 361: | Line 367: | ||
<li> Reboot device | <li> Reboot device | ||
<pre> | <pre> | ||
− | reboot; logout | + | sync; reboot; logout |
</pre> | </pre> | ||
Line 416: | Line 422: | ||
<pre> | <pre> | ||
PARTITION1_SIZE=128MB | PARTITION1_SIZE=128MB | ||
− | PARTITION2_SIZE= | + | PARTITION2_SIZE=512MB |
PARTITION3_SIZE=12GB | 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 | 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 | ||
Line 431: | Line 437: | ||
</li> | </li> | ||
− | <li> Automatically mount swap partition | + | <li> Automatically mount swap partition during boot |
<pre> | <pre> | ||
echo "/dev/sda2 none swap sw,pri=2 0 0" >>/etc/fstab | echo "/dev/sda2 none swap sw,pri=2 0 0" >>/etc/fstab | ||
Line 438: | Line 444: | ||
</li> | </li> | ||
− | <li> Add primary drive partitions to RAID volumes (/dev/md11 | + | <li> Add primary drive partitions to RAID volumes (/dev/md11 and /dev/md13) |
<pre> | <pre> | ||
echo "y" | mdadm --manage /dev/md11 --add /dev/sda1 | echo "y" | mdadm --manage /dev/md11 --add /dev/sda1 | ||
echo "y" | mdadm --manage /dev/md13 --add /dev/sda3 | echo "y" | mdadm --manage /dev/md13 --add /dev/sda3 | ||
− | echo "y" | mdadm -- | + | |
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Create large RAID volume on /dev/md14 (substitute RAID level as desired; 1=Mirroring, 0=Striping) | ||
+ | <pre> | ||
+ | RAID_LEVEL=1 | ||
+ | echo "y" | mdadm --create --verbose /dev/md14 --level=${RAID_LEVEL} --raid-devices=2 /dev/sda4 /dev/sdb4 | ||
+ | |||
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Format large RAID volume | ||
+ | <pre> | ||
+ | mkfs.ext3 -F /dev/md14 | ||
+ | |||
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Mount large RAID volume (as /srv) | ||
+ | <pre> | ||
+ | mount -t ext3 /dev/md14 /srv | ||
+ | |||
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Automatically mount large RAID volume during boot (as /srv) | ||
+ | <pre> | ||
+ | echo "/dev/md14 /srv ext3 noatime 0 0" >>/etc/fstab | ||
+ | |||
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Clean up mdadm.conf (allow detection of all RAID volumes during boot) | ||
+ | <pre> | ||
+ | SED_FILE='/etc/mdadm/mdadm.conf' | ||
+ | SED_SEARCH='^\s*ARRAY\s+.*$' | ||
+ | SED_REPLACE='' | ||
+ | sed -r "s~${SED_SEARCH}~${SED_REPLACE}~" -i "${SED_FILE}" | ||
+ | mdadm --quiet --detail --scan >>/etc/mdadm/mdadm.conf | ||
</pre> | </pre> | ||
Line 452: | Line 497: | ||
SED_SEARCH='(^\s*[0-9]+\:[0-9]+\:respawn\:\/sbin\/getty\s+[0-9]+\s+tty[0-9]+\s*$)' | SED_SEARCH='(^\s*[0-9]+\:[0-9]+\:respawn\:\/sbin\/getty\s+[0-9]+\s+tty[0-9]+\s*$)' | ||
SED_REPLACE='#\1' | SED_REPLACE='#\1' | ||
− | sed -r "s~${SED_SEARCH}~${SED_REPLACE}~g" -i ${SED_FILE} | + | sed -r "s~${SED_SEARCH}~${SED_REPLACE}~g" -i "${SED_FILE}" |
+ | |||
+ | </pre> | ||
+ | </li> | ||
+ | |||
+ | <li> Allow USB flash drives formatted with the VFAT file system (Windows) to be mounted automatically in /media/usb | ||
+ | <pre> | ||
+ | SED_FILE='/etc/usbmount/usbmount.conf' | ||
+ | SED_SEARCH='^(\s*FILESYSTEMS\s*=\s*\")(.*)(\"\s*)$' | ||
+ | SED_REPLACE='\1\2 vfat\3' | ||
+ | if ! grep -E '^\s*FILESYSTEMS\s*=\s*\"((vfat\s+[^\"]*)|([^\"]*\s+vfat\s+[^\"]*)|([^\"]*\s+vfat))\"$' "${SED_FILE}"; then sed -r "s~${SED_SEARCH}~${SED_REPLACE}~g" -i "${SED_FILE}"; fi | ||
</pre> | </pre> | ||
Line 459: | Line 514: | ||
<li> Configure package sources (/etc/apt/sources.list) | <li> Configure package sources (/etc/apt/sources.list) | ||
<pre> | <pre> | ||
− | echo "deb | + | echo "deb http://ftp.debian.org/debian squeeze main contrib" >/etc/apt/sources.list |
− | echo "deb-src http://ftp.debian.org | + | echo "deb-src http://ftp.debian.org/debian squeeze main contrib" >>/etc/apt/sources.list |
− | echo "deb | + | echo "deb http://security.debian.org squeeze/updates main contrib" >>/etc/apt/sources.list |
− | echo "deb-src http://security.debian.org squeeze/updates main contrib" >>/etc/apt/sources.list | + | echo "deb-src http://security.debian.org squeeze/updates main contrib" >>/etc/apt/sources.list |
</pre> | </pre> | ||
Line 490: | Line 545: | ||
<li> Restart device | <li> Restart device | ||
<pre> | <pre> | ||
− | reboot; logout | + | sync; reboot; logout |
</pre> | </pre> | ||
Line 499: | Line 554: | ||
=== Extras === | === Extras === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<li> Add user (never login as root again, use sudo command instead) | <li> Add user (never login as root again, use sudo command instead) | ||
Line 525: | Line 571: | ||
</ol> | </ol> | ||
+ | |||
== See Also == | == See Also == | ||
* [[Revert Buffalo Linkstation Mini To Stock Firmware]] | * [[Revert Buffalo Linkstation Mini To Stock Firmware]] | ||
− | * [[Install_Debian_5.0_(Lenny)_On_Buffalo_Linkstation_Mini|Install Debian 5.0 ( | + | * [[Install_Debian_5.0_(Lenny)_On_Buffalo_Linkstation_Mini|Install Debian 5.0 (Lenny) On Linkstation Mini]] |
− | * [[Install_Ubuntu_9.04_(Jaunty_Jackalope)_On_Buffalo_Linkstation_Mini|Install Ubuntu 9.04 On Linkstation Mini]] | + | * [[Install_Ubuntu_9.04_(Jaunty_Jackalope)_On_Buffalo_Linkstation_Mini|Install Ubuntu 9.04 (Jaunty Jackelope) On Linkstation Mini]] |
* [[LS_Mini:_Install_Gentoo|Install Gentoo On Linkstation Mini]] | * [[LS_Mini:_Install_Gentoo|Install Gentoo On Linkstation Mini]] | ||
* [[GenLink for ARM9]] | * [[GenLink for ARM9]] | ||
+ | |||
== References == | == References == |
Latest revision as of 22:53, 11 August 2012
![]() |
Contents
Overview
The following process converts a Buffalo Linkstation Mini (model LS-WSxxxxGL/R1) into a GNU/Linux server running Debian version 6.0.5 (Squeeze) with the Debian 6.0 Linux kernel (version 2.6.32-45). No disassembly required. Both RAID1 (Mirroring) and RAID0 (Striping) configurations are supported. Here is how the process works:
- Use ACP Commander software to establish Telnet session with device
- Uncouple secondary drive partitions from existing RAID configuration
- Partition and format secondary drive, install Debian 6.0 (Squeeze), and prepare for initial boot
- Reboot device, establish SSH session with device, and complete installation
Requirements
- 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
- Ubuntu 10.04 Desktop Edition CD-ROM (download and burn this disc image)
- Computer which can boot the Ubuntu 10.04 Desktop Edition CD-ROM and access the network successfully (most modern computers meet this requirement)
Instructions
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
- Disconnect power cable from device
- Disconnect all USB devices (and keep them disconnected for the duration of this process)
- Move device switch to "on" position
- Attach device to network
- Connect power cable to device
- Wait for device to finish booting (no blinking lights)
- Open device web interface (factory default address is http://192.168.11.150, or use the IP address assigned by your network)
- Login (user = admin, password = password)
- Remove existing RAID configuration (Disk Management | RAID Setup | RAID Array 1 | Change RAID Array ...)
- Create new RAID1 (mirroring) array (Disk Management | RAID Setup | RAID Array 1 | RAID Mode: RAID1 ...)
- Wait for "Building RAID Array" to complete
- Boot Ubuntu 10.04 Desktop Edition CD-ROM on computer
- Select language as desired (English)
- Click on "Try Ubuntu 10.04 LTS" (to use Ubuntu without making any changes to your system)
- Open a new terminal window (Applications | Accessories | Terminal )
- Start a new bash shell with root privileges
sudo bash
- Install OpenJDK (for running ACP Commander software)
apt-get update apt-get -q -y install openjdk-6-jre
- Download ACP Commander software (acp_commander.jar)
wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/acp_commander.jar
- Determine IP address of device and assign it to environment variable (substitute appropriate IP address)
IP_ADDRESS=192.168.11.150
- Instruct device to enable Telnet and remove root password
java -jar acp_commander.jar -t ${IP_ADDRESS} -o
- Establish Telnet session with device
telnet ${IP_ADDRESS}
- Login as root (no password required)
- Set recent date and time (prevent error messages about file dates, format=MMDDhhnnYYYY)
date 081300002012
- Kill all unnecessary processes
kill -9 $(ps | grep -vE '\[.*\]|(init)|(syslogd)|(klogd)|(getty)|(telnetd)|(-sh)|(ps)|(VmSize)|(grep)|(kill)|(awk)' | awk '{print $1}')
- Disable all active swap paritions
swapoff -a
- 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
- 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;
- Repartition secondary drive (substitute partition sizes as desired)
PARTITION1_SIZE=128MB PARTITION2_SIZE=512MB 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
- Create and activate swap partition
mkswap /dev/sdb2 swapon /dev/sdb2
- 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
- Format RAID volumes
mkfs.ext3 -F /dev/md11 mkfs.ext3 -F /dev/md13
- 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
- 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
- Install custom kernel (Debian 6.0 Linux kernel 2.6.32-45)
cd /mnt/lsmini wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/6.0/kernel-2.6.32-45-debian-lsmini.tar.gz tar --extract --verbose --same-permissions --gzip --file kernel-2.6.32-45-debian-lsmini.tar.gz
- Install root filesystem (from archive of debootstrap stage 2 files)
cd /mnt/lsmini wget http://downloads.buffalo.nas-central.org/Users/rpinchbeck/lsmini/debian/6.0/bootstrap-debian-6.0.5-armel-stage2.tar.gz tar --extract --verbose --same-permissions --gzip --file /mnt/lsmini/bootstrap-debian-6.0.5-armel-stage2.tar.gz
- Prepare host settings (adjust host name and IP addresses as needed)
HOST_NAME=lsmini HOST_ADDRESS=192.168.1.77 HOST_NETMASK=255.255.255.0 HOST_GATEWAY=192.168.1.1
- 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 rm -f /mnt/lsmini/etc/udev/rules.d/[0-9]*-persistent-net.rules # remove all persistent network devices (force auto detection of eth0)
- Configure host name (/etc/hostname)
echo "${HOST_NAME}" >/mnt/lsmini/etc/hostname
- 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
- Configure mount points (/etc/fstab)
echo "/dev/sdb2 none swap sw,pri=1 0 0" >/mnt/lsmini/etc/fstab echo "/dev/md13 / ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab echo "/dev/md11 /boot ext3 noatime 0 0" >>/mnt/lsmini/etc/fstab echo "none /dev/shm tmpfs noatime,nodev,nosuid,noexec 0 0" >>/mnt/lsmini/etc/fstab
- Configure network name resolution (/etc/resolv.conf)
cp -a /etc/resolv.conf /mnt/lsmini/etc/resolv.conf
- Change root password (new password = lsmini)
SED_FILE='/mnt/lsmini/etc/shadow' SED_SEARCH='^\s*root\:\*?\:' SED_REPLACE='root:$6$bmlbpJYn$xAgZr6KxoRLjDcPZNDBcnMF52gZrU7xkib43LhSlAvzVS4OqmiHaxB0GInPtoaPQ2FguHQQuxM95cMfvUnYn31:' sed -r "s~${SED_SEARCH}~${SED_REPLACE}~" -i "${SED_FILE}"
- Workaround bug in Debian 6 (/etc/network/run links to /dev/shm/network, but directory is missing, which prevents network interfaces from starting)
mv /mnt/lsmini/etc/network/run run.original mkdir /mnt/lsmini/etc/network/run touch /mnt/lsmini/etc/network/run/ifstate
- Prepare for reboot (Overwrite factory-installed boot files with custom ones)
cd /mnt/lsmini rm -rf /boot/* cp -a /mnt/lsmini/boot/* /boot/
- 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
- Unmount RAID volumes
sync cd /mnt umount /mnt/lsmini/boot umount /mnt/lsmini
- Reboot device
sync; reboot; logout
- Wait for device to finish booting (no blinking lights)
- Assign new IP address to environment variable
IP_ADDRESS=192.168.1.77
- Use SSH to login as root (password = lsmini)
ssh root@${IP_ADDRESS}
- Change root password to something hard to guess
passwd root
- Select timezone
dpkg-reconfigure tzdata
- Ensure that date and time are correct
date
- 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;
- Repartition primary drive (must have same partition sizes as secondary drive)
PARTITION1_SIZE=128MB PARTITION2_SIZE=512MB 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
- Format and activate swap partition on primary drive
mkswap /dev/sda2 swapon /dev/sda2
- Automatically mount swap partition during boot
echo "/dev/sda2 none swap sw,pri=2 0 0" >>/etc/fstab
- Add primary drive partitions to RAID volumes (/dev/md11 and /dev/md13)
echo "y" | mdadm --manage /dev/md11 --add /dev/sda1 echo "y" | mdadm --manage /dev/md13 --add /dev/sda3
- Create large RAID volume on /dev/md14 (substitute RAID level as desired; 1=Mirroring, 0=Striping)
RAID_LEVEL=1 echo "y" | mdadm --create --verbose /dev/md14 --level=${RAID_LEVEL} --raid-devices=2 /dev/sda4 /dev/sdb4
- Format large RAID volume
mkfs.ext3 -F /dev/md14
- Mount large RAID volume (as /srv)
mount -t ext3 /dev/md14 /srv
- Automatically mount large RAID volume during boot (as /srv)
echo "/dev/md14 /srv ext3 noatime 0 0" >>/etc/fstab
- Clean up mdadm.conf (allow detection of all RAID volumes during boot)
SED_FILE='/etc/mdadm/mdadm.conf' SED_SEARCH='^\s*ARRAY\s+.*$' SED_REPLACE='' sed -r "s~${SED_SEARCH}~${SED_REPLACE}~" -i "${SED_FILE}" mdadm --quiet --detail --scan >>/etc/mdadm/mdadm.conf
- Disable login terminals (prevent error messages in /var/log/syslog every 5 minutes about /sbin/getty respawning too fast)
SED_FILE='/etc/inittab' SED_SEARCH='(^\s*[0-9]+\:[0-9]+\:respawn\:\/sbin\/getty\s+[0-9]+\s+tty[0-9]+\s*$)' SED_REPLACE='#\1' sed -r "s~${SED_SEARCH}~${SED_REPLACE}~g" -i "${SED_FILE}"
- Allow USB flash drives formatted with the VFAT file system (Windows) to be mounted automatically in /media/usb
SED_FILE='/etc/usbmount/usbmount.conf' SED_SEARCH='^(\s*FILESYSTEMS\s*=\s*\")(.*)(\"\s*)$' SED_REPLACE='\1\2 vfat\3' if ! grep -E '^\s*FILESYSTEMS\s*=\s*\"((vfat\s+[^\"]*)|([^\"]*\s+vfat\s+[^\"]*)|([^\"]*\s+vfat))\"$' "${SED_FILE}"; then sed -r "s~${SED_SEARCH}~${SED_REPLACE}~g" -i "${SED_FILE}"; fi
- Configure package sources (/etc/apt/sources.list)
echo "deb http://ftp.debian.org/debian squeeze main contrib" >/etc/apt/sources.list echo "deb-src http://ftp.debian.org/debian squeeze main contrib" >>/etc/apt/sources.list echo "deb http://security.debian.org squeeze/updates main contrib" >>/etc/apt/sources.list echo "deb-src http://security.debian.org squeeze/updates main contrib" >>/etc/apt/sources.list
- Update package lists
apt-get update
- 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
- Restart device
sync; reboot; logout
- Add user (never login as root again, use sudo command instead)
USER_NAME=visitor adduser ${USER_NAME}
- Allow user to become super user (using sudo command)
echo "${USER_NAME} ALL=(ALL) ALL" >>/etc/sudoers
Prepare Device
![]() |
You may proceed immediately after the array has been built (you do not need to wait for the drive check to complete)
![]() |
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 | 512MB | 82 | linux swap |
3 | / (root) | 12GB | fd | linux raid autodetect |
4 | /srv | 100% | fd | linux raid autodetect |
Install Debian System
Configure Debian System
Congratulations! You should now have a working Debian 6.0 server running on a Buffalo Linkstation Mini.
Extras
See Also
- Revert Buffalo Linkstation Mini To Stock Firmware
- Install Debian 5.0 (Lenny) On Linkstation Mini
- Install Ubuntu 9.04 (Jaunty Jackelope) On Linkstation Mini
- Install Gentoo On Linkstation Mini
- GenLink for ARM9