Difference between revisions of "Debootstrap to LiveCD"


From Knoppix Documentation Wiki
Jump to: navigation, search
(Pretense)
Line 1: Line 1:
[[Category: Remastering Knoppix ]]
+
==Preamble==
  
This HOW-TO is to create a Live CD using the Debian debootstrap utility to install your base, and then to further work towards a complete LiveCD of your preference.
+
So far I have created a script to boot from Knoppix, then debootstrap and create a new livecd.
 +
This in time will be further simplified to debootstrap to livecd.
  
==Pretense==
+
==Script==
It is assumed that you have the understanding:
+
#!/bin/bash
*Vi or a similar editor
+
SOURCEDIR=/mnt/hda1/source
*BASH [http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html|BASH Programming howto]
+
MASTERDIR=/mnt/hda1/master
*You have a Knoppix 4.0.2 ISO
+
*512MB Memory, possibly more or less
+
*5 gigs of hard drive space (maybe less)
+
  
The goal of this remastering method is to create a custom live-cd that involves only the applications you desire.
+
mkdir ${SOURCEDIR}/KNOPPIX
*If you do not require X why have it take space?
+
mkdir ${MASTERDIR}/KNOPPIX
Other goals of this project is to stem a new set of live-cd's to perform a specific function
+
*Instant SAN: iSCSI, ATAoE, HyperSCSI, start the live-cd and share the devices at the block level.
+
*Instant NAS: NFS, FTP, HTTP, SAMBA, Appletalk (netatalk)
+
*Instant VM: Instant Virtual Machine, Rapid administration for system provisioning.
+
*much much more.
+
  
=='''Begin'''==
+
debootstrap --arch i386 sid ${SOURCEDIR}/KNOPPIX http://http.us.debian.org/debian
First create a working directory, in this examle we will use <code>/mnt/hda1/source/KNOPPIX</code>
+
*choose a mirror of your choice: http://www.debian.org/mirror/list
+
*Also choose a release of your choice, either stable, testing, or unstable.
+
*Choose the binary type, i386 or x86-64, power pc, etc.
+
In this example I have chosen my mirror to be ftp://ftp.egr.msu.edu/debian and I have chosen my release to be stable
+
to run debootstrap
+
debootstrap --arch i386 sarge /mnt/hda1/source/KNOPPIX ftp://ftp.egr.msu.edu/debian
+
next you will want to mount your proc directory
+
  
==Mount Proc==
+
KNOPPIX_PACKAGES="ash-knoppix-26 hwsetup udev pump modutils module-init-tools linux-image-2.6.17 loop-aes-module-2.6.17 madwifi-modules-2.6.17 ndiswrapper-modules-2.6.17 rt2x00-modules-2.6.17 unionfs-knoppix-modules-2.6.17 zr364xx-modules-2.6.17 zydas-modules-2.6.17 linux-image-2.6.17 linux-kernel-headers-knoppix linux-sound-base gawk dhcp3-common console-tools console-data console-common pciutils"
Mount the proc directory as follows:
+
mount proc -t proc /mnt/hda1/source/KNOPPIX/proc
+
  
==Setup Networking==
+
for PACKAGE in ${KNOPPIX_PACKAGES};
cp /etc/resolv.conf /mnt/hda1/source/KNOPPIX/etc/resolv.conf
+
{
cp /etc/hosts /mnt/hda1/source/KNOPPIX/etc/hosts
+
for ITEM in `dpkg --listfiles ${PACKAGE} | grep -v "\.$" | grep -v "divert"`;
cp /etc/hostname /mnt/hda1/source/KNOPPIX/etc/hostname
+
{
 +
  if [ -d ${ITEM} ];
 +
  then
 +
    mkdir -p ${SOURCEDIR}/KNOPPIX${ITEM};
 +
  else
 +
    cp -ax ${ITEM} ${SOURCEDIR}/KNOPPIX${ITEM};
 +
  fi;
 +
};
 +
};
  
==CHROOT==
+
cd ${SOURCEDIR}/KNOPPIX/etc && rm -rf init* rc* passwd* group* shadow* hotplug sysconfig modu*
chroot /mnt/hda1/source/KNOPPIX/ /usr/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login
+
cd /KNOPPIX
 +
cp -ax init* rc* passwd* group* shadow* hotplug sysconfig modu* ${SOURCEDIR}/KNOPPIX/etc/.
  
==reconfigure console==
+
rm -rf ${SOURCEDIR}/KNOPPIX/dev
  dpkg-reconfigure console-data
