Donnerstag, 27. Mai 2004, 19:45
DragonFlyBSD-Installation
1. Installation von CD1.1 Überblick
Dieser Text beschreibt die Installation von DragonFlyBSD auf einem Rechner mit i386-Architektur. Dazu wird eine bootbare DragonFly-CD verwendet, oftmals als "LIVE-CD" bezeichnet.
Diese CD-Abbilder findet man auf den Projekt-Servern und deren Spiegeln [1].
Das Entwicklerteam von DragonFlyBSD arbeitet momentan an einem Installationstool für das System, das sowohl die Partitionierung als auch den Installationsprozess vereinfachen soll. Eine Alphaversion dieses Installers kann man sich hier näher anschauen und damit ein rudimentäres System installieren [2].
So lange dieses Tool noch nicht in der Basis-Version vetreten ist, muss das System mit der hier vorgestellten manuellen Installtionsweise auf dem System eingerichtet werden. Einige Erfahrung mit BSD-eigenen Tools ist von Vorteil, aber nicht zwingend nötig.
Achtung! Diese Anleitung zeigt die Installation eines DragonFlyBSD-Systems auf einem Rechner ohne weiteres installiertes System und die Installation des DragonFlyBSD-Systemes neben bereits installeirten Betriebssystemen. . Daher sollten vorher alle noch benötigten Daten auf der Festplatte gesichert werden.
Sollte auf einem alten Rechner die Installtion nicht möglich sein, da dieser nicht von CD booten kann, so muss ein Bootmanager gefunden werden, der von Diskette startet und dann CDRom-Zugriff gewährt.
----
1.2 CD Installation - Platz für das System finden
1.2.1 DragonFly als das einzige Betriebsystem auf einem Rechner
Falls DragonFlyBSD das einizige Betriebsystem auf dem Zielrechner sein soll, ist es einfach die Festplatte vorzubereiten. Hierzu muss mit der LiveCD gebootet werden und danach loggt man sich als Benutzer root (ohne Passwort!) ein, um an einen Befehlseingabeprompt zu gelangen.
Als erstes muss der MasterBootRecord (MBR) von allen alten Informationen gereinigt werden. Der folgende Befehlsstring löscht alle alten Daten, indem es Nullen (if=/dev/zero) auf die Master-IDE-Platte (of=/dev(ad0) des Systems schreibt:
# dd if=/dev/zero of=/dev/ad0 bs=32k count=16
Die gelöschte Platte muss nun formatiert werden.
# fdisk -I ad0
# fdisk -B ad0
1.2.2 Mehrere Betriebssysteme auf einer Festplatte
Bei dem nun folgenden Beispiel wird davon ausgegangen, dass auf dem Zielrechner noch zumindest ein Betriebsystem instaliert ist, das auf jeden Fall erhalten bleiben soll.
Eine neue Partition für DragonFlyBSD muss also von der Partition aus erstellt werden, auf der das System installiert ist. Somit muss also ungenutzter Plattenplatz in der bereits benutzen Partition vorhanden sein um sie in ihrer Größe zu verändern.
Wichtig: Die neue Partition wird also aus dem unbenutzen freien Platz einer bereits existierenden Partition erstellt.
So hat zum Beispiel eine Festplatte mit der angenommenen Kapazität von 18 Gigabyte, auf der 17 Gigabyte Daten lagern, noch 1 Gigabyte frei für unser Vorhaben einer neuen Partition.
Die Größenänderung der Partition muss durch eni "thirs party"-Tool erledigt werden. Zum Beispiel kann das kommerzielle Partition Magic oder ein Partition-Tool einer LiveCD wie zum Beispiel Knoppix dafür eingesetzt werden (GNU parted).
Man sollte eine Partition erstellen, die mindestens(!) 5-6 Gigybate Plattenplatz bereitstellt. Natürlich ist es möglich in einer kleineren Partition das System unterzubringen, aber das kann zu einigen (späteren) Problemen führen, auf welche dieser Text jedoch an dieser Stelle nicht näher eingeht.
Die neu angelegte Partition muss nicht formatiert werden. Der Rest des installationsverfahrens behandelt diese neue Partition wie eine neue Festplatte.
1.2.3 Mehrere Betriebssysteme auf mehreren Festplatten
Wenn man DragonFly-BSD auf eine eigene Festplatte installiert, entfällt natürlich der Prozess des Größenveränderns einer Partition. Und diese Vorgehensweise ist natürlich auch deutlich sicherer, wenn man ein weiteres bestehendes Betriebssystem nicht gefährden will.
Diese Art der Installation ist dann beinahe gleich zu der Art einer Installation als aleiniges Betriebssystem. Der einzige Unterschied ist die Festplattenbezeichnung bei jedem Kommandoaufruf. Daher sollte man bei jedem Kommandoaufruf wirklich ganz sicher sein und aufpassen, welche Plattenbezeichnung man verwendet.
----
[1]
www.dragonflybsd.org
chlamydia.fs.ei.tum.de
chlamydia.fs.ei.tum.de
ftp.esat.net ftp.esat.net
[2] www.livebsd.com
----
3 CD Installation - Vorbereitungen der Festplatte
1.3.1 Formatieren der Festplatte
Das Slice-Layout auf der frisch formatierten Platte oder Partition muss nun eingerichtet werden. Das geschieht mit diesem Befehl:
# fdisk -u
Wenn mehrere Betriebsysteme auf der Festplatte liegen, muss man aufpassen, dass man die richtige Partition auswählt. Hier lieber zwei Mal nachsehen und keinen falschen Schritt machen.
1.3.2 Installation des Bootblock
´ad0´ bezeichnet hier die erste Festplatte am ersten IDE-Bus des Computers. Ist die Zielfestplatte an einem anderen Kanal angeschlossen, so muss man die Nummer anpassen. Zum Beispiel, ist die Masterplatte am zweiten IDE-Kontroller angeschlossen, dann lautet die Bezeichnung ´ad2´.
# boot0cfg -B ad0
# boot0cfg -v ad0
´-s SLICE´, bei SLICE bitte die entsprechende Ziffer eigeben, kontrolliert, welcher Slice der Festplatte von boot0cfg zum Starten genutzt wird. Als Grundeinstellung ist hier 1 vorgesehen, und man muss das auch nur ändern, wenn ein anderer Slice DragonFly enthält.
Falls die DragonFly-Partition auf einem Bereich beginnt, der hinter Zylinder 1023 der Festplatte liegt, muss man ´-o packet´ als Option für bootcfg wählen. Dieses Problem tritt eigentlich nur dann auf, wenn ein anderes Betriebsystem die ersten 8 Gigabyte an Festplattenplatz auf der Platte benötigt und für sich beansprucht. Wenn DrgonFly auf einer eigenen Festplatte installiert wird trott dieses Problem selbstverständlich nicht auf.
1.3.3 Disklabel
Falls DragonFly nicht auf der ersten Partition der Festplatte installiert wird, muss der Anfangsbereich der Partition (device entry) festgelegt und bestimmt werden. Ansonsten wird dieser Anfangsbereich automatisch festgelegt.
# cd /dev; ./MAKEDEV ad0s2
Die Partition muss nun auf der DragonFly-Platte angelegt werden.
# disklabel -B -r -w ad0s1 auto
Bei der Nutzung von /etc/disklabel.ad0s1, zum Beispiel, sollte folgendes Kommando verwendet werden, um den Disklabel der eben erstellten Partition zu editieren:
# disklabel -e ad0s1
Partition Size Mountpoint
ad0s2a 256m /
ad0s2b 1024m swap
ad0s2c - - Dies stellt den gesamten Slice dar.
ad0s2d 256m /var
ad0s2e 256m /tmp !
ad0s2f 8192m /usr - Minimalempfehlung: 4096m
ad0s2g * /home - Hier lagern benutzerspezifische Daten
1.3.4 Formatierung der Partitionen
newfs formatiert jede einzelne Partition und legt ein Filesystem an:
# newfs /dev/ad0s1a
# newfs -U /dev/ad0s1d
# newfs -U /dev/ad0s1e
# newfs -U /dev/ad0s1f
# newfs -U /dev/ad0s1g
Wichtiger Hinweis:
Die Option ´-U´ wird nicht für die root-Partition benutzt, da / im Allgemeinen relativ klein gehalten wird. Bei Softupdates besteht die Gefahr, dass / überläuft durch die hohen Aktivitäten der Festplatte, so zum Beispiel bei einem "buildworld"-Lauf.
Ein weiterer wichtiger Hinweis:
Die Befehlsabfolge geht direct von ad0s1a zu ad0s1d über. Dies geschieht, da /dev/ad0s1b als Swapspace angesprochen wird und nicht formatiert werden muss; ad0s1c repräsentiert die gesamte Platte und muss/ sollte daher nicht formatiert werden.
1.4 Installation auf der Festplatte
Die Live-CD enthält alle Daten, die benötigt werden um ein lauffähiges DragonFlyBSD-System zu erhalten. Am einfachsten wäre es daher, alle Daten der liveCD auf die vorher vorbereitete Festplatte zu kopieren.
Die folgenden Befehle mounten den neu eingerichteten und vorbereiteten Festplattenplatz und richten auch die benötigten Verzeichnisse darauf ein:
# mount /dev/ad0s1a /mnt
# mkdir /mnt/var
# mkdir /mnt/tmp
# mkdir /mnt/usr
# mkdir /mnt/home
# mount /dev/ad0s1d /mnt/var
# mount /dev/ad0s1e /mnt/tmp
# mount /dev/ad0s1f /mnt/usr
# mount /dev/ad0s1g /mnt/home
´cpdup´ dupliziert nun die Daten von einem Datenträger auf den anderen (in unserem Falle eben von der CD auf die Festplatte). Jeder der Schritte kann einige Zeit in Anspruch nehmen, je nach Festplattengeschwindigkeit.
# cpdup / /mnt
# cpdup /var /mnt/var
# cpdup /etc /mnt/etc
# cpdup /dev /mnt/dev
# cpdup /usr /mnt/usr
Hinweis:
In den Bereich /tmp, der ja vorhin ebenfalls eingerichtet wurde, werden keine Daten kopiert. Dies ist kein Fehler, sondern /tmp ist nur für Daten ausgelegt, die temporär im System angelegt werden.
----
1.5 CD Installation - Post-install cleanup
/tmp and /var/tmp are both often used as temporary directories. Since use is not consistent from application to application, it is worthwhile to create /tmp as a link to /var/tmp so space is not wasted in duplication.
# chmod 1777 /mnt/tmp
# rm -fr /mnt/var/tmp
# ln -s /tmp /mnt/var/tmp
Note: /tmp will not work until the computer is rebooted.
The file /etc/fstab describes the disk partition layout. However, the version copied to the target disk only reflects the Live CD layout. The installed /mnt/fstab.example can be used as a starting point for creating a new /etc/fstab.
# vi /mnt/etc/fstab.example
# mv /mnt/etc/fstab.example /mnt/etc/fstab
A corrupted disklabel will render a disk useless. While this is thankfully very rare, having a backup of the new install's disklabel may stave off disaster at some point in the future. This is optional. (Adjust the slice name to reflect the actual installation.)
# disklabel ad0s1 > /mnt/etc/disklabel.backup
Note: Nothing is copied to the /tmp directory that was created in the previous step. This is not an error, since /tmp is intended only for temporary storage.
Remove some unnecessary files copied over from the Live CD.
# rm /mnt/boot/loader.conf
# rm /mnt/boot.catalog
# rm -r /mnt/rr_moved
The system can now be rebooted. Be sure to remove the Live CD from the CDROM drive so that the computer can boot from the newly-installed disk.
# reboot
Note: Use the reboot command so that the disk can be unmounted cleanly. Hitting the power or reset buttons, while it won't hurt the Live CD, can leave the mounted disk in a inconsistent state.
If the system refuses to boot, there are several options to try:
*
Old bootblocks can interfere with the initialization-process. To avoid this, zero-out the MBR. "of" should be changed to the correct disk entry if ad0 is not the targeted installation disk.
# dd if=/dev/zero of=/dev/ad0 bs=32 count=16
*
It is possible that the DragonFly slice is beyond cylinder 1023 on the hard disk, and can't be detected. Packet mode can fix this problem.
# boot0cfg -o packet ad0
*
If you can select CHS or LBA mode in your BIOS, try changing the mode to LBA.
After a successful boot from the newly installed hard drive, the timezone should be set. Use the command tzsetup to set the appropriate time zone.
# tzsetup
