Contents
0. Where to get help
1. Before Creating a bootcd
2. Creating a bootcd image
3. Burning the image or creating a liveusbstick
4. Booting from bootcd
5. Installing bootcd on Harddisk
6. Other
7. Known Bugs


0. Where to get help

0.1
Q: What can I do if I find a bug in bootcd ?
A: Please send bootcd bugreports to debian


1. Before Creating a bootcd

1.1
Q: What has to be compiled in the kernel?
A: First of all, if you use a standard debian kernel from the rescue-disk
   everything should work.

   This Question is only important for you if you have compiled your
   own kernel.

   To boot from bootcd the kernel must be able to read from cdrom.
   A ramdisk is necessary to run bootcd. This has to be compiled built-in
   in the kernel because it is needed before the kernel is able to load
   additional modules.

   <*> means you must configure the feature as built-in.  <M> means you can
   configure the feature as built-in or as module.
   If you use modules you have to make sure that the modules are loaded by
   editing /etc/modules.

   To build a bootcd with bootcdwrite you need:

     Block devices --->
       <M> Loopback device support	                        CONFIG_BLK_DEV_LOOP

     If you have an IDE Writer you need:
     							        BLK_DEV_IDESCSI

       If your IDE Writer is normally accessable as
       /dev/hdc for example you also have to put the
       following in lilo.conf and run lilo:
         append="hdc=ide-scsi"

   To boot from bootcd you need:

     Block devices --->
       <*> RAM disk support                                  CONFIG_BLK_DEV_RAM
       <*> Initial RAM disk (initrd) support              CONFIG_BLK_DEV_INITRD

     File systems --->
       <*> Second extended fs support (for RAMDISK)              CONFIG_EXT2_FS
       <*> ISO 9660 CDROM file system support                 CONFIG_ISO9660_FS

     If you have a scsi CDROM Drive you need
       SCSI support --->
         <*> SCSI support
         <*> SCSI CD-ROM support
         SCSI low-level drivers --->
           <*> "Driver for your scsi-card"

     If you have a non scsi CDROM Drive you need either:

       ATA/IDE/MFM/RLL support --->
         <*> ATA/IDE/MFM/RLL support
	 IDE, ATA and ATAPI Block devices --->
	   <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
	   <*> Include IDE/ATAPI CDROM support

     or you need:

       Old CD-ROM drivers (not SCSI, not IDE)  --->
         [*] Support non-SCSI/IDE/ATAPI CDROM drives
         <*> "Driver for your CDROM"

     If your CDROM doesn't support booting from it, you have to
     boot from an MSDOS Floppy. You need:

       File systems --->
         <*> DOS FAT fs support                                   CONFIG_FAT_FS
         <*> MSDOS fs support                                   CONFIG_MSDOS_FS
	 <*> VFAT (Windows-95) fs support                        CONFIG_VFAT_FS

1.5
Q: How can I rebuild an initrd with initramfs-tools
A: update-initramfs -u

1.6
Q: How can I reset network configuration on a bootcd ?
A: This is described in bootcdwrite.conf in the function extra_changes().


2. Creating a bootcd

Q: How can I create a bootcd
A: see manual of bootcdwrite(1)

3. Burning the image or creating a liveusbstick

3.1
Q: How can I burn the image ?
A: Install wodim and see man wodim(1). Example
     wodim -v -eject /var/spool/bootcd/cdimage.iso

3.2
Q: How can I create a floppy ?
A: If you need to boot from floppy and to save changes made in ram you can
   do this:
     mount -o loop /var/spool/bootcd/cdimage.iso /mnt
     dd if=/mnt/cdboot.img of=/dev/fd0
     syslinux /dev/fd0
   If you need it only to save changes made in ram you can do this:
     mke2fs /dev/fd0

3.3
Q: How to create a LiveUsbBootStick from a bootcd-iso
A: for example:
   the usb-stick is /dev/sdx
   the bootcd-iso is /var/spool/bootcd/cdimage.iso

   # Deleting usb-stick and create new partitions
   sgdisk -Z /dev/sdx
   sgdisk -n 1:0:+20M  -c 1:"BIOS boot partition" -t 1:ef02 /dev/sdx
   sgdisk -n 2:0:+100M -c 2:"partition for iso"   -t 2:8300 /dev/sdx
   sgdisk -N 3         -c 3:"unused partition"    -t 3:8300 /dev/sdx

   # Format partition for iso and mount it
   mkfs.ext2 /dev/sdx2
   mkdir -p /mnt/stick
   mount /dev/sdx2 /mnt/stick

   # install Grub
   grub-install --root-directory=/mnt/stick /dev/sdx

   # install bootcd-iso and rename it
   cp /var/spool/bootcd/cdimage.iso /mnt/stick/cdimage_1.iso

   # create grub.cfg
  cat <<END > /mnt/stick/boot/grub/grub.cfg
set default=0
set timeout=5

