Samstag, 1. November 2008
Hier habe ich mal eine kleine Anleitung zum Erstellen eines bootbaren USB-Stick's erstellt, von dem aus NetBSD auf die lokale Festplatte installiert werden kann. Dabei wird ausgegangen, dass es sich um einen FAT-formatierten Stick mit 1 GB Speicher handelt. Er wird standardmäßig unter NetBSD als Gerät /dev/sd0e gemountet. Im Prinzip gleicht sie der aus dem Wiki von den BSD-Foren. Nur dass ich die entsprechenden Laufwerksbezeichnungen und Verzeichnisse meines eingesetzten System angepasst habe.

1. Den USB-Stick bootbar machen

Das Einrichten des USB-Sticks erfolgt auf einem NetBSD-System. Neben einem neuen oder bereits gebrauchten USB-Stick mit mindestens 256MB Speicherkapazität wird ein CD-Image der gewünschten NetBSD-Version benötigt. Das ca. 200MB grosse CD-Image ist im Internet auf vielen FTP-Servern verfügbar.

Generell empfiehlt es sich, als ersten Schritt den Master Boot Record (MBR) neu zu installieren. Dies ist zwar nicht unbedingt notwendig, stellt aber sicher, dass der USB-Stick booten wird:

$ su
# fdisk -i /dev/sd0d
Update the bootcode from /usr/mdec/mbr? [n] y


Ausserdem ist es empfehlenswert, zunächst unter fdisk(8) eine NetBSD-Partition einzurichten:

# fdisk -u /dev/sd0d
Disk: /dev/sd0d
NetBSD disklabel disk geometry:
cylinders: 996, heads: 64, sectors/track: 32 (2048 sectors/cylinder)
total sectors: 2040832
BIOS disk geometry:
cylinders: 1012, heads: 32, sectors/track: 63 (2016 sectors/cylinder)
total sectors: 2040832
Do you want to change our idea of what BIOS thinks? [n]
Partition table:
0: Primary DOS with 32 bit FAT (sysid 11)
start 63, size 2040759 (996 MB, Cyls 0-1012/9/63)
1: UNUSED
2: UNUSED
3: UNUSED
Bootselector disabled.
Which partition do you want to change?: [none] 0
The data for partition 0 is:
Primary DOS with 32 bit FAT (sysid 11)
start 63, size 2040759 (996 MB, Cyls 0-1012/9/63)
sysid: [0..255 default: 11] 169
start: [0..1012cyl default: 63, 0cyl, 0MB]
size: [0..1012cyl default: 2040759, 1012cyl, 996MB]
bootmenu: []
Partition table:
0: NetBSD (sysid 169)
start 63, size 2040759 (996 MB, Cyls 0-1012/9/63)
1: UNUSED
2: UNUSED
3: UNUSED
Bootselector disabled.
Which partition do you want to change?: [none]
We haven't written the MBR back to disk yet. This is your last chance.
Partition table:
0: NetBSD (sysid 169)
start 63, size 2040759 (996 MB, Cyls 0-1012/9/63)
1: UNUSED
2: UNUSED
3: UNUSED
Bootselector disabled.
Should we write new partition table? [n] y


Zusätzlich sollte die NetBSD-Partition unter fdisk noch auf „Active“ gesetzt werden:

# fdisk -a sd0
Disk: /dev/rsd0d
NetBSD disklabel disk geometry:
cylinders: 996, heads: 64, sectors/track: 32 (2048 sectors/cylinder)
total sectors: 2040832
BIOS disk geometry:
cylinders: 1012, heads: 32, sectors/track: 63 (2016 sectors/cylinder)
total sectors: 2040832
Partition table:
0: NetBSD (sysid 169)
start 63, size 2040759 (996 MB, Cyls 0-1012/9/63)
1: UNUSED
2: UNUSED
3: UNUSED
Bootselector disabled.
Do you want to change the active partition? [n] y
Choosing 4 will make no partition active.
active partition: [0..4 default: 4] 0
Are you happy with this choice? [n] y
We haven't written the MBR back to disk yet. This is your last chance.
Should we write new partition table? [n] y


NetBSD nutzt eine eigene Partitionstabelle, nicht die von fdisk. Diese wird mit disklabel angelegt:

