!!! - PLEASE READ THIS ENTIRE DOCUMENT - !!!
WARNING! You need to be reasonably familiar with LRP to use this CD
based distribution. It's getting easier all the time, but until a real
packaging system designed to handle ramdisk based setups booting from
read-only media is created, there will always be some oddities with
using the CD version you won't have when running floppies.
You can find additional information here:
http://lrp.steinkuehler.net/Packages/LRP-CD.htm
LRP-CD Contents:
LaBrea.lrp
A package to slow down port-scanners and internet worm propogation
README.txt
This file
bash.lrp
The bash shell
Requires: lncurses, lrdline2
bootdisk.bin
The 1.44 meg floppy disk image used to make the CD bootable. If your
system cannot boot directly from the CD, you can make a floppy disk
out of this image, and use that to boot, instead.
bwidth22.lrp
User-space QoS tools
changes.txt
A log of changes from version to version
dhclient.lrp
dhcpd.lrp
ISC DHCP client and server
dnscache.lrp
tinydns.lrp
djbutils.lrp
djbdns (tinydns) from Jacques Nilo
http://leaf.sourceforge.net/devel/jnilo/
etc.lrp
The Dachstein firewall scripts and other contents of /etc
ifconfig.lrp
The 'classic' ifconfig and route commands, for those unused to the
newer iproute2 (aka 'ip') command.
ipsec.lrp
The FreeS/WAN version of IPSec for linux.
Requires: ifconfig, mawk
ipsec509.lrp
auto, pluto, and whack patched for x.509 certificate support
Requires: ipsec
lib
/lib/modules contains all available kernel modules, and can be loaded
directly from the CD (no need to copy modules to your floppy). See
/etc/modules for details.
libdb.lrp
libm.lrp
libpcap.lrp
lncurses.lrp
Libraries required for some of the other packages
local.lrp
everything in /usr/local (currently just directory placeholders)
log.lrp
replaced by ramlog...included in case you don't want logs on their
own partition
lrdline2.lrp
library required by bash
lynx.lrp
a small console based web-browser
mawk.lrp
GNU version of awk
modules.lrp
kernel module loader & configuration
netsnmpd.lrp
netsnmpu.lrp
net-snmp daemon and utilities. Modified version of net-snmp from:
Andrew Hoying: http://leaf.sourceforge.net/devel/wolffang/
See change log for details
Requires: libdb libm
nmap.lrp
handy port-scanning utility
nmbd-207.lrp
the wins name-server portion of samba
ppp.lrp
pppoe.lrp
From Kenneth Hadley's PPPoE V0.4 disk image
ramdisk.lrp
creates and mounts additional ramdisk partitions at boot time
ramlog.lrp
combines ramdisk.lrp and log.lrp to create additional ramdisks at boot
and populate /var/log with the required files
root.lrp
the core filesystem
rsync.lrp
the only way to copy
snmp.lrp
a snmp server and some utilities
socks5-c.lrp
socks5.lrp
A socks server for 'difficult' applications
ssh-1.lrp
ssh1-key.lrp
sshd-1.lrp
SSH from Koon's website
!!-Depricated-!!
Use OpenSSH instead (below)
sftp.lrp
ssh.lrp
sshd.lrp
sshkey.lrp
libz.lrp
openssh 3.0p1 from Jacques Nilo ( http://leaf.sourceforge.net/devel/jnilo/ )
tcpdump.lrp
handy packet sniffing tool
vim.lrp
vi-improved editor
weblet.lrp
shell-based web-server
Using LRP-CD:
First, create a CD-Rom. Just burn the iso image to a CD using your
favorite CD-Rom burner software. If for some reason you need to
customize the CD, get a copy of the CD-Contents directory on a linux
box, and run the following command:
mkisofs -b bootdisk.bin -r -J -f -o <outputfile> -V <volume name> <path>/CD-Contents/
NOTE: The -f flag is so I can make the /lib/modules directory a symlink,
and have the actual files show up on the CD-Rom...you probably won't
really need it.
It is also possible to use other software to create a bootable CD
image...see the instructions that came with whatever software you use
if you don't have access to a linux system.
Once you've got the CD burned, you need to figure out how your system is
going to boot. There are three possibilities:
Your system won't boot off a CD-Rom at all:
If this is the case, you need to make a boot disk from the
bootdisk.bin file on the CD-Rom, using rawrite, winimage, dd, or your
favorite disk image tool. Once you've created the boot disk, you need
to configure some boot parameters. Edit syslinux.cfg on the floppy,
and verify the boot= parameter is correct (it probably is, it's
pre-set to /dev/fd0), and make sure PKGPATH= is set to point to your
CD-ROM (the default is to use /dev/cdrom, which is symlinked to the
first CD-ROM found...this is probably OK unless your CD-ROM is really
strange, in which case you'll probably have to re-build the root
package anyway, to include drivers for it).
NOTE:
You may want to change to a larger format floppy
to get a bit more space, since you have to save the kernel and
root.lrp along with your configuation files...
Your system boots off a CD, but not if there's a floppy disk inserted
You can boot off the LRP-CD to get started, but you will have to make
a boot disk (see above), since you'll need to store configuration
information on a floppy disk. NOTE: You might want to experiment with
some BIOS settings. I've got some old Pentium machines that will boot
from CD, but default to the floppy disk. In the BIOS, however, you
can disable the floppy drives, so the system always boots from CD.
Linux talks to the floppy hardware directly, ignoring the BIOS
settings, so the kernel can still see your floppies, even though
they are technically 'disabled'.
Your system boots off a CD, even if you've got a floppy disk loaded
You don't need to make a boot disk, just have a blank floppy handy for
saving your configuration information.
NOTES:
If you don't have PKGPATH set properly, the system will NOT boot, as
there is not a complete LRP system on the boot floppy, just the kernel
and root.lrp. This shouldn't be a problem for most users with an IDE
CD-ROM drive, which is auto-detected, just for those adventerous souls
booting from flash, hard-disk, zip-drives, ...
The system will auto-detect SCSI CD-ROM drives, but you'll need to
re-build root.lrp to include appropriate SCSI drivers...see
/boot/etc/modules. This means you'll have to either boot from a floppy
or burn a custom CD-ROM, with an updated bootimage.
Now it's time to boot your LRP-CD system. Your system should come up
and eventually get to the login prompt (if not, you probably didn't get
the syslinux.cfg parameters correct on your boot disk, or you're not
using an IDE CD-ROM drive). You'll see lots of errors along the way, but
that's OK for now (no NIC modules configured, etc).
CONFIGURATION:
Now that LRP-CD is booting, you need to configure the system for your
particular application.
First, you need to verify the PKGPATH= parameter is correct for your
system. If you're booting from a floppy disk, you can just edit
syslinux.cfg, but if you're booting from CD, you can't change the
syslinux.cfg file. To over-ride the PKGPATH setting from the CD's
syslinux.cfg, add the file 'pkgpath.cfg' to your floppy disk. The
contents of this file are EXACTLY what you would put after the PKGPATH=
line of syslinux.cfg ie:
device[:filesystem][,device[:filesystem]]
Now that the system automatically finds your CD-ROM, and makes a /dev/cdrom
symlink to it, you probably don't have to worry about changing the package
path unless you want to save your configuration on something other than a
floppy disk.
Now you need to configure which LRP packages to load. Again, floppy
booters can edit syslinux.cfg, but if you boot from the CD, you can
over-ride the default setting by creating the file 'lrpkg.cfg' on your
floppy disk. NOTE: Even if you boot off a floppy, you'll probably
want to use the lrpkg.cfg file, as it does not suffer from the 255
character limit of the kernel command line used by syslinux...you'll
probably find you need the extra room to load all the nifty packages
on the CD! The contents of the lrpkg.cfg file are EXACTLY what you
would put after the LRP= line in syslinux.cfg (ie a comma seperated
list of package names, ALL ON ONE LINE):
package[:searchorder][,package[:searchorder]]
package is an LRP package file (without the .lrp extension)
searchorder controls the pakckage load behavior, and is one of:
f forward search, load multiple packages *DEFAULT*
F forward search, load first package found and stop
r reverse search, load multiple packages
R reverse search, load first package found and stop
A "forward search" starts with the PKGPATH entries (read right to
left) and looks at the boot= device last
A "reverse search" starts with the boot= device, and goes through
the PKGPATH entries (read left to right)
NOTE: This CD image includes an ramlog.lrp, which is intended
to REPLACE log.lrp. Make sure you have a mount entry for /var/log in
/etc/fstab, and you have a secondary ramdisk defined. The etc.lrp and
ramdisk.lrp provided will mount /var/log on a 4 Meg ramdisk (/dev/ram1)
if left unchanged.
At this point, you can configure your system normally, however when you
go to backup packages you'll notice some dramatic changes from earlier
versions.
BACKUP:
The backup scripts now support selecting both destination and backup
type on a per-package basis. This means you can save just the
configuration data to your floppy, but do a full backup of the package
when you want to export it to another LRP system or burn a new CD-ROM.
Currently, the three backup types supported are:
full - Backs up everything
none - Backs up nothing...just goes through the motions.
partial - This is the fun new backup type. It is an expanded version
of the previous CD backup scripts. By default, it will backup any
files that are part of the package that exist either in the /etc
directory or the /var/lib/lrpkg directory. The version for this
release has been enhanced, however, and supports the use of a
<package>.local file in the /var/lib/lrpkg directory. The format
of this file is similar to the format of the <package>.list file
(a list of filenames...wildcards OK), with the addition of a
flag before the filename. Currently supported flags are:
i I - The file(s) are included in a partial backup (used to create
the INCLUDE file)
x X e E - The file(s) are excluded from a partial backup (added
to the EXCLUDE file)
This should make it possible to meet fairly complex backup
requirements
NOTE: If you don't like the warning messages about missing
<package>.local files, just copy the <package>.list file to
<package>.local, put an 'I ' (note the space) in front of every
line, and delete any files that you don't think you're going to
change (like the binaries). An easy way to do this is:
cd /var/lib/lrpkg
sed 's/^/I /' package.list >package.local
edit package.local as required
modified - This FUTURE (it's not implemented yet, so don't e-mail me
about it unless you've gotten it working and are sending me code :)
method will use file dates and/or MD5 checksums to only backup those
files that actually changed. If I ever get around to writing this,
it will be really cool :)
NOTES:
- The backup type is saved in <package>.bktype and is saved along
with the package.
- The backup destination defaults to the last filesystem a package
was loaded from when linuxrc was building the root filesystem. It
is affected by the optional fFrR flags in lrpkg.cfg (or LRP=)
One of my system configuration disks:
firewall: -root-
# ls -l /mnt
-rwxr-xr-x 1 root root 46736 Oct 10 12:25 etc.lrp
-rwxr-xr-x 1 root root 52 Oct 10 16:08 lrpkg.cfg
-rwxr-xr-x 1 root root 1271 Oct 10 15:51 modules.lrp
-rwxr-xr-x 1 root root 3223 Oct 10 12:04 sshd-1.lrp
firewall: -root-
# cat /mnt/lrpkg.cfg
etc,local,modules,ramlog,sshd-1,ssh-1,lncurses,vim
firewall: -root-
#
NOTE: To use ssh, you will need to manually load sshkey from the
CD-ROM and create a host key:
mount -t iso9660 -r /dev/hda /mnt
cd /mnt
lrpkg -i sshkey
makekey
cd /
umount /mnt
Then do a partial backup of sshd