LS Pro Debootstrap Howto
From NAS-Central Buffalo - The Linkstation Wiki
(point to working micro_evtd package)
(added info to turn recommends off)
|Line 74:||Line 74:|
umount /mnt/disk1/proc /mnt/disk1
umount /mnt/disk1/proc /mnt/disk1
Revision as of 05:56, 10 October 2008
This article describes the procedure to install Debian on a Linkstation Pro or Kurobox Pro by creating a minimal installation on a Linux workstation and transferring it to a Linkstation. Access via serial cable is not required.
To run this procedure you will need a computer with some form of Linux installed on it, preferably Debian or a variant of it such as Ubuntu. The CPU architecture isn't relevant, so if you have another Linkstation with Debian on it that will work fine. Before you start, you need to install two packages: debootstrap and some form of HTTP or FTP server. If you don't have a server installed, I recommend vsftpd.
For these instructions to work your Pro you must be running at least a 2.6.16 kernel, or else the chroot command will not work. I recommend using the latest upstream Linux kernel instead of a Buffalo or Marvell modified one; you can follow these instructions to install a recent one. It is a good idea to adjust the size of your partitions before following this procedure, as the /dev/sda2 partition is very small by default. I suggest making it at least 5 GB. You also need to be using a modified initrd in order to boot the custom distribution.
Create the Stage 1 image
On your Linux workstation, pick a directory that you will stage the Debian install in. For my example I will use /tmp/debian. Become root and use debootstrap to create a minimal Debian installation in this directory:
su mkdir /tmp/debian debootstrap --foreign --arch armel lenny /tmp/debian
Now make a tarball from the installed files:
cd /tmp/debian tar cvzf ../debian.tar.gz *
Move the tarball to wherever your FTP server serves files from, for example /home/ftp.
Unpack the image and complete the debootstrap process
Now boot your Pro in EM mode and telnet to it. I'm assuming that you want to overwrite the installed system on /dev/sda2. If that's not what you want, don't run the mkfs command. Instead, choose another directory to install to.
I use the ext3 filesystem for this example because it's very likely that your kernel has support for it. If you'd like to use a different filesystem, it's up to you to determine whether the kernel you're using supports it.
Make a new filesystem on /dev/sda2 and mount it. Download the tarball from your FTP server, and unpack the minimal Debian image. Then chroot into it and complete the bootstrap process:
mke2fs -j /dev/sda2 mount -t ext3 /dev/sda2 /mnt/disk1 cd /mnt/disk1 wget ftp://ip.of.ftp.server/debian.tar.gz tar xvzf debian.tar.gz chroot /mnt/disk1 /debootstrap/debootstrap --second-stage
The last step may take a while, but you now have a full Debian system installed on your Linkstation. Don't reboot yet, though... we don't have a working system!
Configure the system and install additional software
There are two files that need to be configured before the system will run correctly, /etc/fstab and /etc/network/interfaces. The first describes the layout of filesystems on your disk; the second, as the name implies, configures network interfaces.
After mounting the proc filesystem, you can use chroot to enter the system and modify the configuration files:
mount -t proc proc /mnt/disk1/proc chroot /mnt/disk1 /bin/bash vi /etc/fstab vi /etc/network/interfaces
My suggested /etc/fstab file contains the layout you wound up with if you followed the instructions above.
/dev/sda1 /boot ext3 noatime 1 2 /dev/sda2 / ext3 noatime 0 1 /dev/sda5 none swap sw 0 0 /dev/sda6 /srv ext3 noatime 0 0
/srv is the location recommended by the FHS for data stored on the system by and for services such as FTP and Samba. Your partition may be formatted as XFS; if this is the case I recommend changing it to ext3, as XFS has known bugs on the ARM9 platform.
This /etc/network/interfaces will bring up the network device using DHCP.
auto lo eth0 iface lo inet loopback iface eth0 inet dhcp
You also need to install micro_evtd, which keeps the watchdog timer in the LS Pro happy, adjusts the fan speed for you, and such. The binaries and configuration files for micro_evtd are provided by lb_worm and stored in the downloads area.
cd / wget http://buffalo.nas-central.org/download/Users/goat/micro_evtd-20080531.tar.gz tar xvzpf micro_evtd-20080531.tar.gz rm micro_evtd-20080531.tar.gz
Next, update the package lists and install sshd so that you can access the Pro over the network after the install is done, and udev, the dynamic /dev manager:
apt-get update apt-get install ssh udev invoke-rc.d ssh stop
If you have a serial cable attached and wish to login via that, open /etc/inittab and ensure it has a line that looks like:
T0:23:respawn:/sbin/getty -L ttyS0 115200
Finally, change the root password, set the hostname for the next boot, exit the chroot, unmount the disk, and reboot. Your new system is ready!
passwd echo 'LS-GL' > /etc/hostname exit umount /mnt/disk1/proc /mnt/disk1 reboot
On reboot, it probably is a good idea to turn recommends off.
as root do -- echo "APT::Install-Recommends 0;" >/etc/apt/apt.conf.d/99recommends