menuentry 'bootcd 1' {
        insmod part_gpt
        insmod ext2
        search --file --set root --no-floppy /cdimage_1.iso
        loopback loop /cdimage_1.iso
        linux (loop)/isolinux/vmlinuz root=iso:auto:/cdimage_1.iso bootcd=standard
        initrd (loop)/isolinux/initrd
}
END
   # umount stick
   umount /mnt/stick


4. Booting from bootcd

4.1
Q: Can I change the amount of RAM available for ramdisk at boottime?
A: This is no longer needed. Now tmpfs is used for ramdisks.
   With tmpfs only the needed ram is allocated. The size of each ramdisk
   defaults to half of physical RAM.

4.2
Q: How can I use my bootcd on a PC which detects the CDROM as another device
   (not the device defined in bootcdwrite.conf as CDDEV)
A: Start booting again from the bootcd, interrupt and continue with
   "linux root=/dev/sr0" (Or whatever your CD device is)

4.3
Q: What can I do if bootcd hangs at boot time
A: If the CD is burned and you get an error at boot time it's not easy
   to find the problem. Therefor it is a good idea to edit /etc/default/rcS
   on the system that will be copied to cd and to set SULOGIN=yes to let
   sulogin be spawned on bootup.

   You can then login and do the boot steps manually to find the problem. This
   would be very helpful in a bug report.

   After login go to /etc/init.d and start the scripts bootcdram and bootcd.

5. Installing bootcd on Harddisk

5.1
Q: Performance problem: bootcd2disk is too slow. What can I do?
A: If your DVD drive is slow. Or if you have bootet from an virtual DVD drive
   like you do with HP ILO, bootcd2disk can be very slow.

   With "bootcd2disk -url ..." you can copy your bootcd to your swap Partition
   temporarily. This works much faster.

5.2
Q: bootcd2disk does not delete all old logical volumes
A: Only if the disk will be reused again, bootcd2disk tries to delete them.
   You can manually delete the disks with "dd if=/dev/zero of=<disk> bs=1k count=1".
   Then you have to reboot.


6. Other

6.1
Q: How can I create a bootable Floppy Disk from a bootcd ?
A: You have to write the file /cdboot.img from the bootcd to Floppy.
   Example: dd if=/cdrom/cdboot.img of=/dev/fd0
   The floppy now has a FAT Filesystem. If needed you can edit the file
   syslinux.cfg and change the root device (See 3.2).

6.2
Q: bootcd displays Warnings, can I ignore it ?
A: That depends. Some commands print messages on stdout or stderr or
   return with non zero exitcodes. If those messages are not known
   by bootcd a warning will be displayed with the command that produced it.
   You can now look at the command's manpage, before trying to redo the
   command or to ignore the message.

6.3
Q: How can I copy bootcd to disk for higher performance and mount the disk
   read-only for security reasons?
A: This works like creating a liveusbstick.

6.4
Q: Can I use an USB memory stick as floppy replacement?
A: Yes. First of all set FLOPPY_RUNTIME_DEV="/dev/sda1" in your
   /etc/bootcd/bootcdwrite.conf. If you use a static compiled kernel with all
   needed drivers compiled into it your are done. If you use an initrd kernel
   you need to tweak some files.

   Make sure the following modules are loaded:
   usb-storage

   Make sure all needed kernel modules are included in initrd. For example:
   /lib/modules/2.4.18-1-586tsc/kernel/drivers/usb/usbcore.o
   /lib/modules/2.4.18-1-586tsc/kernel/drivers/usb/usb-uhci.o
   /lib/modules/2.4.18-1-586tsc/kernel/drivers/usb/usb-ohci.o
   /lib/modules/2.4.18-1-586tsc/kernel/drivers/usb/storage/usb-storage.o

6.7
Q: How can I enable or disable the bootcd hardware detection

A: Since version 2.56 it is possible to disable or enable the bootcd
   hardware discovery method implemented in /usr/share/bootcd/bootcdmodprobe.
   The default behaviour can be configured with
   BOOTCDMODPROBE=standard|bootcd in bootcdwrite.conf.

   When booting from CD this option will be transferred as Kernel
   commandline option "bootcd=standard" or "bootcd=bootcd".

   You can redefine the commandline from the isolinux prompt for example as:
   "kernel=/isolinux/vmlinuz initrd=/isolinux/initrd root=auto \
   bootcd=standard"

6.8
Q: Can I use bootcd to backup and restore redhat or suse?
A: This is not possible out of the box any more, because
   script bootcdbackup is no longer added.

6.10
Q: What are mountpoints /mnt/bootcd.* used for ?
A: /mnt/bootcd.disc  is used to mount the disc written by bootcd2disk or
                     to mount the disc read by bootcdwrite
   /mnt/bootcd.upper is used while booting from bootcd and shows files changed
                     in RAM. Only for information.
   /mnt/bootcd.lower is used while booting from bootcd and shows the mounted
                     bootcd
