|
|
| 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;
| + | |
| − | };
| + | |
| − | };
| + | |
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.
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"`;
{
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 -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/