If you have been toying around with the usual mainstream Linux distributions like Ubuntu, Fedora, RedHat, Debian etc., you've realized that most bring large amount of stuff and apps along that you might or might not need. There are alternatives out there that try to be minimalistic ArchLinux or just more lean and mean #! (CrunchBang) Linux), but they all have more or less bloat.
For a living, I've been working with (and also working on the OS) Windows for the past 20+ years. But I do have some work experience with Unix from the late 80s and early 90s. Hence it was tempting for my technical curiosity to get a refresher into the inner works of a Unix kernel and its X Window graphic stack. In the course of getting a small and nimble system up, I hope to also learn and understand how modern Linux systems are organized, configured and layered.
As I mentioned at other opportunities, the stubborn robustness of Debian and its elegant configuration system resonate well with my engineering aesthetics, so I've chosen Debian 6.0/Squeeze (as of now, Jan 2011, it is in its final stretch before the release as the next “stable”).
Speaking of personal preferences:
As mentioned above, I have a subjective preference to Debian, it will be the basis of my journey here.
Start with the NetInstall for Debian 6.0/Squeeze. As of this writing, that release is on its final weeks to become the next "stable" release.
Find the NetInstall ISO image from
|http://www.debian.org/CD/netinst/||stable, still Lenny/5.0|
With the downloaded NetInstall ISO (typically in the order of ~180MB), burn a CD.
To create a USB, look for section “4.3. Preparing Files for USB Memory Stick Booting” in the installation manual
List of available deb packages, by category:
Dell PowerEdge SC420, ~4 years old
on my system, sdb & sdc are already configured as RAID10 (stripped and mirrored) with LVM logical volumes, see RAID10 on Linux
Boot parameters of Debian installer: http://www.debian.org/releases/stable/i386/ch05s03.html.en#installer-args
apt-get install sudo visudo
# User privilege specification root ALL=(ALL) ALL david ALL=(ALL) ALL
ps -A |grep david
mv /home /old-home mkdir /home
cat /proc/mdstat pvscan lvscan
(alter the device name, depends on your lvm setup. I chose to name the one volume group 'vg0' and the logical volumes lvN, hence the /dev/vg0/lv0 device name)
/dev/vg0/lv0 /home ext4 nodev,async 0 1
mount -a mv /old-home/david /home
The base system is now ready to login as regular user. We're still in text-only mode, you can switch to a second (or third, fourth …) login session with:
Ctrl + Alt + F2 * by default, the APT system only uses the pure Debian repository, time to add "contrib" and "non-free" to apt's sources.list:
sudo vi /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/debian/ squeeze/updates main contrib non-free
sudo apt-get update
SSH (actually in its OpenSSH incarnation) allows secure remote access to a command line terminal and copying.
sudo apt-get install ssh sudo apt-get install denyhosts pwgen
To connect from a Windows system, use putty. While logged in to the SSH server system (preferably via a known, secure connection, e.g. physical console or Linode's LISH), the RSA fingerprint of the server can be displayed:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
This fingerprint must match what putty or ssh client shows you on first connect via SSH.
If possible, use public key based authentication: TODO: describe setup
TODO: describe how to access via router
More SSH links:
Additional little tweaks to make day-to-day life good:
sudo apt-get install cifs-utils
sudo apt-get install xfonts-terminus
add the following to ~/.fonts.conf:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit name="rgba" mode="assign"><const>rgb</const></edit> <edit mode="assign" name="antialias"><bool>true</bool></edit> <edit mode="assign" name="lcdfilter"><const>lcddefault</const></edit> </match> </fontconfig>
and restart the X server
This is now a workable system but it still lacks critter-comfort, even for my taste. Continue to add a GUI and window manager.