Krefix-Image von Festplatte booten #
Zum Testen oder in dem Fall, daß man kein CD-ROM-Laufwerk hat (z.B. wegen einem kleinen Gehäuse oder in einem EmbeddedLinux), aber trotzdem die Vorteile eines ISO-Dateisystems bzgl. des Schreibschutzes nutzen will, ist es gut, ein KrefixLinux komplett von einer Festplatte laufen lassen zu können.
Einfach #
Im Grunde ist das sehr einfach: Das Image per dd auf z.B. /dev/hda1 kopiert, dann mit einer Bootdiskette gestartet und dort /dev/hda1 als CD-Laufwerk eingetragen. Fertig!
Ohne Diskette #
Wenn man schon eine Festplatte eingebaut hat, will man eventuell ganz auf die Floppy verzichten. Das ist schon etwas komplizierter. Ich möchte hierzu eine beschreibbare Partition haben, in die die Konfiguration kommt und eine, die ein ISO-Image enthält, das schreibgeschützt ist. Um das System dann wirklich abzusichern, fehlt noch irgendwetwas, das dem Schreibschutz der Diskette entspricht. Doch dazu später...
Vorbereitung von KrefixLinux #
Wir benötigen den GRUB Bootloader und die GRUB-Images am richtigen Platz:
apt-get install grub cp -r /lib/grub/i386-pc /boot/grub
Auf LinuxOhneBildschirm steht, wie man nun noch mittels der GRUB-shell grub von Hand einen GRUB-Bootblock auf die Platte bekommt. (Evtl. gehts auch einfacher mit grub-install, da müsste mal jemand nachforschen)
Will man auch die Diskette weglassen und durch eine Harddisk-Partition ersetzen, so muss in die /etc/bootcd/bootcdwrite.conf noch zusätzlich:
FLOPPY_RUNTIME_DEV=/dev/hda1
Außerdem muss man in der Datei /usr/share/bootcd/bootcdflopcp eine Zeile ändern:
FLOPPY=/dev/hda1
Und in /boot/grub/menu.lst muss eine Zeile auf hda2 angepasst werden (ja, das ist richtig, das die auskommentiert ist!):
# kopt=root=/dev/hda2 ro
Installation #
Die eigentliche Installation geht folgendermassen vor sich:
cfdisk /dev/sdb
Dann eine Bootpartition (z.B. 10MB) und eine Hauptpartition einrichten. Dann gehts weiter mit:
mke2fs -j /dev/sdb1 tune2fs -c 0 -i 0 /dev/sdb1 (wer will, kann so auf Filesystem-Checks verzichten) mount /dev/sdb1 /mnt/ cp -a /home/tbayen/projekte/krefix/boot /mnt/ cp -a /home/tbayen/projekte/krefix/vmlinuz /mnt/ cp -a /home/tbayen/projekte/krefix/initrd.img /mnt/ umount /mnt/ dd if=/home/tbayen/projekte/krefix/var/spool/bootcd/cdimage.iso of=/dev/sdb2
Bootprobleme Debian etch bei Verwendung von Bootcd #
Fehler 1 #
Debian etch verwendet , nicht wie Vorgängerversionen das initrd, nunmehr initramfs. Zur Erkennung des Filesystems der Root-Partition kommt unter initramfs mini-programm ' fstype' zum Einsatz. 'fstype' erkennt aktuell kein Filesystem vom Typ iso9660, kann somit keine CD- Images erkennen, wie sie halt zum Booten von CD üblich sind.
Um dieses Problem temporär zu umgehen, haben wir in der Datei
/usr/share/initramfs-tools/scripts/local
nach der zeile
eval $(fstype < ${ROOT})
folgende Zeile eingefügt
FSTYPE=iso9660
mit der dann das zu bootende CD- Filesystem erkannt wird. Um diese Änderung in die beim aktuellen Kernel verwendete initramdisk zu übernehmen, muss man das Kernel-Paket neu konfigurieren:
dpkg-reconfigure linux-image-2.6....
Fehler 2 #
Das nächste Problem ist, das das neue udev die Devices in /dev nicht richtig anlegt. Hierzu muss im Skript /usr/share/bootcd/S12bootcdram.sh in der letzten Zeile (wo udev gestartet wird) aus start ein restart gemacht werden.