Skip to content

Open BSD Strato Howto

Da Strato nicht in der Lage ist was anderes als Linux anzubieten ist, man gezwungen sich selbst zu helfen.
Was aber zum einen höllischen Spass macht und zum anderen, unschätzbare Erfahrungswerte sind.

Wer die Beitraege Strato Rootserver Spiele I und Strato Root Server Spiele II gelesen hat,
dem wird aufgefallen sein, das ich auf meinem ersten Rootserver das gleiche schon mal probiert habe.

Mit Open BSD und Free BSD.
Nach Informationen die mir seinerseits, jemand von Strato gesteckt hat, hat es wohl wegen einem BIOS Problem nicht funktioniert.

Also hier der neueste Versuch, auf einer AMD 64 Maschine. Da ich dies mal ganz sicher gehen wollte,
das ich nicht wieder Stunden der Vorbereitung und Arbeit umsonst investiere,bin ich dieses mal etwas anders vorgegangen.

Auf der installierten Debian Distribution habe ich das Paket dmidecode installiert.

Per dmidecode habe ich folgende Informationen zum Thema Board ausgelesen.
Download DUMP
Das verwendete Board, in meiner Ausführung ist ein Tomcat K8E (S2865)
Andere AMD Systeme bei Strato arbeiten, nach meinen Informationen mit vermutlich diesen Supermicro Boards.

Allerdings keine Gewähr von meiner Seite.

1.0 Informationen sammeln.


Bevor es daran geht Linux platt zu machen, sollten erst wichtige Informationen gesammelt werden.
Hostname
h”stratohostname”:/# hostname

h”stratohostname”cat /etc/resolv.conf

nameserver 81.xxx.xxx.xxx

nameserver 81.xxx.xxx.xxx

search serverkompetenz.netroute -n

Kernel IP Routentabelle

Ziel Router Genmask Flags Metric Ref Use Iface

8x.xxx.xxx.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

0.0.0.0 8x.xxx.xxx.xxx 0.0.0.0 UG 0 0 0 eth0
ifconfig
eth0 Protokoll:Ethernet

Hardware Adresse 00:E0:81:56:D0:F6

inet Adresse:8xx.xxx.xxx.xxx

Bcast:8x.xxx.xxx.xxx

Maske:255.255.255.255

inet6 Adresse: fe8xx::2xx:8xxx:xxx:d0xx/64 Gueltigkeitsbereich:Verbindung
All diese Eintraege auch aufschreiben.
Anmerkung, mit der Netmask scheint irgend etwas nicht zu stimmen bei der Neuinstallation über serielle Konsole

hat mein Netz ausschließlich mit 255.255.255.255 getan. Offesichtlich gibt es Unterschiede in den einzelnen Stratonetzen.

Ach ja Daten sichern nicht vergessen!!!!!!!!!!!!!!
Falls die serielle Konsole noch nicht freigeschaltet wurde, sollte das jetzt getan werden. Ohne serielle Konsole ist die Installation nicht möglich.
Anmerkung: Bei dem folgenden Schritten, gehen ALLE Daten verloren! Deshalb noch mal vergewissern das alle Daten auch gesichert sind. Fürr verlorene Daten übernehme ich keine Verantwortung!

Als nächstes ist es notwendig über das Strato Frontend in das Rettungssystem zu booten. Zu diesem Zweck wird von Strato ein Passwort für das Rettungssystem zugeteilt.

Da die Maschine im Raid 1 laeuft, bin ich von den vorhandenen Howto´s ein klein wenig abgewichen und habe den die Festplatten aus dem RAID gelöst über das Rettungssystem.

So, jetzt mittels mdadm das

Raid abgeklemmt

.

1.1 Raid abschalten.

mdadm

root@h"stratohostname":/var/log# ps -ef|grep md

root 1017 1 0 17:53 ? 00:00:00 [md1_raid1]

root 1018 1 0 17:53 ? 00:00:00 [md0_raid1]

root 1377 1328 0 18:19 ttyS0 00:00:00 grep md

root@h"stratohostname":/var/log# ps -ef|grep md

root 1017 1 0 17:53 ? 00:00:00 [md1_raid1]

root 1018 1 0 17:53 ? 00:00:00 [md0_raid1]

root 1381 1328 0 18:20 ttyS0 00:00:00 grep md

root@h"stratohostname":/var/log# mdadm --stop /dev/md1

root@h"stratohostname":/var/log# mdadm --stop /dev/md0

root@h"stratohostname":/var/log# ps -ef|grep md

