|
|
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/