I have a HP Compaq t5000 ThinClient. It’s a x86 small computer, which I decided to use as a headless small server. Currently it runs Windows XP. I want to install Debian Linux on it. In order to do this I need a storage device, because I don’t want to erase the Windows XP from the flash memory. Fortunately the flash memory is connected to the motherboard with a 44-pin IDE connector. I bought an adapter for a Compact Flash memory card.
I bought a cheap Kingston 4GB CF card, it was a little mistake to buy cheap and low performance card. When I tried to install a basic system on it, there were errors, saying that the write goes of of bounds of the device. Another error was that the inodes from ext2 file system were damaged and referenced to other. SO I bought another CF card, this time it’s a SanDisk Ultra 30 MB/s. I installed the basic Debian Linux system and it works without the I/O errors.
What I did so far. In order to create and install the basic system I used a Debian Linux 6 installed on a VM. Then I downloaded the basic system (all operations below done as root):
$ mkdir -v debian_hp $ debootstrap --arch i386 squeeze debian_hp http://ftp.debian.org/debian/
Next I chrooted into the newly installed system:
$ mount -t proc proc debian_hp/proc $ mount -o bind /dev debian_hp/dev $ LC_ALL=C chroot debian_hp /bin/bash
There are some packages to install:
$ apt-get install openssh-server linux-image-2.6.32-5-486 grub
Right now I am testing the CF card solution and it is RW, later when I configure my system better I will setup it to run as a RO file system, so there won’t be any writing to the card.
Some configuration files need to be setup before copying to the CF card. The fstab contains information how to mount partitions and virtual file systems. An example file can be copied from ‘/usr/share/doc/mount/examples/fstab’, below are the entries from file, which I created:
# Format: # /dev/sda1 / ext2 defaults,noatime 0 0 proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0
Next, configuration of the network interfaces, file ‘/etc/network/interfaces’:
auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.
The eth0 is set to static right now, because the ThinClient isn’t connected to my home network via the main switch/router. For the purpose of testing and setup I setup a static address and connect it directly to my laptop with a LAN cable.
Now lets get ready the CF card. I used fdisk and deleted all partitions (there was only one), created a new one with boot flag. Next using the mkfs.ext2 tool I created a file system on the card. Now I could copy my prepared system onto the card:
$ mkdir -v /mnt/cf $ mount /dev/sdc1 /mnt/cf $ cp -aR debian_hp/* /mnt/cf
After the files were copied, it’s time to install grub and configure it:
$ grub-install --root-directory /mnt/cf --recheck /dev/sdc
Chrooted into the CF card (/mnt/cf),update the grub configuration and invoke ‘passwd’ to setup root’s password:
$ update-grub $ passwd
Exit from chroot, unmount the CF card and plugin into the ThinClient. The system boots up, there are no errors regarding I/O, but some minor errors are in the logs. Probably I didn’t configure something properly.