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/