# disklabel -i -I /dev/sd0e
partition> a
Filesystem type [?] [unused]: ?
Supported file system types:
4.1BSD Eighth Edition MSDOS unknown
4.2BSD FILECORE NTFS unused
4.4LFS HFS RAID Version 6
ADOS HPFS swap Version 7
Apple UFS ISO9660 System V vinum
boot jfs SysVBFS
ccd Linux Ext2 UDF
Filesystem type [?] [unused]: 4.2BSD
Start offset ('x' to start after partition 'x') [0c, 0s, 0M]:
Partition size ('$' for all remaining) [0c, 0s, 0M]: $
a: 2040832 0 4.2BSD 0 0 0 # (Cyl. 0 - 996*)
partition> d
Filesystem type [?] [unused]:
Start offset ('x' to start after partition 'x') [0c, 0s, 0M]:
Partition size ('$' for all remaining) [996.5c, 2040832s, 996.5M]:
partition> W
Label disk [n]? y
disklabel: partitions a and e overlap
Label written
partition> q
Unknown command q
partition> Q


Die Partitionen stehen nun fest. Es fehlt noch das Dateisystem auf der Partition sd0e, das mit newfs angelegt wird:

# newfs /dev/sd0e

Allerdings kann die Partition noch nicht gebootet werden. Die folgenden Schritte sind abschließend notwendig:

