Zuletzt angesehen: » wiki » umsteiger » bluetooth » cups_-_installation_und_konfiguration » iso-images_von_optischen_medien_erzeugen » apache_mit_php5_installieren » unix » systemdienst » cpu_stepping » live-cd_erstellen
Live-CD Erstellen (OpenBSD)
| Betrifft OS: |
|---|
![]() |
VERSION=3.8 ARCH=i386
Als erstes benötigt man eine Maschine mit einem lauffähigen OpenBSD-System. Wenn man diese Maschine neu aufsetzt, sollte man das Erstellen einer zusätzlichen Partition für die später auf der CD enthaltenen Daten in Erwägung ziehen.
Zuerst sollte das System auf den neuesten Stand gebracht werden. Zu diesem Zweck wird der Source-Tree aktualisiert, ein neuer Kernel erstellt und das System neu übersetzt werden. Wie man das macht kannst du im Artikel Updaten von OpenBSD nachlesen.
Erstellen eines CD-Daten-Verzeichnisses
Wenn wir nicht schon beim aufsetzen des Rechners eine eigene CD-Daten-Partition vorgesehen haben, legen wir uns jetzt ein Arbeitsverzeichnis an.
# mkdir /livecd
Jetzt kopieren wir das gesamte Dateisystem (mit diversen Ausnahmen) in diesen Ordner hinein. Dabei hat sich das schöne Tool rsync bestens bewährt. Dieses muss allerdings erst installiert werden.
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.8/packages/i386/rsync-xxx.tgz
Die xxx stehen für die aktuelle rsync-Version. Diese kann man ermitteln, indem man erst einmal manuell auf dem FTP-Server nachsieht wie das aktuelle Paket gerade heisst.
Nachdem rsync jetzt zur Verfügung steht, erzeugen wir uns eine Datei, in der alle Dateien und Verzeichnisse aufgelistet sind, die wir nicht kopieren wollen.
Beispiel: Datei copydirs.exclude.rc
########################### /livecd /sys /usr/src ###########################
Jetzt können wir den Kopiervorgang starten:
# rsync --exclude-from=copydirs.exclude.rc --delete --links -rpogDtW /* /livecd/
Nun legen wir unterhalb von /livecd ein Verzeichnis „backups“ an und darunter Verzeichnisse für diejenigen Daten, die nach dem Booten der CD in die dynamisch angelegten RAM-Dateisysteme kopiert werden.
# mkdir -p /livecd/backups/{var,etc,dev}
Dorthinein kopieren wir den Inhalt der Verzeichnisse /etc, /var und aus dem '/dev'-Verzeichnis die Datei MAKEDEV.
# rsync --delete --links -rpogDtW /etc/* /livecd/backups/etc/ # rsync --delete --links -rpogDtW /var/* /livecd/backups/var/ # rsync -pogDtW /dev/MAKEDEV /livecd/backups/dev/
/var,/etc,/dev,/tmp,/home und /root. Dabei können /tmp,/home und /root nach der Erzeugung leer bleiben. /var,/etc und /dev jedoch müssen vor dem Anlaufen des Systems mit gewissen Daten gefüllt werden. Dieses „Skelett“ speichern wir in den Verzeichnissen unterhalb von /livecd/backups.
Erzeugen eines speziellen Kernels
Anpassen der Kernelkonfiguration
# cd /usr/src/sys/arch/i386/conf # mv RAMDISK_CD RAMDISK_CD.orig # cp GENERIC RAMDISK_CD
Kommentiere nun in der Datei RAMDISK_CD die folgende Zeile aus
config bsd swap generic
und ersetze die Zeile
maxusers 32
durch
option RAMDISK_HOOKS option MINIROOTSIZE=3800 maxusers 32 config bsd root on cd0a
Anpassen des Makefiles
# cp /usr/src/distrib/i386/common/Makefile.inc /usr/src/distrib/i386/common/Makefile.inc.orig
Ersetze nun in /usr/src/distrib/i386/common/Makefile.inc die folgenden Zeilen
strip ${.OBJDIR}/boot
strip -R .comment ${.OBJDIR}/boot
durch
strip -s -R .comment -K cngetc ${.OBJDIR}/boot
und danach die Zeilen
strip bsd.strip strip -R .comment bsd.strip
durch
strip -s -R .comment -K cngetc bsd.strip
Installieren des ''crunch''-Paketes
# cd /usr/src/distrib/crunch && make && make install
Erzeugen des neuen Kernels
# cd /usr/src/distrib/i386/ramdisk_cd && make
make mit cannot find -lstubs beenden, so ist dies ein Hinweis darauf, dass die libstubs nicht existieren. Das kann man beheben:
# cd /usr/src/distrib/special/libstubs # make
Danach bitte das maken des Kernels wiederholen, also:
# cd /usr/src/distrib/i386/ramdisk_cd && make
Wenn das geklappt hat:
# cp obj/bsd /livecd/ # cp obj/cdrom38.fs /livecd/
Anpassen von /livecd/etc/fstab
Die Datei enthält nur eine einzige Zeile:
/dev/cd0a / cd9660 ro,noatime 0 0
Anpassen von /livecd/backups/etc/fstab
Sie sollte folgende Zeilen enthalten:
/dev/cd0a / cd9660 ro,noatime 0 0 swap /dev mfs rw,noatime,-s=12000 0 0 swap /tmp mfs rw,noatime,-s=262144 0 0 swap /var mfs rw,noatime,-s=262144 0 0 swap /root mfs rw,noatime,-s=262144 0 0 swap /home mfs rw,noatime,-s=262144 0 0 swap /etc mfs rw,noatime,-s=131072 0 0
Die Zahlenwerte definieren die Grösse der anzulegenden RAM-Drives, und zwar in 512er-Blöcken. (262144 bedeutet demnach 128MBytes.) Die Volumes wachsen während der Systemlaufzeit entsprechend ihrem Inhalt bis zu der hier angegebenen Maximalgrösse. Man sollte die Grenzwerte also tunlichst der Grösse des vorhandenen Arbeitsspeichers anpassen.
Anpassen von /livecd/etc/rc
Man entferne die Zeilen
fsck -p
und
mount /usr >/dev/null 2>&1 mount /var >/dev/null 2>&1
und
# /var/crash should be a directory or a symbolic link
# to the crash directory if core dumps are to be saved.
if [ -d /var/crash ]; then
savecore ${savecore_flags} /var/crash
fi
Nun füge man vor der Zeile
# pick up option configuration
das folgende ein:
echo 'mounting mfs' mount_mfs -s 262144 swap /var mount_mfs -s 131072 swap /etc mount_mfs -s 12000 swap /dev mount_mfs -s 262144 swap /tmp mount_mfs -s 262144 swap /home mount_mfs -s 262144 swap /root sleep 2 cp -pR /backups/var/* /var cp -pR /backups/etc/* /etc cp -pR /backups/dev/* /dev cd /dev && sh MAKEDEV all
Auch hier ist auf die Grösse der Volumes zu achten. Sie sollten sich auf jeden Fall mit den Einstellungen in /livecd/backups/etc/fstab decken.
Anpassen von /livecd/backups/etc/rc
Sie gleicht /livecd/etc/rc, enthält aber nicht die dort eingefügten Zeilen
echo 'mounting mfs' mount_mfs -s 262144 swap /var mount_mfs -s 131072 swap /etc mount_mfs -s 12000 swap /dev mount_mfs -s 262144 swap /tmp mount_mfs -s 262144 swap /home mount_mfs -s 262144 swap /root sleep 2 cp -pR /backups/var/* /var cp -pR /backups/etc/* /etc cp -pR /backups/dev/* /dev cd /dev && sh MAKEDEV all
Installieren von ''cdrtools''
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.8/packages/i386/cdrtools-xxx.tgz
Die xxx stehen auch hier für die aktuelle Versionsnummer.
Erzeugen des ISO-Images
# cd /livecd # mkisofs -b cdrom38.fs -c boot.catalog -R -v -o /tmp/livecd.iso /livecd
Verwandle das Resultat mit Hilfe eines Brenn-Programms deiner Wahl in eine CD.
Quelle
Das alles habe ich mir natürlich nicht selbst ausgedacht:
http://www.onlamp.com/pub/a/bsd/2005/07/14/openbsd_live.html
Verweise
- Noch schneller geht es, wenn man Glück hat und die Version von OliveBSD läuft.
Sie befinden sich hier: Hauptseite » openbsd » live-cd_erstellen
