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....
bei der Suche nach der Fehlerursache von 'fstype' war sehr hilfreich, das mit der Kernel-Option break der Bootvorgang noch in der Initramdisk anhalten werden kann und zu verscheidenen Stadien verzweigt werden kann. (break=top, modules, premount
--> siehe script init unter /usr/share/initramfs-tools/)

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.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-2) was last changed on 13-Nov-2006 15:26 by PeterHormanns