root@h"stratohostname":/var/log#

haendisches löschen der vorhandenen Partitionen.

mit fdisk alle Paritionen auf hda und hdc entfernen.

puttysession

Linux 2.6.10 i686 h"stratohostname".serverkompetenz.net

LFS based rescue system

h"stratohostname".serverkompetenz.net login: root

Password:

root@h"stratohostname":~# ls

root@h"stratohostname":~# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/ram 62M 34M 29M 55% /

shm 251M 0 251M 0% /dev/shm

root@h"stratohostname":~# fdisk /dev/hda

The number of cylinders for this disk is set to 10011.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hda: 82.3 GB, 82348277760 bytes

255 heads, 63 sectors/track, 10011 cylinders

Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda1 1 7 56196 fd Linux raid autodetect

/dev/hda2 8 138 1052257+ 82 Linux swap / Solaris

/dev/hda3 139 10011 79304872+ fd Linux raid autodetect

Command (m for help): d

Partition number (1-4): 1

Command (m for help): p

Disk /dev/hda: 82.3 GB, 82348277760 bytes

255 heads, 63 sectors/track, 10011 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda2 8 138 1052257+ 82 Linux swap / Solaris

/dev/hda3 139 10011 79304872+ fd Linux raid autodetect

Command (m for help): d

Partition number (1-4): 2
Command (m for help): d

Selected partition 3
Command (m for help): 3

3: unknown command

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition’s system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)
Command (m for help): w

The partition table has been altered!

1.2 Open BSD per Floppy Disk remote installieren.

Wichtig: die im Link angegebene Bootdisk von Dettus

ist für die

Rootconsole von Strato schon vorbereitet und funktioniert.

Ich empfehle diese Bootdisk zu verwenden

wget -O- http://www.dettus.net/bootfloppy/floppy38_amd64_seriell.fs.gz | gzip -d -f >/dev/hda
wget -O- http://www.dettus.net/bootfloppy/floppy38_amd64_seriell.fs.gz | gzip -d -f >/dev/hdc

Danach gehen wir wieder in das Strato Front END und booten vom Rettungssystem in den Normal Modus.

Nach dem alles gut gegangen ist, sollte der Bildschirm auf der Seriellen Konsole in etwa so aussehen.

