/etc/apt/sources.list contains a list of archives which contain Debian packages for installing.
see tips
The following edit is required to allow apt-get to find the lessdisks archive
file: | /etc/apt/sources.list |
---|---|
add: | deb http://lessdisks.sourceforge.net/debian/current ./ |
The following command will update the local apt-get information
user: | root |
---|---|
command: | apt-get update |
fetch the lessdisks package from the archive
user: | root |
---|---|
command: | apt-get install lessdisks |
There may be a couple warning dialogs about kernel linking and statd/tcpwrappers. Read them, or not, and continue.
run the script which does the actual install
user: | root |
---|---|
command: | lessdisks-install |
You will be shown a menu which allows checking and changing
The default values should work, check them, change them, or not: select;
You will see a dialog:
about to install lessdisks...
==ok==
Dialog: archive location... what kind of debian archive would you like to install from? select: web
message:
Installation method chosen as web setting archive to default: http.us.debian.org/debian proceeding with installation ... (this will also check for missing or incomplete files again)
Lessdisks is downloading lots of stuff, the messages don't change for quite a while.
I find it comforting to switch to another terminal (ALT-F2) and running:
$ top
top shows running processes. You will see that wget and debootstrap are busy fetching what you need.
Next will be a report on what packages will be installed, and the prompt:
Need to get 13.9MB of archives. After unpacking 42.5MB will be used. Do you want to continue? [Y/n]?
Might as well.
Another message like the previous:
.... Do you want to continue? [Y/n]?
dialog: | Add a mime handler for "application/*" ? |
---|---|
response: | Default |
dialog: | Manage X server wrapper configuration with debconf? |
response: | No |
dialog: | Manage XFree86 server configuration file with debconf? |
response: | No |
dialog: | Would you like to run thttpd in a chroot 'jail'? |
response: | Default |
activity: | lots of progress messages scrolling by |
user: | root |
---|---|
command: | adduser $username lessdisks |
examine: | /usr/share/doc/lessdisks/examples/exports |
---|---|
user: | root |
edit: | make required changes and save to /etc/exports |
command: | /etc/init.d/portmap restart |
command: | /etc/init.d/nfs-common restart |
command: | /etc/init.d/nfs-kernel-server restart |
user: | root |
---|---|
command: | apt-get install dhcp |
examine: | /usr/share/doc/lessdisks/examples/dhcpd.conf |
---|---|
user: | root |
edit: | make required changes and save to /etc/dhcpd.conf |
restart: | /etc/init.d/dhcp restart |
==At this point you should be able to boot a terminal machine==
If you boot a machine on the network from floppy which has a properly configured http://rom-o-matic.net image, it should find the server's DHCP server, load the kernel image on the server.
This would be a good time to turn on remote syslogging, so that the messages generated by terminals will appear in /var/log/syslog
sdm is a secure login manager, using ssh. (as an alternative to xdm/kdm/gdm/wdm or other xdmcp server)
user: | root |
---|---|
command: | apt-get install sdm |
dialog: | Configuring Ssh
|
||||||
---|---|---|---|---|---|---|---|
dialog: | Configuring Ssh
|
||||||
dialog: | Configuring Ssh
|
||||||
dialog: | Configuring Ssh
|
Apt-get now installs sdm, ssh and a few other things.
user: | root |
---|---|
file: | /etc/ssh/sshd_config |
edit: | X11Forwarding yes |
restart: | /etc/init.d/ssh restart |
task: | create /var/lib/lessdisks/root/.ssh/known_hosts 1 |
known_hosts is a file with the following structure:
(replace [servername]? with the name of your server) (<key> is a long string of random characters) disk ssh-rsa <key>= root@[servername]? disk ssh-dss <key>= root@[servername]? xdm1 ssh-rsa <key>= root@[servername]? xdm1 ssh-dss <key>= root@[servername]? [<servername]? ssh-rsa <key>= root@[servername]? [servername]? ssh-dsa <key>= root@[servername]?
ssh-rsa <key>= root@[servername]? is the contents of the file:
/etc/ssh/ssh_host_rsa_key.pub
ssh-dss <key>= root@[servername]? is the contents of the file:
/etc/ssh/ssh_host_dsa_key.pub
Follow these steps to create the required file:
One way to do this using the "vi" (or "Vim") editor is as follows:
$ mkdir /var/lib/lessdisks/root/.ssh $ vi /var/lib/lessdisks/root/.ssh/known_hosts <vi> :r /etc/ssh/ssh_host_rsa_key.pub (the colon puts you in command mode, the 'r' command reads a file into the current document) <vi> :r /etc/ssh/ssh_host_dsa_key.pub <vi> [up arrow]? (put the cursor at the beginning of the file) <vi> 2dd (the 2 executes the 'dd' (delete line) 2 times, the file should now be empty) <vi> 3p (the 3 executes the 'p' command (put) 3 times, the file should now contain the keys repeated 3 times) <vi> i ('i' puts vi in insert mode, which is regular edit mode) add disk, xdm1 and [servername]? to each set of keys. <vi> <ESC> (<ESC> returns to normal mode from insert mode) <vi> :wq (the 'w' writes (saves) the file, the 'q' quits)
user: | root |
---|---|
command: | chroot /var/lib/lessdisks apt-get install sdm-terminal |
displays the Configuring Ssh dialogs ...
note: | this step is not needed for recent version of sdm |
---|---|
file: | /var/lib/lessdisks/etc/inittab |
edit: | comment out x5:5:respawn:/usr/X11R6/bin/X-lessdisks -query xdm2 |
insert: | sdm5:5:respawn:/usr/sbin/sdm |
In the following example the terminal has a Mach 64 video card installed
user: | root |
---|---|
command: | chroot /var/lib/lessdisks apt-get install xserver-mach64 |
user: | root |
---|---|
command: | apt-get install xdialog |
user: | root |
command: | chroot /var/lib/lessdisks apt-get install xdialog |
user: | root |
---|---|
command: | chroot /var/lib/lessdisks apt-get install dialog |
A basic login manager
user: | root |
---|---|
command: | apt-get install xdm |
edit: | /etc/X11/xdm/Xaccess |
restart: | /etc/init.d/xdm restart |
other alternatives to xdm include kdm, gdm and wdm.
the X font server is used to access and maintain fonts in a single place
user: | root |
---|---|
command: | apt-get install xfs xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable |
user: | root |
---|---|
file: | /etc/X11/fs/config |
edit: | comment out no-listen = tcp |
restart: | /etc/init.d/xfs restart |
At least 1 window manager is required, icewm is a nice small one.
user: | root |
---|---|
command: | apt-get install icewm |
Other choices for window manager include;
Required to get a command line in X
user: | root |
---|---|
command: | apt-get install rxvt |
Other choices for terminal programs include:
The intended replacement for freex is called swiftx
user: | root |
---|---|
command: | chroot /var/lib/lessdisks apt-get install swiftx |
swiftx is an X configuration script for detecting video and mouse settings. A couple of edits are required when using swiftx from a lessdisks terminal;
edit file /var/lib/lessdisks/etc/swiftx/swiftx.conf
edit: | change x_config_dir to "/var/state/lessdisks/etc/" |
---|
there's a couple lines you'll want to add to the fonts section in /var/lib/lessdisks/etc/swiftx/XF86Config-*.template:
FontPath "tcp/xdm1:7110" FontPath "tcp/xdm2:7110" FontPath "tcp/xdm1:7101" FontPath "tcp/xdm2:7101" FontPath "tcp/xdm1:7100" FontPath "tcp/xdm2:7100"
if you're just using plain ol' xfs, which uses port 7100, you'll just need those lines. you probably won't really need any lines with xdm2, either. the true-type font servers xfs-xtt and xfstt use ports 7110 and 7101, respectively. purportedly the true-type fonts are better, but you have to get true-type fonts installed.
file: | /proc/pci |
---|---|
examine: | NIC card info |
alternate command: | |
lspci |
URL: | http://rom-o-matic.org |
---|---|
download: | boot image for the specific NIC, with DOWNLOAD_PROTO_NFS specified |
user: | root |
---|---|
note: | empty password |
user: | root |
---|---|
command: | freex |
user: | root |
---|---|
command: | if sdm: init 5, if xdm/kdm/gdm, init 4 |
user: | user added to lessdisks group on server |
---|---|
graphical login: | |
sdm, xdm, kdm, gdm, etc. | |
command: | /usr/sbin/lessdisks-setup |
user: | root |
---|---|
command: | lessdisks-setup |
[1]? | in an email from vagrant |
and copy /etc/ssh_host_*.pub to a common file, like so: #!/bin/sh # ooooh, i finally got around to writing a script to handle this stuff! # bugfixes 7/21/03 for name in xdm1 disk $(hostname); do for type in rsa dsa; do echo "$name" $(cat /etc/ssh/ssh_host_$type\_key.pub) >> /tmp/known_hosts done done cd /var/lib/lessdisks/root mkdir -p .ssh chmod og-rwx .ssh cp /tmp/known_hosts .ssh/known_hosts exit $?
Etherboot:
.000041.0000 done ROM sebment 0x0800 length 0x8000 reloc 0x9400 Etherboot 5.0.9 (GPL) Tagged ELF for [Tulip]?
dmesg
Linux version 2.4.18ld (root@nero) (gcc version 2.95.4 (Debian prerelease)) #2 Tue Apr 9 11:21:26 PDT 2002 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 0000000008000000 (usable) BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved) On node 0 totalpages: 32768 zone(0): 4096 pages. zone(1): 28672 pages. zone(2): 0 pages. Kernel command line: rw root=/dev/nfs ip=dhcp Initializing CPU#0 Console: colour VGA+ 80x25 Calibrating delay loop... 119.60 BogoMIPS? Memory: 126956k/131072k available (900k kernel code, 3732k reserved, 252k data, 196k init, 0k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes) Inode-cache hash table entries: 8192 (order: 4, 65536 bytes) Mount-cache hash table entries: 2048 (order: 2, 16384 bytes) Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes) Page-cache hash table entries: 32768 (order: 5, 131072 bytes) Enabling CPUID on Cyrix processor. CPU: Before vendor init, caps: 00000001 00000000 00000000, vendor = 1 CPU: After vendor init, caps: 00000001 00000000 00000000 00000004 CPU: After generic, caps: 00000001 00000000 00000000 00000004 CPU: Common caps: 00000001 00000000 00000000 00000004 CPU: Cyrix 6x86 2x Core/Bus Clock stepping 07 Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX PCI: PCI BIOS revision 2.10 entry at 0xfb5d0, last bus=0 PCI: Using configuration type 1 PCI: Probing PCI hardware PCI: Cannot allocate resource region 1 of device 00:09.0 Limiting direct PCI/PCI transfers. Activating ISA DMA hang workarounds. Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x1 Detected PS/2 Mouse Port. pty: 256 Unix98 ptys configured Real Time Clock Driver v1.10e block: 128 slots per queue, batch=32 0 3c515 cards found. loop: loaded (max 8 devices) Linux Tulip driver version 0.9.15-pre9 (Nov 6, 2001) eth0: ADMtek? Comet rev 17 at 0x6200, 00:04:E2:3E:25:46, IRQ 10. NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 1024 buckets, 8Kbytes TCP: Hash tables configured (established 8192 bind 8192) Sending DHCP requests ., OK IP-Config: Got DHCP answer from 192.168.1.2, my address is 192.168.1.200 IP-Config: Complete: device=eth0, addr=192.168.1.200, mask=255.255.255.0, gw=192.168.1.1, host=192.168.1.200, domain=, nis-domain=(none), bootserver=192.168.1.2, rootserver=192.168.1.2, rootpath=/var/lib/lessdisks/ NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Looking up port of RPC 100003/2 on 192.168.1.2 Looking up port of RPC 100005/1 on 192.168.1.2 VFS: Mounted root (nfs filesystem). Mounted devfs on /dev Freeing unused kernel memory: 196k freed Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS03 at 0x02e8 (irq = 3) is a 16550A inserting floppy driver for 2.4.18ld Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077
one thing that can help a good deal is turning remote syslogging on... on the server, edit /etc/init.d/sysklogd SYSLOGD="-r" then restart it: /etc/init.d/sysklogd restart and then, add to /var/lib/lessdisks/etc/syslog.conf: *.* @disk then syslog messages from the terminal should hopefully appear in the server's log files too, distinguished by ip address or host name...
- What is this system's name?
- select default, the host name of the computer
- Where will your users read their mail?
- enter the domain you want to appear after @ in the "From:" field
- Which accounts should the system administrator mail go to?
- select a user name
- You may already have an /etc/aliases file, do you want to replace it?
- might as well
- Exim lists the changes it will make, and asks for confirmation
Each terminal runs a Web server on port 8080
http://xxx.xxx.xxx.xxx:8080 should list the /var/state/lessdisks/etc directory on the terminal, where xxx.xxx.xxx.xxx is the IP address of the terminal
Using the 'Woody' install disk, I found that things worked better if I entered:
bf24
at the original:
boot:
prompt.
This installs a 2.4 kernel, and offers journaling filesystems, EXT3 and ReiserFS? in addition to EXT2.
Sometimes I neglect to:
Configure Device Driver Modules Configure the Hostname Configure the Network
Which causes:
Install the Base System
to fail with debootstrap errors. The errors are about configuring, but not specific about what is causing the failure.
ALT-F2 will give a console during the install process. From the ALT-F2 console;
See if you can ping a host:
# ping ssc.com
If that fails, try:
# lsmod
and see if there's an ethernet module loaded.
If not, try:
# more /proc/pci or # dmesg | more
and look for mention of a type of NIC card which was identified at boot time.
Select:
Configure Device Driver Modules -> kernel/drivers/net
choose the driver which most closely matches the card name found with:
# more /proc/pci or # dmesg | more
If successful, running:
# lsmod
from the ALT-F2 console should list the NIC module, and in the list of modules on the install screen, there will be a "+" instead of "-" next to the module name.
If the install is unsuccessful, figure out what driver your card needs.
The script which runs the first time the new install boots is:
/usr/sbin/base-config
The command:
/usr/sbin/superformat /dev/fd0 hd
checks the floppy drive and reports a value to put in:
/etc/driveprm
such as:
drive0: deviation=400
I like this trick to determine what what files an operation effects;
Example:
# touch apt-get_update.pre # apt-get update # find / ! -path "/proc*" -newer apt-get_update.pre
The <! -path "/proc*"> part of the command is required to prevent all the files in the /proc tree from being listed, they report their timestamp as current time.
I usually login as myself, then 'su' to do rootly things, and forget to logout of root.
setting TMOUT in /etc/bash.bashrc to number of seconds of inactivity is a good thing:
TMOUT=600 # a su session ends after 10 minutes of inaction