+
cp -ax /KNOPPIX/dev ${SOURCEDIR}/KNOPPIX/.
 +
cp -ax /KNOPPIX/lib/modules/* ${SOURCEDIR}/KNOPPIX/lib/modules/.
 +
cp -ax /KNOPPIX/lib/linux-sound-base ${SOURCEDIR}/KNOPPIX/lib/.
 +
cp -ax /KNOPPIX/usr/src/* ${SOURCEDIR}/KNOPPIX/usr/src/.
 +
mkdir  ${SOURCEDIR}/KNOPPIX/cdrom
 +
mkdir  ${SOURCEDIR}/KNOPPIX/floppy
 +
mkdir  ${SOURCEDIR}/KNOPPIX/dvb
 +
cp -ax /KNOPPIX/vmlinuz  ${SOURCEDIR}/KNOPPIX/.
 +
cp -ax /KNOPPIX/tftpboot  ${SOURCEDIR}/KNOPPIX/.
  
==MAKEDEV==
 
run makedev
 
cd /dev
 
./MAKEDEV generic
 
  
==BASE ENVIRONMENT==
+
mkisofs -R -U -V "Knoppix" -publisher "SNIaKNOPPIX" -hide-rr-moved -cache-inodes -no-bak -pad ${SOURCEDIR}/KNOPPIX/ | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/master/KNOPPIX/KNOPPIX
Run base-config
+
base-config
+
Install some necessary packages:
+
apt-get install hotplug hotplug-utils gawk laptop-detect gnupg \ 
+
dhcp3-common  dhcp3-server pump
+
  
== '''KNOPPIX PACKAGES''' ==
+
mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o knoppix.iso master/
Export the following variable:
+
KNOPPIX_PACKAGES="
+
automount-knoppix \
+
etcskel-knoppix \
+
hotplug-knoppix \
+
hwsetup \
+
hwdata-knoppix \
+
knoppix-bookmarks \
+
knoppix-certificates \
+
knoppix-customize \
+
knoppix-dma \
+
knoppix-graphics \
+
knoppix-image \
+
knoppix-installer \
+
knoppix-menu \
+
knoppix-ndiswrapper \
+
knoppix-remountrw \
+
knoppix-setrootpassword \
+
knoppix-sounds \
+
knoppix-splash \
+
knoppix-splash-utils \
+
knoppix-swm \
+
knoppix-terminalserver \
+
kudzu-knoppix-dev \
+
kudzu-knoppix-vesa \
+
libntfs5-knoppix \
+
linux-kernel-headers-knoppix \
+
networkconfig-knoppix \
+
rebuildfstab-knoppix \
+
rootshell-knoppix \
+
sambastart-knoppix \
+
saveconfig-knoppix \
+
scanpartitions-knoppix \
+
sshstart-knoppix \
+
sudoers-knoppix \
+
sysvinit-knoppix \
+
unionfs-knoppix-modules-2.6.12 \
+
user-profile-knoppix \
+
usleep-knoppix \
+
fuse-module-2.6.12 \
+
hostap-modules-2.6.12 \
+
ipw2100-modules-2.6.12 \
+
ipw2200-modules-2.6.12 \
+
kernel-image-2.6.12 \
+
loop-aes-module-2.6.12 \
+
madwifi-modules-2.6.12 \
+
ndiswrapper-modules-2.6.12 \
+
rt2400-modules-2.6.12 \
+
rt2500-modules-2.6.12 \
+
rt2570-modules-2.6.12 \
+
unionfs-knoppix-modules-2.6.12 \
+
zr364xx-modules-2.6.12 \
+
zydas-modules-2.6.12"
+
 
+
===proper method===
+
Modify the following file:
+
/etc/apt/sources.list
+
and insert:
+
deb http://developer.linuxtag.net/knoppix/ ./
+
deb-src http://developer.linuxtag.net/knoppix/ ./
+
is this a mirror?
+
deb-src http://debian-knoppix.alioth.debian.org ./
+
deb http://debian-knoppix.alioth.debian.org ./
+
and lastly install the knoppix packages.
+
apt-get install ${KNOPPIX_PACKAGES};
+
 
+
===work-around method===
+
Since The mirrors I have to obtain the knoppix scripts are not functional (I can't connect, mirror is down), I am using ''dpkg -l'' to see what is installed for each package that was installed on the cd. From that list of packages I use ''dpkg --listfiles'' to see what files and directories each package has.
+
 
+
To copy over the files from the knoppix packages on the cd to the bootstrap installation:
+
for PACKAGE in ${KNOPPIX_PACKAGES}; { \
+
  for ITEM in `dpkg --listfiles ${PACKAGE} | grep -v "\.$"`;
+
  {
+
    if [ -d ${ITEM} ];
+
    then
+
      mkdir -p ${SOURCEDIR}/KNOPPIX${ITEM};
+
    else
+
      cp -ax ${ITEM} ${SOURCEDIR}/KNOPPIX${ITEM};
+
    fi;
+
  };
+
};
+
 
+
Copy passwd files
+
cp -ax /etc/passwd* ${SOURCEDIR}/KNOPPIX/etc/.
+
cp -ax /etc/group*  ${SOURCEDIR}/KNOPPIX/etc/.
+
cp -ax /etc/shadow* ${SOURCEDIR}/KNOPPIX/etc/.
+
Copy inittab
+
cp -ax /etc/inittab ${SOURCEDIR}/KNOPPIX/etc/.
+
Copy a few other initscripts (i'm not sure yet from which package these files come from)
+
 
+
cp -ax /etc/init.d/knoppix-autoconfig ${SOURCEDIR}/KNOPPIX/etc/init.d/.
+
cp -ax /etc/init.d/knoppix-halt ${SOURCEDIR}/KNOPPIX/etc/init.d/.
+
cp -ax /etc/init.d/knoppix-reboot ${SOURCEDIR}/KNOPPIX/etc/init.d/.
+
cp -ax /etc/init.d/networking ${SOURCEDIR}/KNOPPIX/etc/init.d/.
+
 
+
cp -ax /etc/sysconfig ${SOURCEDIR}/KNOPPIX/etc/.
+
 
+
='''ENTIRE SCRIPT'''=
+
#!/bin/bash
+
SOURCEDIR=/mnt/hda1/source
+
MASTERDIR=/mnt/hda1/master
+
+
mkdir ${SOURCEDIR}/KNOPPIX
+
debootstrap --arch i386 sarge /mnt/hda1/source/KNOPPIX ftp://ftp.egr.msu.edu/debian
+
mount proc -t proc ${SOURCEDIR}/KNOPPIX/proc
+
+
chroot ${SOURCEDIR}/KNOPPIX/ /usr/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login
+
 
+
Once Loged into chroot
+
dpkg-reconfigure console-data
+
cd /dev
+
./MAKEDEV generic
+
base-config
+
apt-get install hotplug hotplug-utils gawk laptop-detect
+
rm -rf /etc/rc{0,1,2,3,4,5,6,S}.d/*
+
 
+
Outside of CHROOT
+
KNOPPIX_PACKAGES="
+
ash-knoppix \
+
aumix-gtk \
+
automount-knoppix \
+
checkmem \
+
ddcxinfo-knoppix \
+
debhelper \
+
etcskel-knoppix \
+
fuse-module-2.6.12 \
+
genliloconf \
+
gprsconnect-knoppix \
+
hostap-modules-2.6.12 \
+
hotplug \
+
hotplug-knoppix \
+
hwdata-knoppix \
+
hwsetup \
+
ipw2100-modules-2.6.12 \
+
ipw2200-modules-2.6.12 \
+
kbdconfig \
+
kernel-image-2.6.12 \
+
knoppix-bookmarks \
+
knoppix-certificates \
+
knoppix-customize \
+
knoppix-dma \
+
knoppix-graphics \
+
knoppix-hdinstall \
+
knoppix-image \
+
knoppix-installer \
+
knoppix-menu \
+
knoppix-ndiswrapper \
+
knoppix-remountrw \
+
knoppix-setrootpassword \
+
knoppix-sounds \
+
knoppix-splash \
+
knoppix-splash-utils \
+
knoppix-swm \
+
knoppix-terminalserver \
+
knx-live-inst \
+
kudzu-knoppix \
+
kudzu-knoppix-dev \
+
kudzu-knoppix-vesa \
+
libntfs5-knoppix \
+
lilo module-init-tools \
+
linux-kernel-headers-knoppix \
+
loop-aes-module-2.6.12 \
+
madwifi-modules-2.6.12 \
+
mkdesktophdicons-knoppix \
+
mkdosswapfile-knoppix \
+
mkpersistenthome-knoppix \
+
mouseconfig \
+
ndiswrapper-modules-2.6.12 \
+
netcardconfig-knoppix \
+
netpipes \
+
networkconfig-knoppix \
+
ppp-scripts-knoppix \
+
rebuildfstab-knoppix \
+
rootshell-knoppix \
+
rt2400-modules-2.6.12 \
+
rt2500-modules-2.6.12 \
+
rt2570-modules-2.6.12 \
+
sambastart-knoppix \
+
saveconfig-knoppix \
+
scanpartitions-knoppix \
+
sitar \
+
slocate \
+
soundcardconfig-knoppix \
+
sshstart-knoppix \
+
sudoers-knoppix \
+
sysvinit-knoppix \
+
testdisk \
+
unionfs-knoppix-modules-2.6.12 \
+
unionfs-knoppix-modules-2.6.12 \
+
user-profile-knoppix \
+
usleep-knoppix \
+
wlcardconfig-knoppix \
+
xf86config-knoppix \
+
xsession-initscript-knoppix \
+
xsession-knoppix \
+
zr364xx-modules-2.6.12 \
+
zydas-modules-2.6.12"
+
 
+
for PACKAGE in ${KNOPPIX_PACKAGES}; { \
+
  for ITEM in `dpkg --listfiles ${PACKAGE}`;
+
  {
+
    if [ -d ${ITEM} ];
+
    then
+
      mkdir -p ${SOURCEDIR}/KNOPPIX${ITEM};
+
    else
+
      cp -ax ${item} ${SOURCEDIR}/KNOPPIX${ITEM};
+
    fi;
+
  };
+
};
+

Revision as of 05:41, 25 June 2006

Preamble

So far I have created a script to boot from Knoppix, then debootstrap and create a new livecd. This in time will be further simplified to debootstrap to livecd.

Script

  1. !/bin/bash

SOURCEDIR=/mnt/hda1/source MASTERDIR=/mnt/hda1/master

mkdir ${SOURCEDIR}/KNOPPIX mkdir ${MASTERDIR}/KNOPPIX

debootstrap --arch i386 sid ${SOURCEDIR}/KNOPPIX http://http.us.debian.org/debian

KNOPPIX_PACKAGES="ash-knoppix-26 hwsetup udev pump modutils module-init-tools linux-image-2.6.17 loop-aes-module-2.6.17 madwifi-modules-2.6.17 ndiswrapper-modules-2.6.17 rt2x00-modules-2.6.17 unionfs-knoppix-modules-2.6.17 zr364xx-modules-2.6.17 zydas-modules-2.6.17 linux-image-2.6.17 linux-kernel-headers-knoppix linux-sound-base gawk dhcp3-common console-tools console-data console-common pciutils"

for PACKAGE in ${KNOPPIX_PACKAGES}; { for ITEM in `dpkg --listfiles ${PACKAGE} | grep -v "\.$" | grep -v "divert"`; {

 if [ -d ${ITEM} ];
 then
   mkdir -p ${SOURCEDIR}/KNOPPIX${ITEM};
 else
   cp -ax ${ITEM} ${SOURCEDIR}/KNOPPIX${ITEM};
 fi;

}; };

cd ${SOURCEDIR}/KNOPPIX/etc && rm -rf init* rc* passwd* group* shadow* hotplug sysconfig modu* cd /KNOPPIX cp -ax init* rc* passwd* group* shadow* hotplug sysconfig modu* ${SOURCEDIR}/KNOPPIX/etc/.

rm -rf ${SOURCEDIR}/KNOPPIX/dev cp -ax /KNOPPIX/dev ${SOURCEDIR}/KNOPPIX/. cp -ax /KNOPPIX/lib/modules/* ${SOURCEDIR}/KNOPPIX/lib/modules/. cp -ax /KNOPPIX/lib/linux-sound-base ${SOURCEDIR}/KNOPPIX/lib/. cp -ax /KNOPPIX/usr/src/* ${SOURCEDIR}/KNOPPIX/usr/src/. mkdir ${SOURCEDIR}/KNOPPIX/cdrom mkdir ${SOURCEDIR}/KNOPPIX/floppy mkdir ${SOURCEDIR}/KNOPPIX/dvb cp -ax /KNOPPIX/vmlinuz ${SOURCEDIR}/KNOPPIX/. cp -ax /KNOPPIX/tftpboot ${SOURCEDIR}/KNOPPIX/.


mkisofs -R -U -V "Knoppix" -publisher "SNIaKNOPPIX" -hide-rr-moved -cache-inodes -no-bak -pad ${SOURCEDIR}/KNOPPIX/ | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/master/KNOPPIX/KNOPPIX

mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o knoppix.iso master/