!!! - 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 -V /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 .local file in the /var/lib/lrpkg directory. The format of this file is similar to the format of the .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 .local files, just copy the .list file to .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 .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