# mount /dev/sd0e /mnt
# cp /usr/mdec/boot /mnt
# installboot -v -o timeout=5 /dev/rsd0e /usr/mdec/bootxx_ffsv1
File system: /dev/rsd0e
Primary bootstrap: /usr/mdec/bootxx_ffsv1
Ignoring MBR with invalid magic in sector 0 of `/dev/rsd0e'
Preserving 51 (0x33) bytes of the BPB
Boot options: timeout 5, flags 0, speed 9600, ioaddr 0, console pc



2.Die Installations-Kernel und -Sets auf den USB-Stick kopieren

Der USB-Stick ist nun bootfähig, aber ihm fehlt noch das, was eigentlich gebootet werden soll: das Betriebssystem oder wie in userem Fall das NetBSD-Installations-System mit dem Installations-Kernel. Das spätere Betriebssystem steckt in den Installations-Sets, die während der Installation entpackt und auf die Festplatte kopiert werden. Auch diese Installations-Sets werden auf dem USB-Stick benötigt.

Am einfachsten ist es, die komplette Installations-CD herunterzuladen, die als CD-Image auf vielen FTP-Servern liegt:

$ cd /home/sommteck/
$ ftp -a ftp://ftp3.de.netbsd.org/pub/NetBSD/NetBSD-4.0/iso/i386cd-4.0.iso


Um die benötigten Dateien aus dem CD-Image auf den USB-Stick kopiern zu können, muss die Image-Datei ins Dateisystem eingebunden werden:

$ su
# mkdir /image
# vnconfig -c vnd0 /home/sommteck/i386cd-4.0.iso
# mount -t cd9660 /dev/vnd0d /image/


Der Installations-Kernel und die Sets werden dann auf den gemounteten USB-Stick kopiert:

# cp /image/i386/binary/kernel/netbsd-INSTALL.gz /mnt/netbsd.gz
# cp -R /image/i386/binary/sets/ /mnt/sets/


Danach ist der USB-Stick fertig eingerichtet. Nach dem Runterfahren des Computers, muss der USB-Stick im BIOS als das zu bootende Laufwerk eingestellt werden. NetBSD sollte im Anschluss daran einwandfrei booten und mit einem blauen Installations-Menü grüssen.


3.Anmerkungen zur Installation

Eigentlich läuft die Installation nun problemlos und nach dem vertrauten Muster ab. Der folgende Schritt könnte jedoch Probleme bereiten:

Ihre Festplatte ist nun bereit für die Installation der Kernel- und
Distributionspakete. [...]


Hier muss das richtige Medium ausgewählt werden, und zwar:

>f: Ungemountetes Dateisystem

Mit RETURN bestätigen und es erscheint der folgende Screen:

Geben Sie das noch nicht gemountete lokale Gerät und dessen entsprechendes
Verzeichnis an, im dem die Distribution zu finden ist. (Das Verzeichnis muss
.tgz Dateien enthalten)


Hier sind die Optionen wie folgt zu setzen (aber dies ist nur ein Beispiel, bitte gegebenenfalls anpassen!!):

a: Gerät sd0e
b: Dateisystem ffs
c: Basispfad
d: Verzeichnis /sets
Kategorie BSD |  0 Kommentare »
Sonntag, 26. Oktober 2008
Der Chaos Computer Club Mainz hat anlässlich seines fünfjährigen Bestehens auf den Tag am 21. Oktober, gestern Abend eine Kleine Geburtstagsfeier in seinen Räumlichkeiten in der Kreativfabrik gegeben. Diesbezüglich noch mal ein herzliches Happy Birthday nachträglich von mir und viel Erfolg für die hoffentlich nächsten mehr als fünf Jahre weiteren Bestehens. Es war eine sehr chillige Party.
Der cccmz bietet mit seinem Clubräumlichkeiten einen sehr gemütlichen Hackerspace wo sich Leute treffen können um Spaß zu haben, zu diskutieren, Ideen auszutauschen oder einfach kreative Dinge zu vollbringen.

P.S.: Das Büfett und auch der Kuchen waren sehr sehr lecker!
Kategorie CCC |  0 Kommentare »
Samstag, 25. Oktober 2008
Wie angekündigt will ich mal meine Erfahrungen mit NetBSD schildern. Ausgangsziel war ja, ein wenig Unix zu lernen und dabei ein System zum Produktivem Einsatz mit den allgemein bekannten und für die Textkonsole verfügbaren Werkzeugen aufzusetzen. Ganz gleich ob eine graphischen Oberfläche zum späteren Zeitpunkt noch zum Einsatz kommen soll oder nicht.
Doch warum aber jetzt unbedingt NetBSD anstatt eines Free- oder OpenBSD, welche sich einer größeren Beliebtheit erfreuen als das von mir gewählte. Die Nachteile von FreeBSD für mich waren zum einem, dass FreeBSD zur Installation und weiteren Konfiguration auf das Programm sysinstall setzt, welches einem dazu verleitet, nicht die entsprechenden Werkzeuge auf der Shell kennen und nutzen zu lernen. Auch wenn diese einem weiterhin zur Verfügung stehen. Dies würde nämlich auch wie bei einer (z.B. openSuse) den Effekt des Lernens nehmen, sodass man keine Chance bekommt, das Betriebssystem wirklich kennen zu lernen. Zum anderen ist FreeBSD ein System, dessen Anspruch auf den Einsatz im harten Produktivbereich liegt. Dies bedeutet, dass es selbst nach meiner subjektiven Beobachtung nach, schon bei der kompletten Basisinstallation sehr umfangreich ist und zusätzlich auf ca 18.000 Programme von Drittanbieter für allerlei Einsatzzwecke zurückgreifen kann. Und das eigentlich zurecht. Der Vorteil von NetBSD gegenüber OpenBSD ist, das es bei einer Erstinstallation auf einen Rechner weit aus einfacher und intuitiver anzuwenden ist. Außerdem gibt es bei NetBSD mit ca 7300 Binärpaketen zwar weniger als die Hälfte gegenüber FreeBSD, aber es sind immer noch weitaus mehr als bei OpenBSD mit ca 4900 zur Zeit.
Und da man zum Unix lernen keine neue große Hardware braucht, habe ich mir quasi den entsprechenden Rechner größtenteils zusammen geschenkt. Einen herzlichen Dank soll dabei noch mal an alle beteiligten Spender gehen, die diesem Computer möglich gemacht haben. Er besitzt folgende Spezifikationen:

- AT-Baby Desktop Gehäuse
- Asus P5A-B (Super-Sockel 7)
- AMD K6 2 @400 MHz
- 256 MB SD-RAM
- 32 MB ATI-Rage XPert AGP-Grafikkarte
- UDMA-IDE PCI-Karte
- 2 x 80 GB IDE-HDD (UDMA-6)
- 1,44 MB FDD
- 10 Mb NE2000-Karte (ISA)
- 100 Mb Realtek 8139 (PCI)
- SB 32 PnP ISA-Soundkarte

Da die hier aufgelistete und somit verwendete Hardware schon um einiges veraltet ist, kann man davon ausgehen, dass alle verwendeten Komponenten auf anhieb von dem verwendeten Betriebssystem unterstützt wird.
Eine weiter sehr schöne Eigenschaft von NetBSD (und bei einigen anderen BSD's ist dies sicherlich auch der Fall) ist, dass man nicht gleich ein komplettes ISO-Image herunterladen muss. Sondern es reicht, wenn man die 1,44 MB großen Floppy-Images nimmt, diese auf zwei leere Disketten kopiert und man so dass System gemütlich über das Internet installieren kann. Auf den Disketten ist nämlich ein ausreichend kleiner Kernel zum Booten des System und die nötigen Werkzeuge zur Installation des Systems platzsparend untergebracht. So kann man sich auf alle Fälle schon einmal einen CD-Rohling sparen, was ja darin begründet liegt, dass das BSD-Derivat schließlich seinen Fokus auf die Portierbarkeit zu alten Workstations gesetzt hat und einige - wenn nicht sogar viele - dieser Rechnerarchitekturen zur ihrer damaligen Zeit einfach aus nicht Vorhandensein noch keine Unterstützung für optische Medien erfuhren. Als ein echtes Novum von NetBSD unter allen den von mir ausprobierten Unix-ähnlichen Betriebssystemen ist das Installationsprogramm "Sysinst" zur Erst- oder Neuinstallation auf einem Rechner. Es ist ähnlich wie beim Sysinstall von FreeBSD ein textorientertes Dialogprogramm, welches im Gegensatz aller BSD's und auch NetBSD im allgemeinen noch zusätzlich in der französischen, polnischen, italienischen und deutschen Sprache übersetzt ist. Einen weiteren Vorteil bietet das Programm, dass es bei jedem ausgeführten Schritt zur Einrichtung des Computer den jeweiligen Befehl am oberen Bildschirmrand anzeigt. So kann man, wenn man denn sich fit genug fühlt, beim nächsten mal auf Sysinst verzichten und die Befehle direkt auf der zur alternative stehenden Shell direkt eingeben. Sysinst bietet wie Eingangs schon erwähnt, gegenüber von sysinstall bei FreeBSD nur sehr wenige Optionen zur Konfiguration des Rechners. Alsbald währen das in Reihenfolge nach dem Booten vom Installationsmedium:

- Auswahl der sprachlichen Übersetzung während der Installation in sysinst
- Wahl des Tastaturschema
- Hauptmenü

Im Hauptmenü stehen folgende Aktionen zur Verfügung

- NetBSD auf die Festplatte installieren
- Aktualisieren einer bestehenden NetBSD Installation
- Erneute Installation oder zusätzliche Pakete installieren
- Computer neu starten
- Extras
- Installationssystem beenden

Will man also nun auf einen Computer NetBSD installieren, so wählt man im Hauptmenü den ersten Punkt, welcher folgende Optionen in Reihenfolge ausführt:

- die Wahl des Installationsumfang
- Auswahl des Festplattenlaufwerk (wenn mehrere im Rechner vorhanden)
- Bestätigung bzw. Abänderung der Festplattengeometrie
- die Wahl, ob die gesamte Festplatte verwendet werden soll oder die Partitionstabelle abgeändert werden soll
- Entscheidung ob der Bootcode in den MBR kopiert werden soll
- setzen der Partitinsgrößen
- setzen eines Namen für die Festplatte
- Auswahl der Bootblöcke
- Auswahl des Installtionsmediums
- Auswahl der Netzwerkschnittstelle
- Art der Netzwerkverbindung bzw Konfiguration per DHCP ermitteln
- Auswahl über die Verfügung von IPv6
- Möglichkeit zur Änderung der Host-Adresse
- die Möglichkeit zur Übernahme der vorkonfigurierten Netzwerkeinstellung in das installierte System
- setzen der Zeitzone
- Wahl über das Passwort-Verschlüsselungsverfahren
- die Möglichkeit das Root-Passwort bereits zu setzen
- Wahl der Standartshell

Nach der Installation wird man direkt auf die Root-Shell geworfen und man kann zum Beispiel (man sollte sogar) mit den Textkomandos einen Benutzer erstellen. Denn wie gesagt: Ab hier kann man zur weiteren Konfiguration des System nicht auf sysinst setzen und muss stattdessen mit dem eingebauten Werkzeugen und der dazugehörigem Dokumentation sich auseinandersetzen. Das hieß für mich unter anderem, um die zweite Festplatte im Computer dann mit dem hauseigenen Dateisystem nutzbar zu machen, muss man die doch nicht so intuitiven Befehle disklabel, fdisk und newfs verwenden. Dies war eben aber mit ein relevanter Punkt, warum meine Wahl eben nicht auf OpenBSD fiel. Nicht gerade leichte Kost! Insbesondere dann, wenn das dann Laufwerke sind, die bereits schon Partitionen mit wichtigen Daten enthalten.
Ein Blick in den Aufbau und die Struktur des Dateisystems zeigt einen echt großen Vorteil der BSD-Linie im allgemeinen zu Linux. Es ist schlicht und ergreifend viel strukturierter und übersichtlicher aufgebaut. Gerade der Blick in das /etc -Verzeichnis sagt einem, wo man denn überhaupt hin muss.
Neben grundlegenden Unterschieden der BSD's gegenüber z.B. Linux gibt es auch einige feinere von NetBSD zu den anderen. So werden alle zusätzliche installierten Programme nicht wie meistens üblich in das Verzeichnis /usr/bin abgelegt, sondern es wird ein eigener Baum /usr/pkg im Wurzelverzeichnis angelegt. Unter /usr/pkg/bin findet man so die Binärdateien und deren globalen Config-Dateien entsprechend unter /usr/pkg/etc. Also quasi ein weiteres usr-Verzeichnis unter /usr. Auch sehr schön, will man auf den Rechner mittels der SSH zugreifen, muss man nicht erst den entsprechenden openssh-Server nachinstallieren, sonder man aktiviert diesen lediglich in der /etc/rc.conf durch hinzufügen der Zeile sshd=YES. Und überhaupt kann man sagen, dass der Distributionsgedanke, der sich mit Linux sehr stark entwickelte und weiter verbreitet wurde, unter den BSD's viel konsequenter weitergeführt wird. Man installiert sich eben das komplette Basisset und hat dann eben auch alle wichtigen Werkzeuge wie den GNU C-Compiler sofort an Bord und kann sofort loslegen zu programmieren und kompilieren. Und das ohne, dass gleich mehrere Gigabyte an Festplattenplatz belegt sind und erst einmal vor der Entscheidung steht: "Welche Grafische Oberfläche nehme ich den nun?". Das spiegelt sich auch in der Verfügbarkeit von Dokumentationen und Hilfen aus dritter Hand wieder. Während es unzählige Linux-Distributionen und nochmal so viel zum Quadrat an Büchern und Internetforen zu der jeweiligen gibt, gibt es lediglich inzwischen eben nur vier BSD-Varianten und ein paar ganz wenige Modifikationen und Fork's für eine Spezialanwendung von diesen. Das heißt, die Menge an bisher verfügbaren Printmedien und Howto's im Internet kann man zwar an beiden Händen abzählen, sind aber absolut inhaltlich auf den Punkt und somit brauchbar. Auf NetBSD herunter gebrochen kann man beispielsweise sagen: Kommt man in diesem nicht weiter, so kann man hier die Online-Dokumentation von OpenBSD zu Rate ziehen (OpenBSD ist schließlich eine Abspaltung von NetBSD).
NetBSD hat aber auch einige Schwächen. So kann man zum Beispiel das System nicht über mehrere Festplattenlaufwerke verteilt installieren. Desweiteren ist es mit dem ifconfig Befehl nicht möglich, die MAC-Adresse des Netzwerkinterface zu ändern. Leider ist es mir auch bisher nicht gelungen, es unter VirtualBox als eine virtuelle Maschine zu installieren.

Hiermit seien somit noch ein paar Links genannt:

Offizielles Online-Handbuch von NetBSD

Die deutsche Ausgabe des FreeBSD Online-Handbuch

Die deutsche Ausgabe des OpenBSD Online-Handbuch

Wiki von bsdgroup.de

NetBSD - Einführung von Dirk Lindloff
Kategorie BSD |  0 Kommentare »