Login
Newsletter
Werbung

So, 26. Dezember 2004, 00:00

Erste Schritte mit GNU/Hurd

Nachdem GNU/Hurd einmal installiert ist, will man sofort loslegen. Aber leider muss man meist zuvor einige Sachen einrichten und konfigurieren. Nachfolgend einige nützliche Tipps, wie man um die ersten Klippen herumschifft.

Netzwerk einrichten

Das Einrichten eines Netzwerkes, d.h. die Integration des Hurd-Rechners z.B. in ein LAN, ist zum Glück ziemlich einfach. GNUmach muss die Netzwerkkarte erkennen, sonst geht gar nichts. (Eine Liste von unterstützten Netzwerkkarten findet man hier).

Falls man beim cross-install nicht einen gesonderten Rechnernamen angegeben hat, wird sich der Rechner als "hurd" zu erkennen geben. Nachträglich läßt sich dies mit dem Abändern der Einträge in /etc/hosts und /etc/hostname von "hurd" z.B. zu "scotty" tun.

Als nächsten Schritt muss man den entsprechenden Socket mit der Netzwerkkarte "verbinden". Das geschieht mit folgendem Aufruf:

settrans -fgap /servers/socket/2 /hurd/pfinet --interface=device \
--address=NN.NN.NN.NN --gateway=GG.GG.GG.GG --netmask=MM.MM.MM.MM

Die Optionen "-fgap" bewirken, dass ein zuvor schon eingerichteter Translator entfernt wird und ein neuer passiver Translator permanent hinzugefügt wird. /servers/socket/2 ist der sogenannte Inode, der mit dem Translator /hurd/pfinet verknüpft wird. Die weiteren Optionen gehören dann zum Translator. Mit --interface wird die Netzwerkkarte ausgewählt (die erste erkannte Netzwerkkarte kann über eth0 erreicht werden, die zweite über eth1 usw.), --address ist die IP-Adresse des Hurd-Rechners, --gateway ist die IP des Gateways und --netmask ist die Netzmaske. Die Werte werden im üblichen Format angegeben, z.B. --interface=192.168.1.1.

Das war's schon. Falls ein Aufruf von ping erfolgreich ist, hat man es geschafft. Falls nicht, hier ein kleiner Tipp: Der Server /hurd/pfinet gibt bei einem Tippfehler keine Fehlermeldung aus.

Übrigens spielt dieses Konzept von Translatoren eine zentrale Rolle in Hurd.

Mounten von Dateisystemen

Das Konzept des Mountens von Dateisystemen ist im Vergleich zu GNU/Linux ganz anders. Wie zuvor funktioniert es wiederum über einen Aufruf von settrans. In diesem Falle wird ein anderer Translator (Server) benötigt. Zur Zeit werden nur das ext2- und NFS-Format unterstützt. Zudem gilt bei ext2-Partionen die Einschränkung, dass es nicht möglich ist, ein Dateisystem zu mounten, das größer ist als 1 GB. Diese Einschränkung gilt aber nicht für NFS. Man kann ein NFS-Volume folgendermaßen mounten:

settrans -fg /mnt /hurd/nfs 192.168.1.2:/

Danach ist das Verzeichnis /mnt verbunden mit dem root-Filesystem des Rechners mit der IP-Adresse 192.168.1.2. Der NFS-Server bietet einige nützliche Optionen. Mit dem direkten Aufruf von /hurd/nfs --help zeigt er diese an. Dies gilt natürlich auch für andere Server.

Das Mounten von ext2-Filesystemen geht nicht direkt, da höchstwahrscheinlich noch ein paar Device-Files fehlen. Diese werden wie folgt angelegt:

cd /dev
./MAKEDEV hd0s2

"hd0s2" steht dabei für die zweite Partition der ersten IDE-Festplatte. Device-Files für SCSI-Platten kann man folgendermaßen anlegen:

cd /dev
./MAKEDEV sd0s3

Im Unterschied zu GRUB werden IDE- und SCSI-Platten unterschieden. Eingefleischte Linuxer werden es bemerkt haben: hd0s1 oder sd0s1 ist dasselbe wie unter GNU/Linux hda1 bzw. sda1.

Hier noch ein kleines Beispiel, um ganz sicher zu gehen: Ein System mit zwei IDE-HDs und einer SCSI-HD würde etwa so aussehen:

hd0s?<- die erste IDE-Platte (Master auf dem Primary Channel)
hd1s?<- die zweite IDE-Platte (Slave auf dem Primary Channel oder Master auf dem Secondary Channel)
sd0s?<- die erste SCSI-Platte

Die '?' stehen dabei für die Partitionen. Die erste Partition trägt die Nummer "1" und nicht etwa "0". Die Partionen 1-4 sind primäre Partitionen, eine hiervon kann auch extended (erweitert) sein. Damit wird es möglich, mehr als nur vier Partitionen zu erstellen. Die extended Partition enthält dabei die logischen Laufwerke. Diese bekommen Nummern ab 5. Dies gilt sowohl für IDE- als auch SCSI-Platten.

Nachdem man nun die Gerätedateien hat, muss man nur noch den ext2fs-Server mit einem "Inode" verbinden. Das geht wie folgt:

settrans -fg /mnt /hurd/ext2fs /dev/hd0s5

Wiederum kann man genauere Informationen über mögliche Optionen erfahren, indem man einen direkten Aufruf von /hurd/ext2fs --help tätigt. Die vorgenommenen Einstellungen sind übrigens permanent, d.h. auch nach dem Booten werden die Partitionen automatisch wieder in den Verzeichnisbaum eingebunden. Falls dies nicht erwünscht ist, sollte man vor dem Herunterfahren des Computers die Translatoren entfernen:

settrans -fg /mnt

Swap-Partition

RAM kann man eigentlich nie genug haben, aber da das ein teures Unterfangen sein kann, wird im Normalfall zuwenig Speicher im Rechner vorhanden sein, um Hurd zu befriedigen. Vor allem, wenn man plant, die libc0.2 zu übersetzen (ca. 100 MB RAM und 200 MB Swap erforderlich plus 800 MB auf der Festplatte!). Daher sollte man eine genügend große Swap-Partition einrichten. Mit fdisk richtet man eine Partition des Typs "Linux Swap (82)" ein. Dabei gibt es keine größeren Einschränkungen als bei einigen Linux Kerneln der Serie 2.0 und 2.2. Falls schon eine Swap-Partition besteht, die von Linux benutzt wird, kann man einfach einen Eintrag in die Datei /etc/fstab machen:

# <file system> <mount point> <type> <options>
<dump> <pass>
/dev/hd0s6 none swap sw 0 0

Natürlich muss die dazugehörende Gerätedatei bestehen:

cd /dev
./MAKEDEV hd0s6

Danach muss man nur noch mit swapon /dev/hd0s6 die Swap-Partition aktivieren.

Besten Dank an Christian Recktenwald (chris@faveve.uni-stuttgart.de) für die Korrekturen.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung