Author: bdubbs
Date: 2011-03-15 21:46:26 -0600 (Tue, 15 Mar 2011)
New Revision: 1122

Removed:
   trunk/PREVIOUS_FORMAT/boot-cd_easy.txt
Log:
Remove obsolete verion of hint

Deleted: trunk/PREVIOUS_FORMAT/boot-cd_easy.txt
===================================================================
--- trunk/PREVIOUS_FORMAT/boot-cd_easy.txt      2011-03-16 03:33:46 UTC (rev 
1121)
+++ trunk/PREVIOUS_FORMAT/boot-cd_easy.txt      2011-03-16 03:46:26 UTC (rev 
1122)
@@ -1,589 +0,0 @@
-TITLE:          Easy Boot CD of your LFS
-LFS VERSION:    all
-AUTHOR:                Thomas Foecking <[email protected]>
-               Christian Hesse <[email protected]>
-
-SYNOPSIS:
-       How to create an easy Boot CD of your working LFS system.
-
-HINT:
-Version 0.2d
-19/11/2002
-
-Contents
---------
-
-    1. What do you need and what is the idea?
-    2. Configure & compile Kernel
-    3. Move /dev /var /tmp /root /home to /fake/needwrite
-    4. Create symlinks /... -> /fake/needwrite/...
-    5. Create boot script which mounts the ramdisk
-    6. Install the bootloader isolinux
-    7. Create initial ramdisk
-    8. Burn the Boot CD
-    9. Reboot and enjoy
-
-
-1. What do you need and what is the idea?
-   --------------------------------------
-
-       What do you need?
-       - LFS system which you want to burn on CD
-       - another linux/unix system to create some stuff and burn the CD
-       - CD-R(W) drive to burn your LFS system and boot image on CD
-       - 1 CD-R + 1 CD-RW is very recommended for saving money
-       - additional software:
-               syslinux: (contains isolinux to boot the LFS kernel on CD)
-http://freshmeat.net/redir/syslinux/10177/url_bz2/syslinux-1.67.tar.bz2
-
-               isoinfo: (optional to detect the LFS CD without mounting it)
-http://www-tet.ee.tu-berlin.de/solyga/linux/isoinfo-0.03.01.tar.gz
-
-
-       First of all you need a running LFS system, which you want to burn
-       on CD. You may want to have a LFS CD for creating new LFS systems
-       on other computers. Whatever your ideas are, you'll first have to
-       create this special system on your LFS partition.
-       (e.g. I have created a LFS system with xfree86 and windowmaker;
-       now I can boot from CD and create new LFS systems without missing
-       xfree86 & windowmaker)
-
-       What is the idea?
-       - Create kernel with ramdisk and initrd support
-       - Move /dev /var /tmp /root /home to /fake/needwrite
-       - Set symlinks
-               /dev  -> /fake/needwrite/dev
-               /var  -> /fake/needwrite/var
-               /...   -> /fake/needwrite/...
-       - Mount /dev/ram0 to /fake/ramdisk
-       - Copy /fake/needwrite/* to /fake/ramdisk/
-       - Remount /dev/ram0 to /fake/needwrite
-
-       We'll have read-write access on /dev /var /tmp /root /home
-       because they point to /fake/needwrite which is then a ramdisk
-
-       You are able to do the most things from the other linux/unix
-       system by setting LFS to your LFS mountpoint. LFS=/path/to/lfs
-       e.g.:
-
-LFS=/mnt/lfs
-
-       Don't forget to set LFS again when you do a reboot!
-
-
-2. Configure & compile Kernel
-   --------------------------
-
-       Boot your LFS system or chroot to it.
-
---- optional ---
-
-       As we're just here we first install isoinfo which we use later. I
-       assume the tarball isoinfo-0.03.01.tar.gz is placed in /usr/src.
-
-       Skip this step if you have already installed cdrtools! These cdrtools
-       also contain a program named isoinfo which we'll use then.
-
-cd /usr/src
-zcat isoinfo-0.03.01.tar.gz | tar x
-cd isoinfo
-
-./configure
-sed "s/\/usr\/local\//\/usr\//g" Makefile > Makefile.new
-mv Makefile.new Makefile
-make
-
-make install
-
---- end of optional ---
-
-
-       Ok, now let's configure your kernel:
-
-cd /usr/src/linux
-make mrproper && make menuconfig
-
-       You need ramdisk support!
-               "Block devices  --->" 
-                       "<*> RAM disk support"
-                       "(4096)   Default RAM disk size"
-                       "[*]   Initial RAM disk (initrd) support"
-
-       You need ISO 9660 CDROM file system support!
-               "File systems  --->"
-                       "<*> ISO 9660 CDROM file system support"
-
-       You should also think about building some other drivers into
-       your kernel or as modules which is much better.
-
-       If you want to be able to boot the CD on a lot of PCs with
-       different CPUs (e.g. 486, Pentium, PII, PIII, Athlon) you have to
-       compile the kernel for 486 (then it runs on >= 486).
-               "Processor type and features  --->"
-                       "(486) Processor Family"
-
-       Save config and compile your kernel:
-
-make dep && make bzImage && make modules && make modules_install
-
-       Then you should copy the new built kernel to /boot:
-
-cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot/
-
-       Run Lilo (or update the bootloader you're using):
-
-/sbin/lilo
-
-       Try to boot the new kernel in order to test ramdisk support:
-       If you're using devfs you must change: dev_ram=/dev/rd/0
-
-
-dev_ram=/dev/ram0
-mke2fs -m 0 $dev_ram
-
-       If this fails like
-       > The device apparently does not exist;
-       > did you specify it correctly?
-       you have no ramdisk support in your kernel.
-       You should read this chapter again ;-)
-
-       Otherwise you have done your work very well!
-
-       You can check the size of your ramdisk by mounting it to
-       /mnt and doing an "df -h"
-
-mount $dev_ram /mnt
-df -h
-
-       Now you can boot your other linux/unix system ...
-
-
-3. Move /dev /var /tmp /root /home to /fake/needwrite
-   --------------------------------------------------
-
-       We move all stuff needing write access to /fake/needwrite.
-
-       First we have to create this directory
-       and the mountpoint for the ramdisk:
-
-mkdir -p $LFS/fake/{needwrite,ramdisk}
-
-       Then we can move it there:
-
-cd $LFS/
-mv dev/ var/ tmp/ root/ home/ fake/needwrite/
-
-
-4. Create symlinks /... -> /fake/needwrite/...
-   -------------------------------------------
-
-       We have moved /dev /var /tmp /root /home to /fake/needwrite.
-       Now we must set symlinks so that everything seems to be
-       as before.
-
-cd $LFS/
-ln -s fake/needwrite/dev dev
-ln -s fake/needwrite/var var
-ln -s fake/needwrite/tmp tmp
-ln -s fake/needwrite/root root
-ln -s fake/needwrite/home home
-
-       "ls -l" says:
-        dev  -> fake/needwrite/dev
-        home -> fake/needwrite/home
-        root -> fake/needwrite/root
-        tmp  -> fake/needwrite/tmp
-        var  -> fake/needwrite/var
-
-       If you also want to be able to change files in /etc on your Boot CD
-       you must repeat the same procedure with /etc.
-
-cd $LFS/
-mv etc/ fake/needwrite/
-ln -s fake/needwrite/etc etc
-
-
-5. Create boot script which mounts the ramdisk
-   --------------------------------------------
-
-       Ok, we have /dev /var /tmp /root /home linked to
-       /fake/needwrite which is first read-only.
-       To be able to login (and to run services on runlevel x
-       which need write access to /dev /var /tmp /root or /home)
-       we must call a script from our /etc/rc.d/init.d/ directory which
-       creates a ramdisk to /fake/needwrite with write access.
-
-       The following script creates a ramdisk to /fake/ramdisk and
-       will copy everything of /fake/needwrite to /fake/ramdisk.
-       Then it remounts the ramdisk to /fake/needwrite.
-
-cat > $LFS/etc/rc.d/init.d/create_ramdisk << "EOF"
-#!/bin/sh
-
-dev_ram=/dev/ram0
-dir_ramdisk=/fake/ramdisk
-dir_needwrite=/fake/needwrite
-
-source /etc/rc.d/init.d/functions
-
-case "$1" in
-        start)
-                echo -n "Creating ext2fs on $dev_ram ...              "
-                /sbin/mke2fs -m 0 -i 1024 -q $dev_ram > /dev/null 2>&1
-                evaluate_retval
-                sleep 1
-                echo -n "Mounting ramdisk on $dir_ramdisk ...         "
-                mount -n $dev_ram $dir_ramdisk
-                evaluate_retval
-                sleep 1
-                echo -n "Copying files to ramdisk ...                 "
-                cp -dpR $dir_needwrite/* $dir_ramdisk > /dev/null 2>&1
-                evaluate_retval
-                sleep 1
-                echo -n "Remount ramdisk to $dir_needwrite ...        "
-                umount -n $dir_ramdisk > /dev/null 2>&1
-                sleep 1
-                mount -n $dev_ram $dir_needwrite
-                sleep 1
-                ;;
-        *)
-                echo "Usage: $0 {start}"
-                exit 1
-                ;;
-esac
-EOF
-
-       Make it executable:
-
-chmod 0755 $LFS/etc/rc.d/init.d/create_ramdisk
-
-       create_ramdisk should be the first script excecuted by init,
-       so we set this link:
-       /etc/rc.d/rcsysinit.d/S00create_ramdisk -> ../init.d/create_ramdisk
-
-cd $LFS/etc/rc.d/rcsysinit.d
-ln -s ../init.d/create_ramdisk S00create_ramdisk
-
-
-6. Install the bootloader isolinux
-   -------------------------------
-
-       We also need a bootloader on the CD to boot the kernel and ramdisk.
-       lilo and grub are all nice but perfect for a CD is isolinux (it comes
-       with syslinux). I assume the tarball syslinux-1.67.tar.bz2 is
-       already placed in $LFS/usr/src.
-
-cd $LFS/usr/src
-bzcat syslinux-1.72.tar.bz2 | tar x
-
-mkdir $LFS/isolinux
-cp syslinux-1.72/isolinux.bin $LFS/isolinux/
-
-       If all files associated with the boot process should be in one
-       directory we have to move kernel and the Rest of /boot to /isolinux.
-
-mv $LFS/boot/* $LFS/isolinux
-
-       Now we create a symlink from boot to isolinux.
-
-cd $LFS/
-rmdir boot
-ln -s isolinux boot
-
-       Kernel & co can now be found in /boot again.
-       But isolinux still needs a config-file, so we create it now:
-
-cat > $LFS/isolinux/isolinux.cfg << "EOF"
-default bootcd
-
-label bootcd
-  kernel lfskernel
-  append initrd=initrd.gz root=/dev/ram0 init=/linuxrc ramdisk_size=16384
-EOF
-
-       isolinux is now installed completely.
-
-
-7. Create initial ramdisk
-   ----------------------
-
-       !!! But first we have to change /etc/fstab of LFS !!!
-       Delete all entries you don't need. (e.g. all /dev/hd*)
-       You only need proc (and maybe devfs, devpts)
-
-vi $LFS/etc/fstab
-
-       Don't worry about mounting root filesystem "/".
-       This will be mounted by linuxrc from initrd fs.
-
-       The best is to remove also the following links:
-
-rm $LFS/etc/rc.d/rc3.d/S20network
-rm $LFS/etc/rc.d/rc0.d/K80network
-rm $LFS/etc/rc.d/rc6.d/K80network
-rm $LFS/etc/rc.d/rcsysinit.d/S40mountfs
-rm $LFS/etc/rc.d/rcsysinit.d/S30checkfs
-
-       Now we create the initrd image file and filesystem.
-
-dd if=/dev/zero of=$LFS/boot/initrd bs=1024 count=6144
-mke2fs -m 0 -i 1024 -F $LFS/boot/initrd
-
-mount -o loop $LFS/boot/initrd $LFS/mnt
-cd $LFS/mnt
-mkdir bin lib dev proc mnt
-cp $LFS/bin/{bash,mount,grep,umount,echo} bin/
-cp $(find $LFS -name "test" -type f) bin/
-cp $(find $LFS -name "chroot" -type f) bin/
-cp $(find $LFS -name "pivot_root" -type f) bin/
-cp $LFS/lib/{libncurses.so.5,libdl.so.2,libc.so.6,ld-linux.so.2} lib/
-cp -dR $LFS/dev/{console,hd?,scd*,null,ram*} dev/
-ln -s bash bin/sh
-ln -s test bin/[
-
-       If you wish to use isoinfo instead of mount to detect the LFS CD you
-       must also copy isoinfo into the initial ramdisk.
-
-cp $(find $LFS -name "isoinfo" -type f) bin/
-
-       The first program executed by the kernel is /linuxrc. As it does not
-       exist we create it. Our script will find the CD in the correct
-       CD-ROM drive and then mount it as rootfs / and run /sbin/init 3.
-
-
------------ copy & paste -------------
-
-cat > $LFS/mnt/linuxrc << "EOF"
-#!/bin/sh
-
-#if you want use devfs and don't have /dev/hd?, /dev/scd* then
-#you must mount your devfs here:
-
-
-#ID is the volume id / label of the LFS boot CD if you use /bin/isoinfo
-#or ID is a file in root of the LFS boot CD
-EOF
-
-echo "ID=\"LFS_$(date +%Y%m%d)\"" >> $LFS/mnt/linuxrc
-
-cat >> $LFS/mnt/linuxrc << "EOF"
-TMP_MOUNT="/mnt"
-
-PATH="/bin:/sbin:/usr/bin:/usr/sbin"
-
-#this script searches for cdrom devices and then tries to find
-#the LFS boot CD in order to mount it as / (rootfs)
-#it detects: IDE devices hda - hdn and SCSI devices scd0 - scd99
-#or when using devfs: IDE/SCSI devices cdrom0 - cdrom99
-
-#you need following programs:
-#- /bin/isoinfo (optional)
-#- /bin/sh (e.g. bash)
-#- echo
-#- [ (which is linked to test)
-#- mount
-#- umount
-#- grep
-#- pivot_root
-#- chroot
-
-#you need following devices:
-#- /dev/hd* or /dev/scd* or /dev/cdroms/cdrom*
-#- /dev/null
-
-#you need following directories:
-#- /proc
-#- $TMP_MOUNT
-
-if [ -e "/bin/isoinfo" ]; then
-  CHECK_TYPE="isoinfo"
-else
-  CHECK_TYPE="try_mount"
-fi
-
-if [ ! -d "/proc/" ]; then
-  mkdir /proc
-fi
-
-mount -n proc /proc -t proc
-
-#1. search for cdrom devices and add them to CDROM_LIST
-
-CDROM_LIST=""
-
-#do we have devfs? (then its very easy)
-if [ -d "/dev/cdroms/" ]; then
-  for cdrom_device in /dev/cdroms/cdrom[0-99]
-  do
-    if [ -e "$cdrom_device" ]; then
-      CDROM_LIST="$CDROM_LIST $cdrom_device"
-    fi
-  done
-else #we search in proc tree for ide cdrom devices
-  for ide_channel in /proc/ide/ide[0-9]
-  do
-    if [ ! -d "$ide_channel" ]; then
-     break
-    fi
-    for ide_device in hda hdb hdc hdd hde hdf hdg hdh hdi hdj hdk hdl hdm hdn
-    do
-      device_media_file="$ide_channel/$ide_device/media"
-      if [ -e "$device_media_file" ]; then
-        grep -i "cdrom" $device_media_file > /dev/null 2>&1
-        if [ $? -eq 0 ]; then
-          if [ -e "/dev/$ide_device" ]; then
-            CDROM_LIST="$CDROM_LIST /dev/$ide_device"
-          fi
-        fi
-      fi
-    done
-  done
-  for scsi_cdrom in /dev/scd[0-99]
-  do
-    if [ -e "$scsi_cdrom" ]; then
-      CDROM_LIST="$CDROM_LIST $scsi_cdrom"
-    fi
-  done
-fi
-
-#2. now we try to find the LFS boot CD (we use ID as identification)
-
-LFS_CDROM_DEVICE=""
-echo "Using $CHECK_TYPE"
-for cdrom_device in $CDROM_LIST
-do
-  echo -n "Checking $cdrom_device ... "
-
-  if [ "$CHECK_TYPE" = "try_mount" ]; then
-    mount -n -t iso9660 $cdrom_device $TMP_MOUNT > /dev/null 2>&1
-    media_found=$?
-  fi
-  if [ "$CHECK_TYPE" = "isoinfo" ]; then
-    isoinfo -d -i $cdrom_device > /dev/null 2>&1
-    media_found=$?
-    if [ $media_found -ne 0 ]; then
-      isoinfo -V $cdrom_device > /dev/null 2>&1
-      media_found=$?
-    fi
-  fi
-
-  if [ $media_found -eq 0 ]; then
-
-    echo -n "media found"
-    if [ "$CHECK_TYPE" = "try_mount" ]; then
-      [ -e "$TMP_MOUNT/$ID" ]
-      media_lfs=$?
-    fi
-    if [ "$CHECK_TYPE" = "isoinfo" ]; then
-      isoinfo -d -i $cdrom_device | grep -i "Volume id:" | grep "$ID" \
-      > /dev/null 2>&1
-      media_lfs=$?
-      if [ $media_lfs -ne 0 ]; then
-        isoinfo -V $cdrom_device | grep "$ID" > /dev/null 2>&1
-        media_lfs=$?
-      fi
-    fi
-
-    if [ "$CHECK_TYPE" = "try_mount" ]; then
-      umount -n $cdrom_device > /dev/null 2>&1
-    fi
-
-    if [ $media_lfs -eq 0 ]; then
-      echo ", LFS boot CD found. Ready!"
-      LFS_CDROM_DEVICE="$cdrom_device"
-      break;
-    else
-      echo ", not LFS boot CD."
-    fi
-
-  else
-    echo "no media "
-  fi
-done
-
-
-#3. mount LFS CD as / (root fs)
-if [ "$LFS_CDROM_DEVICE" = "" ]; then
-
-  echo "No LFS boot CD found!!!"
-  exit 1
-
-else
-
-  echo "Booting from $LFS_CDROM_DEVICE ...                  "
-
-  mount -n -o ro -t iso9660 $LFS_CDROM_DEVICE $TMP_MOUNT
-  cd $TMP_MOUNT
-  pivot_root . mnt
-  umount -n /mnt/proc >/dev/null 2>&1
-  exec chroot . sh -c 'umount -n /mnt >/dev/null 2>&1;\
-  exec -a init.new /sbin/init 3'\
-  <dev/console >dev/console 2>&1
-
-fi
-EOF
-
---------------------------------------
-
-
-       To make this script executable run
-
-chmod 0755 $LFS/mnt/linuxrc
-
-       Ok, that's it. Unmount the image and compress it.
-
-cd $LFS/
-umount $LFS/mnt
-gzip $LFS/boot/initrd
-
-
-8. Burn the Boot CD
-   ----------------
-
-       If you have a CD-RW you should take this for testing. When
-       your system boots quite good from CD-RW you can burn it on a CD-R.
-       (I give you this advice, because I got the clue after burning
-       about 10 CD-Rs that didn't work ;-)
-
-       Before you start burning, check the size of your LFS tree:
-
-du -h $LFS/
-
-       Delete all the stuff you don't need on a Boot CD. (e.g. /usr/src/*)
-
-       Because linuxrc must be able to identify the CD you have to create a
-       file called "LFS_YYYYMMDD". (But only if you don't use isoinfo)
-
-touch $LFS/LFS_$(date +%Y%m%d)
-
-       Now burn the LFS system on CD
-
-       Note!
-       dev=0,0,0 is the device number of your CD-Writer
-       Check your SCSI devices with "cdrecord -scanbus"
-       speed=4 should be changed to (max) speed of your CD-Writer.
-       If you are using a CD-RW add blank=fast to the cdrecord-command!
-
-cd $LFS/
-mkisofs -R -l -L -D -b isolinux/isolinux.bin -c isolinux/boot.cat \
--no-emul-boot -boot-load-size 4 -boot-info-table -V "LFS_$(date +%Y%m%d)" \
-$LFS | \
-cdrecord -v -eject dev=0,0,0 speed=4 -
-
-
-9. Reboot and enjoy
-   ----------------
-
-       Reboot and let your Bios boot from CD.
-       Enjoy the kernel messages and login prompt ;-)
-
-------------------------------------------------------------------
- If you have any ideas, suggestions or found a bug you can send a
- mail to:
- Thomas Foecking <[email protected]>
- Christian Hesse <[email protected]>
-------------------------------------------------------------------
- Special thanks for bug reports and help to:
- David Maus <[email protected]>
-------------------------------------------------------------------
-

-- 
http://linuxfromscratch.org/mailman/listinfo/hints
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to