Wir drücken mutig I (wie Install

Die Konsole einfach bestaetigen mit Enter

yes und Enter

de + Enter auswaehlen falls man die deutsche Tastatur der us Tastaturbelegung vorzieht.

wd0 Disk Setup
um wd1 kümmern wir uns wenn das System aufgespielt wurde und das Raidframe in den Kernel einkompiliert wurde

1.3 Arbeiten mit Disklabel und fdisk

wd0 soll komplett benutzt werden, deshalbt yes eingeben und mit Enter bestaetigen

Do you want to use all of wd0 for OpenBSD? [no]yes

Da wir die komplette Platte für Open BSD benutzen wollen. yes eingeben und mit Enter bestaetigen

partitionieren über die die Grösse der Partitionen kann man sich streiten
benötigt werden folgende Partitionen im Slice, bzw es ist in meinem Fall sinnvoll:

/

/home

/usr

/var

/tmp

Initial label editor (enter `?´ for help at any prompt)
>
p
type: /dev/rwd0c
disk: ESDI
label:ExcelStor Technology J880
bytes/sector: 512
sectors/track: 128
tracks/cylinder: 8
sectors/cylinder: 1024
cylinders: 156545
total sectors: 160302464
free sectors: 160302464
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
>a
partition: [a]
Enter drücken
offset: [63]
size: [160302464] 200M
FS Type: [4.2BSD]
mount point: [none] /
Swap anlegen

>a
partition: [b]
Enter drücken
offset: [63]
size: [xxxxxxxx] 1G
FS Type: [SWAP]
mount point: [none] /

partition: [d]
Enter drücken
offset: [xxxxx]
size: [xxxxxxx] 1G
FS Type: [4.2BSD]
mount point: [none] /usr

partition: [e]
Enter drücken
offset: [xxxxxx]
size: [xxxxxxxx] Gewünschte Größe angeben
FS Type: [4.2BSD]
mount point: [none] /var

partition: [f]
Enter drücken
offset: [xxxxxx]
size: [xxxxxxxx] Gewünschte Größe angeben
FS Type: [4.2BSD]
mount point: [none] /tmp

partition: [g]
Enter drücken
offset: [xxxxxx]
size: [xxxxxxxx] Gewünschte Größe angeben
FS Type: [4.2BSD]
mount point: [none] /home

> p zeigt das eben angelegte an
>q
Write new label? :[y]
The Root File System will be mounted on wd0a
wdob will be used for swap space.
Mount point for wd0d (size=verwendete Größe, none or done? [/usr]
Mount point for wd0e (size=verwendete Größe, none or done? [/var]
Mount point for wd0f (size=verwendete Größe, none or done? [/tmp]
Mount point for wd0g (size=verwendete Größe, none or done? [/home]

Siehe auch nachfolgender Screenshot:

mit yes bestaetigen und Enter drücken
UFS wird angelegt. Das Netzwerk wird in diesem Zuge auch konfiguriert.

Vorsicht bei der Netzmaske, es scheint bei manchen Stratoboxen Unterschiede zu geben,
bei mir hat es auschliesslich mit der

Netzmaske 255.255.255.255 funktioniert
in anderen Howto´s ist oftmals von Netmask 255.255.255.0 die Rede.

Der Spass beginnt :-)

1.4 Netzwerksetup

Enter system hostname (short form, e.g `foo´):hStratohostname
Configure the nework? [y]
Enter DNS domain name (e.g. `bar.com´): [my.domain] hStratohostname.severkompetenz.net
Availaible interfaces are: bge0
bestätigen mit done und Enter
IP Adress for bge0 (or `dhcp´)? 8x.xxx.xxx.xxx
Symbolic (host) name? [Stratohostname]
ENTER
Netmask? [255.255.255.0] 255.255.255.255
ENTER
Enter IP address of default route: [none] IpadressedesStratoGateways
Enter IP address of primary nameserver: [none] Stratonameserver
Netzwerk testen Do you want to do more manual network configuration? [n]y
Type `exit´to return to install PING wwww.heise.de.h"stratohostname.serverkompetenz.net (8x.xxx.xxx.xxx): 56 data bytes
64 bytes from 8x.xxx.xxx.xxx: icmp_seq=0 ttl=255 time=0.049 ms
64 bytes from 8x.xxx.xx.xxx: icmp_seq=1 ttl=255 time=0.050 ms
--- wwww.heise.de.h"stratohostname.serverkompetenz.net ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.049/0.049/0.050/0.007 ms
exit

Da wir eine Installation über FTP durchführen, müssen wir einen Mirror auswaehlen,
am besten einen nahegelegenen Mirror auswaehlen.

Sets can be located on a (m)ounted filesystem a (c)drom, (d)isk or tape
device; or a (f)tp (n)fs or (h)ttp server.
Where are the install sets you want to use (m, c, f, etc)f
HTTP/FTP proxy URl? (e.g `http://proxy:8080´ , or `none´) [none] none

Ftp Mirror auswählen

Do you want a list of potential ftp servers [y]
y

Der Installer zeigt jetzt eine Liste potentieller ftp Server an.
Wir wählen einen Mirror aus der Nähe aus. Z.b. Erlangen, gwdg oder Esslingen.

Am Ende der Liste fragt der Installer welcher Mirror ausgewählt werden soll.
Server IP address, hostname, or list#? []Gewünschte Mirror Nummer eingeben
Using ftp://ftp.gewünschterMirror.tld/pub/OpenBSD
Does the Server support passive mode ftp? [y]
y eingeben und Enter
Sollte der Server kein Passive Mode unterstützen, ist es notwendig das Server Directory von Hand anzugeben.
Server directory? [pub/OpenBSD/3.8./amd63]pub/OpenBSD/3.8/amd64
Login? [anonymous] ENTER

Einwurf:
Für den Fall das bei der Installation irgenwas schief gegangen zu sein scheint, kann man mit STRG+C
den Vorgang abbrechen und mit der Eingabe von Install auf der Shell neu beginnen.

Gerade für den Fall das man bei der Konfiguration des Netzwerkes etwas falsch gemacht hat ist das die Option
die man nutzen sollte.

Installationsets auswählen:

The following sets are available. Enter a filename, 'all' to select
all the sets, or 'done'. You may de-select a set by prepending a '-'

mit dem Schlüsselwort all werden alle Sets ausgewählt,
aber nicht wirklich wünschenswert

Das entfernen von Installationsets funktioniert folgendermaßen:

-game38.tgz

Wir schmeissen folgende Installationssets raus, bzw lassen sie weg:

xbase, xetc, xshare, xfont und xserv
X braucht kein Mensch für einen Web Server

Das hinzufügen

man38.tgz

Abgeschlossen wird das ganze mit:

done

Folgendes muss nach dem Aufspielen des Systems unbedingt noch erledigt werden:

Folgende Einträge müssen noch vorgenommen werden für die serielle Konsole.

echo "set tty com0" >>/mnt/etc/boot.conf

echo "stty com0 57600" >>/mnt/etc/boot.conf

Ohne diese Einträge wird der Zugriff per serieller Konsole nicht funktionieren.

1.5 Update des Systems

Die Open BSD Website weisst ausdrücklich darauf hin, das ein SourceUpdate zwar möglich
aber nicht empfohlen ist! Leider haben wir in dieser Situation keine Alternative.

Für ein Source Update bitte noch die folgenden Seiten des Open BSD Projektes einsehen:
Upgrade

System aus dem Quelltext erzeugen.

und die Vorgehensweise genau befolgen.

1.5.1 Bezug der benötigten Quellen:

Ich habe für das Update von OpenBSD 3.8 amd64 die benötigten Quellen: src.tar.gz sys.tar.gz per ftp bezogen
und im Verzeichnis meines Users abgelegt. pwd
/home/username
ftp ftp://ftp.openbsd.org/pub/OpenBSD/3.9
ftp>get sys.tar.gz
ftp>get src.tar.gz
ftp>ports.tar.gz

export RELEASEPATH=/home/username cd ${RELEASEPATH}
rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
cp bsd.rd bsd.mp /
tar xzpf ${RELEASEPATH}/base39.tgz "*etc/firmware/*"
Mit neuem Kernel booten reboot
export RELEASEPATH=/home/username cd / tar xzpf ${RELEASEPATH}/base39.tgz
tar xzpf ${RELEASEPATH}/comp39.tgz
tar xzpf ${RELEASEPATH}/game39.tgz
tar xzpf ${RELEASEPATH}/man39.tgz
tar xzpf ${RELEASEPATH}/misc39.tgz

1.5.2 Userland erneuern.

cd /dev
./MAKEDEV all

1.5.3 /etc/ updaten

cd /tmp
tar xzpf ${RELEASEPATH}/etc39.tgz
cd /tmp/etc
cp daily ipsec.conf magic monthly netstart rc security services weekly /etc
cp mtree/* /etc/mtree/

http://www.openbsd.org/faq/upgrade39.patch
cd /
patch -C -p0 < upgrade39.patch

1.5.4 aufräumen

rm /usr/lib/libresolv*

1.5.4 Pfade erneuern

mtree -qdef /etc/mtree/4.4BSD.dist -p / -u

1.6 Raidframe einrichten.

WICHTIG!!

fdisk -i wd1

disklabel -E wd1

—————————————————–
—— ATTENTION - UPDATING MASTER BOOT RECORD ——
—————————————————–

1.6.1Kernel bauen

Do you wish to write new MBR and partition table? [n] y
wd1: no disk label

cd /usr/src
tar xzpf /mnt/src.tar.gz
cd sys/arch/amd64/conf

touch GENERIC.RAID

vi GENERIC.RAID
include "arch/amd64/conf/GENERIC"
#include "arch/i386/conf/GENERIC
option RAID_AUTOCONFIG # Automatically configure RAID at boot

pseudo-device raid 4 # RAIDframe disk driver

#config GENERIC.RAID
cd ../compile/GENERIC.RAID
make depend && make
mv /bsd /bsd.backup
cp bsd /bsd
chmod 644 /bsd

1.6.2Reboot mit neuem Raid enabled Kernel

Sollte es ncht auf Anbieb funktionieren, am Bootprompt boot> boot wd0a:/bsd.backup
eingeben
wd1 bootable setzen.

# newfs /dev/rwd1a

Kernel kopieren: mount /dev/wd1a /mnt
cp /bsd /mnt/bsd
cp /usr/mdec/boot /mnt/boot
/usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot wd1

1.6.3Raidconfig anlegen

touch /etc/raid0.conf
vi /etc/raid0.conf
---Begin---
START array
# rows (must be 1), columns, spare disks
1 2 0

START disks
/dev/wd2d
/dev/wd1d
START layout
# sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level
128 1 1 1
START queue
# queue mode, outstanding request count
fifo 100

Anmerkung:
Die nicht existierende wd2 existiert als Platzhalter.
Wenn das Raid angelegt ist wird es als Failed angezeigt werden.
Wenn alle weiteren Arbeiten abgschlossen sind. werden wir wd0 als hot-spare hinzufügen und den Rebuild der Mirrors starten.

raidctl -C /etc/raid0.conf raid0
raidctl -I 20060800 raid0

wir greifen noch ein mal zu Disklabel
disklabel -E raid0 newfs /dev/raid0a
newfs /dev/raid0d
newfs /dev/raid0e
newfs /dev/raid0f
newfs /dev/raid0g
raidctl -A root raid0

Jetzt kopieren wir wd0 auf wd1

mount /dev/raid0a /mnt
mount /dev/raid0a /mnt
(cd /; tar -Xcpf - .) | (cd /mnt; tar -xpf -)
umount /mnt

mount /dev/raid0d /mnt
(cd /usr; tar -cpf - .) | (cd /mnt; tar -xpf -)
umount /mnt

mount /dev/raid0f /mnt (cd /tmp; tar -cpf - .) | (cd /mnt; tar -xpf -)
umount /mnt
mount /dev/raid0g /mnt
(cd /home; tar -cpf - .) | (cd /mnt; tar -xpf -)
umount /mnt
fstab updaten:
mount /dev/raid0a /mnt
sed 's/wd0/raid0/g' /mnt/etc/fstab > /mnt/etc/fstab.tmp
mv /mnt/etc/fstab.tmp /mnt/etc/fstab
umount /mnt
reboot

boot> boot wd1a:/bsd
Letzter Schritt:
disklabel wd1 >disklabel.wd1
disklabel -R wd0 disklabel.wd1

Es ist nicht notwendig ein disklabel in die Raid Partition zu schreiben.
Um das Raid zu rebuilden, packen wir wd0 als neue Spare hinzu.
Wen der Reconstructionsvorgang durchgelaufen ist, wird das Parity neu gesetzt.

Anmerkung: Reconstruction und Parity rewrite dauert je nach Plattengröße schon eine Weile, Ja nicht auf die blöde Idee kommen und booten, sonst ist alles weg und man kann von vorne beginnen.

raidctl -a /dev/wd0d raid0
raidctl -vF component0 raid0
raidctl -vP raid0

Eines ist noch übrig, die Raid Configuration muss upgedatet werden wd2 muss ersetzt werden durch wd0
mount /dev/raid0a /mnt
sed 's/wd2/wd0/g' /mnt/etc/raid0.conf > /mnt/etc/raid0.conf.tmp
mv /mnt/etc/raid0.conf.tmp /mnt/etc/raid0.conf
umount /mnt

Reboot, und RAID status checken:

reboot

Nach dem Reboot

raidctl -s raid0
raid0 Components:
/dev/wd0d: optimal
/dev/wd1d: optimal
No spares.
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

Quellen:

Weblinks

hier gibts die Bootfloppy´s

http://dettus.net

http://www.pdl.cmu.edu/RAIDframe/
OpenBSD Upgrade
Open BSD aus dem Quelltext erzeugen
http://www.openbsd.org/cgi-bin/man.cgi?query=raidctl&sektion=8
http://www.openbsd.org/cgi-bin/man.cgi?query=raid&sektion=4

Literatur

Absolute OpenBSD by Michael Lucas ISBN 1-886411-99-9

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Andreas am :

*Hi! Ich habe unter anderem einen kleinen PowerServer bei Strato und einen RootServer (L64) bei 1&amp;1 stehen und jetzt auch mit OpenBSD am Rennen (der Server bei 1&amp;1 auch mit RaidFrame -- danke f&Atilde;&frac14;r das Tutorial hier!). Leider habe ich bei beiden, Strato und 1&amp;1, beim Booten keine Ausgabe des Bootloaders auf der seriellen Console. In der Datei /etc/boot.conf habe ich die entsprechenden Eintr&Atilde;&curren;ge (set tty com0 und stty com0 57600) drin aber die Consolenausgabe beginnt erst mit dem Start des Kernels. Das ganze ist nat&Atilde;&frac14;rlich ein bi&Atilde;

Solarix am :

*Morgen Andreas, Das problem kenn ich jetzt nicht d.h. wenn ich reboote... kommt boot: und dort kann ich den entsprechenden Kernel angeben, wenn ich was anderes als den Raidkernel w&Atilde;&frac14;nsche. Ich habe allerdings keine Ahnung, wie die serielle Konsole bei 1und1 respektive Schlund eingestellt ist.

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
BBCode-Formatierung erlaubt
Pavatar, Gravatar, Favatar, MyBlogLog Autoren-Bilder werden unterstützt.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen