Naums, Dirty Oerti, nufan, Xin
Ich fasse jetzt mal zusammen, was bisher an Planung vorhanden ist: Ziel ist es, ein Linux-System zu schaffen, dass es Anfängern ermöglicht, schnell und unkompliziert in die Entwicklung sozusagen einzusteigen, es gleichzeitig jedoch "Fortgeschrittenen" keine Steine in den Weg legt. Das System soll möglichst minimal gehalten sein, aber voll ausbaubar sein und es soll natürlich nicht am nötigen Komfort fehlen. Gleichzeitig soll das System (nat) stabil laufen. Außerdem soll es proggen.org "repräsentieren"
Ziele: Ubuntu basiertes Linux (Dirty: aktuelle, Naums: 10.04 LTS) Browser: Firefox? Pakete zunächst: Direkt von Ubuntu only, Metapakete von proggen.org Optik: kein Compiz (brauchen 3D Treiber), Naums schaut sich OpenBox (schnell, klein) als Fenstermanager an
Braucht man das? Vielleicht eher Wiki-Seite. Firefox an apt-URLs lesen, Metaquellen von Proggen.org runterladen. Ergibt ein eigenes Software-Center Sinn? Entwickler interessiert nur bestimmte Pakete, die dann z.b: als Metapakete installiert werden könne. Eine grafische Anwahl mit einer graphische Oberfläche als Programm kann später erfolgen. Das erste Software-Center kann ein Link auf eine Wiki-Seite mit apt-URLs sein.
MUSS als root ausgeführt werden!
#!/bin/bash CHROOT=CHROOT IMAGE=image mkdir ${CHROOT} # Installing a barebones ubuntu into chroot debootstrap --arch=i386 maverick ${CHROOT} # Preparing to switch into chroot mount --bind /dev ${CHROOT}/dev cp /etc/hosts ${CHROOT}/etc/hosts cp /etc/resolv.conf ${CHROOT}/etc/resolv.conf cat > ${CHROOT}/etc/apt/sources.list<<EOF `cat ${CONFIG}/sources.list` ############################################### TODO sources! EOF # Enter chroot chroot ${CHROOT} /bin/bash<<EOF mount none -t proc /proc mount none -t sysfs /sys mount none -t devpts /dev/pts export HOME=/root export LC_ALL=C apt-get update apt-get install --yes dbus cp /sbin/initctl initctl.backup dbus-uuidgen > /var/lib/dbus/machine-id dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl # Install base system ################################################ TODO install ubiquity!!!!!!! apt-get install --yes ubuntu-standard casper lupin-casper apt-get install --yes discover laptop-detect os-prober apt-get install --yes --no-install-recommends linux-generic # Install required packages for desktop etc # .... # We need only one tty rm /etc/init/tty[2-6].conf # Exit chroot ... rm /var/lib/dbus/machine-id rm /sbin/initctl #dpkg-divert --rename --remove /sbin/initctl mv initctl.backup /sbin/initctl apt-get clean rm -rf /tmp/* rm /etc/resolv.conf rm /etc/hosts umount -lf /proc umount -lf /sys umount -lf /dev/pts exit EOF umount ${CHROOT}/dev ################################################### TODO: Evtl install Ordner ?!?! # Set up folders for the image mkdir -p ${IMAGE}/{casper,isolinux} # Copy the kernel and the initrd cp ${CHROOT}/boot/vmlinuz-2.6.**-**-generic ${IMAGE}/casper/vmlinuz ## Wenn die initrd verändert (und neu erstellt wurde): #mv ${CHROOT}/initrd.gz ${IMAGE}/casper/initrd.gz ## Ansonsten: mv ${CHROOT}/boot/initrd.img-2.6.**-**-generic ${IMAGE}/casper/initrd.gz # isolinux cp /usr/lib/syslinux/isolinux.bin ${IMAGE}/isolinux/ cat > ${IMAGE}/isolinux/isolinux.txt<<EOF ************************************************************************ CaseTrain @ Ubuntu 10.10 i386 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Enter "live" to boot the live system! Bitte "live" eingeben, um das Livesystem zu starten! Enter "check" to check CD for defects! Bitte "check" eingeben, um CD auf Integritaet zu testen! Enter "hd" to boot from first hard disk! Bitte "hd" eingeben, um von der ersten Festplatte zu starten! ************************************************************************ EOF cat > ${IMAGE}/isolinux/isolinux.cfg<<EOF DEFAULT live LABEL live menu label ^Start Progbuntu @ Ubuntu 10.10 i386 kernel /casper/vmlinuz append boot=casper initrd=/casper/initrd.gz lang=de locale=de_DE.utf8 bootkbd=de console-setup/layoutcode=de ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL check menu label ^Check CD for defects kernel /casper/vmlinuz append boot=casper integrity-check initrd=/casper/initrd.gz lang=de locale=de_DE.utf8 bootkbd=de console-setup/layoutcode=de ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL hd menu label ^Boot from first hard disk localboot 0x80 append - DISPLAY isolinux.txt TIMEOUT 30 PROMPT 1 #prompt flag_val # # If flag_val is 0, display the "boot:" prompt # only if the Shift or Alt key is pressed, # or Caps Lock or Scroll lock is set (this is the default). # If flag_val is 1, always display the "boot:" prompt. # http://linux.die.net/man/1/syslinux syslinux manpage EOF # create manifest chroot ${CHROOT} dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ${IMAGE}/casper/filesystem.manifest cp -v ${IMAGE}/casper/filesystem.manifest ${IMAGE}/casper/filesystem.manifest-desktop REMOVE='ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup discover xresprobe os-prober libdebian-installer4' for i in $REMOVE do sudo sed -i "/${i}/d" ${IMAGE}/casper/filesystem.manifest-desktop done # create filesystem.squashfs mksquashfs ${CHROOT} ${IMAGE}/casper/filesystem.squashfs -noappend -e boot printf $(du -sx --block-size=1 ${CHROOT} | cut -f1) > ${IMAGE}/casper/filesystem.size # create diskdefines cat > ${IMAGE}/README.diskdefines<<EOF #define DISKNAME Progbuntu @ Ubuntu 10.10 i386 #define TYPE binary #define TYPEbinary 1 #define ARCH i386 #define ARCHi386 1 #define DISKNUM 1 #define DISKNUM1 1 #define TOTALNUM 0 #define TOTALNUM0 1 EOF # make it a ubuntu remix .. touch ${IMAGE}/ubuntu mkdir ${IMAGE}/.disk touch ${IMAGE}/.disk/base_installable echo "full_cd/single" > ${IMAGE}/.disk/cd_type echo 'Progbuntu @ Ubuntu 10.10 i386' > ${IMAGE}/.disk/info echo "http//proggen.org" > ${IMAGE}/.disk/release_notes_url cd ${IMAGE} # build cd iso find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt mkisofs -r -V "IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../progbuntu-remix.iso .