OpenBSD bei Strato (Stand: 01. Oktober 2004)


Bicycle User
*** OpenBSD 3.5@ Strato Howto
*** (C)opyleft 2004 by Dettus
*** as of October 1st, 2004

0.) Disclaimer
Okay, here is a little howto to install OpenBSD Unix on a Strato root-server.
If you are impatient, you won't need more than a piece of paper, and a ssh
If you got time, you will also need a local installation of OpenBSD to make
a bootable installation floppy.

1.) Serial console
First of all, get an account. Strato has the nice feature of a remote serial
console, which actually CRIES out for installing a new Operating System.
You have to activate it through the web-frontend. Do it, and read the
instructions how to access your server.

2.) Write down network information
Boot your server into default mode. It is important that you write down all your
network information, because somehow the dhcp support failed. DON'T LOOSE IT!
We will destroy your system a little later.
Make sure you have:
ipadress, broadcast, netmask -> run "ifconfig"
hostname -> run "hostname"
nameserver, dommainname -> run "cat /etc/resolv.conf"
defaultrouter -> run "route -n"
serial port speed -> run "cat /etc/lilo.conf"

Got everything? Great! Check it again... ;-) And watch out that your serial
speed is 57600 if you want to use my bootfloppy!

3.) Backing up
If you want to play it save, I recommend that you backup the first bytes of
/dev/hda, jsut in case you chicken out, or something goes wrong with the floppy

% dd if=/dev/hda of=harddiskbootimage.img bs=1k count=1440

Copy this image via scp to a save location.

4.) Booting OpenBSD
Now it is time to boot up the rescue system. Use the web-frontend to get it.
It may take a few minutes until you can type in "reboot" to fire it up. Anyhow,
after it is done, you can write the image of an installation floppy directly to
the harddisk. FOR THE IMPATIENT ONES: Use my floppyimage. ALL THE OTHERS: I will
tell you later how to build up your own.

If you want to use my image, you can type in:
% wget -O- | gzip -d -f >/dev/hda
(Its MD5sum is: 1cde7d54182efdfd2fdcfd9b5905ba28)

All your other stuff will be lost on your harddrive. But who needs it anyway? ;)
(If anything goes wrong, you can still replace the first bytes by the backup you

Boot your computer in normal mode now, and it will show you the familiar OpenBSD
bootprompt. While the kernel boots, you will see a lot of broken characters,
but don't worry, it will drop you off at the famous "(U)pgrade, (I)nstall or
(S)hell" prompt.

5.) Testing the network
First of all, use the shell to setup all the network information you have
written down. In my case, the netmask was brainfucked ( so I
ran into some trouble when I tried to setup up the default route. Don't worry
about this, just set it to the, and everything works out
Leave the shell and choose "(I)nstall".

6.) Installing
Installing OpenBSD is straightforward, I recommend using the whole harddisk for
it. Read for more information, if you like. Use the
network information you have written down (and verified *g*) and choose (f)tp
as installation medium.
Choose whatever package you like, and install it over the net. (This costs
traffic, you know?) And wait. And choose your Timezone.

7.) Setting up OpenBSD for a serial console
After you have installed everything, and the devices are set up, change to
/mnt/etc and create a file called "boot.conf":
% echo "set tty com0" >>/mnt/etc/boot.conf
% echo "stty com0 57600" >>/mnt/etc/boot.conf
This will boot up and all the standard output will pe written to the serial
console. The next part is a bit tricky: You have to activate the serial console
for a login. And you will have to use "ed" for that.
% ed /mnt/etc/ttys
Type in numbers to jump through all the lines in the file. Type "1" and press
Enter to go to the first, type "2" to go to the second and so on. Line "19"
contained the following entry at my installation:
tty00 "/usr/libexec/getty std.9600" unknown off
You have to change this. Use the "c" command for that, and type in
tty00 "/usr/libexec/getty std.57600" vt220 on secure
Press Enter and CTRL-D to exit the change mode. Then use "w" to write the file
and "q" to get the hell out of this editor. Other ed commands are "." to show
the contents of the actual line, and "d" to delete a line. Well, better then
Use "cat /mnt/etc/ttys" to check if the file is broken. If not... hooray!

8.) Rebooting your system
After all this trouble you have bin through, you are finally able to reboot your
freshly handcrafted OpenBSD-Box. Just type in "reboot", and you'll be set.
Have fun!


APPENDIX A: Setting up your own bootfloppy
As I told you before here are some tips for making your own bootfloppy: Some of
them are quite hazardous, and could be done in a much more proper way. Anyhow,
this is how I did it:

A1.) Get src.tar.gz and sys.tar.gz
You need a running installation of OpenBSD at home for this. Get both the
src.tar.gz and sys.tar.gz packages for this. Install them to /usr/src and

A2.) Configuring the Kernel
Go to /usr/src/sry/arch/i386/conf and copy the RAMDISK config to RAMDISK.orig.
Edit RAMDISK after that (I know, I know...). Comment out the following devices:
pckbc0, pckbd* wskbd*, vga0, vga*, pcdisplay0, wsdisplay*, wsdisplay*. That way
you make sure that booting the floppy will print out as much as possible on the
serial console.

A3.) Compiling Crunch
Crunch is a tool needed for the creation of the bootdisks. Go to the directory
/usr/src/distrib/crunch and run
% make ; make install

A4.) Editing the miniroot partition.
Go to /usr/src/distrib/miniroot, and create a file called "boot.conf" with the
following entries:
set tty com0
stty com0 57600
(The number "57600" is the baudrate of the serial console, it should match the
value that you have written down from /etc/lilo.conf on your rootserver!)
Make sure that boot.conf gets onto your disk: Edit the file located in the
/usr/src/distrib/i386 directory, called "common". Find the line with "protocols"
and duplicate it. After that replace "protocols" with "boot.conf" in one of

A5.) Compilation
Now it is time to build the bootfloppy: Go to "/usr/src/distrib/i386/ramdiskA"
and type in "make". When everything works smoothely, you'll have a file called
"floppy35.fs" at your hands. If it complains about some missing ".c"-files, it
could be because those files are located somewhere beneath "/usr/src/sys" in the
kernel sources. Find them and copy them to where the compilation failed. Re-run
When it's done, move the "floppy35.fs" file to "floppy35_serial.fs" or something
so that you won't be confused.

A6.) Mount your floppy
Mount your bootfloppy. Type in
% vnconfig svnd0 floppy35_serial.fs
% mount /dev/svnd0a /mnt
and copy /usr/src/distrib/miniroot/boot.conf to /mnt/etc/boot.conf
% mkdir /mnt/etc
% cp /usr/src/distrib/miniroot/boot.conf
and unmount the imagefile
% umount /mnt
% vnconfig -u svnd0

And your bootfloppy is ready!!! Write it onto the harddrive in your rootserver
like I mentioned before.

Have fun with your OpenBSD at Strato!

A7.) If you keep getting a "fxp0: device timeout" and you are not able to get
your network running, try compiling the kernel with "PCIBIOS_INTR_FIXUP_FORCE".
(Thank you Markus and Marcus for that hint)

(Get the newest version at )
... /me wundert sich warum das kühle WIEZU für das Aufbringen von OpenBSD auf einem entfernten Rechner bei Strato(einer deutschen Firma in Chalottenburg) in einem deutschen Forum in dieser (seit dem Irak-Krieg) komischen Sprache eingeschrieben wird. :ugly:
weil meine deutschkenntnisse manchmal einfach nicht ausreichend genug waren um sachverhalte zu erklaeren ;-D
@Sheep (Schaf? Wie undeutsch...)
Deutsches Forum, deutsche Sprache,deutscher Server...Was hat das mit OpenBSD zu tun?!
Du bist aber nicht konsequent Deutsch.
Sheep benutzt OS aus U.S.A bzw. Canada...
Sheep's Popidol ist der russische Revoluzer Lenin...
Sheep's Motto ist in Latein...
Wie sieht u.a. fxp0 bei Deinem Server aus?
Welcher Server ist das? Könntest Du auch Dein dmesg verlinken, damit mensch u.U. vorher kompilieren kann?
rechnertechnisch habe ich den billigsten rootserver fuer 39 euro pro monat genommen.

fxp0 gab bei mir ueberhaupt keine probleme, deswegen ist A7 voellig ohne gewaehr.

dmesg gebe ich dir natuerlich auch gerne:
OpenBSD 3.5 (GENERIC) #34: Mon Mar 29 12:24:55 MST 2004
cpu0: Intel(R) Celeron(R) CPU 2.40GHz ("GenuineIntel" 686-class) 2.40 GHz
real mem  = 402173952 (392748K)
avail mem = 366338048 (357752K)
using 4278 buffers containing 20209664 bytes (19736K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(d0) BIOS, date 02/03/04, BIOS32 rev. 0 @ 0xfb330
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
pcibios0 at bios0: rev. 2.1 @ 0xf0000/0xdf84
pcibios0: PCI IRQ Routing Table rev. 1.0 @ 0xfde90/240 (13 entries)
pcibios0: PCI Exclusive IRQs: 5 9 10 11 12
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371SB ISA" rev 0x00)
pcibios0: PCI bus #2 is the last bus
bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1000 0xc9000/0x1000
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82845 Host" rev 0x04
ppb0 at pci0 dev 1 function 0 "Intel 82845 AGP" rev 0x04
pci1 at ppb0 bus 1
ppb1 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0x05
pci2 at ppb1 bus 2
fxp0 at pci2 dev 6 function 0 "Intel 82557" rev 0x08: irq 11, address 00:30:48:53:20:b6
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
fxp1 at pci2 dev 7 function 0 "Intel 82557" rev 0x08: irq 10, address 00:30:48:53:20:b7
inphy1 at fxp1 phy 1: i82555 10/100 media interface, rev. 4
vga1 at pci2 dev 8 function 0 "ATI Rage XL" rev 0x27
wsdisplay0 at vga1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcib0 at pci0 dev 31 function 0 "Intel 82801BA LPC" rev 0x05
pciide0 at pci0 dev 31 function 1 "Intel 82801BA IDE" rev 0x05: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <ExcelStor Technology J360>
wd0: 16-sector PIO, LBA48, 58644MB, 120103200 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
pciide0: channel 1 disabled (no drives)
"Intel 82801BA SMBus" rev 0x05 at pci0 dev 31 function 3 not configured
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
sysbeep0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
lm0 at isa0 port 0x290/8: W83627HF
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom0: console
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
biomask 4000 netmask 4c00 ttymask 4c82
pctr: user-level cycle counter enabled
dkcsum: wd0 matched BIOS disk 80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302
Nihil ich habe absolut nicht den Anspruch das alles deutsch ist oder sein soll... was auch immer.

Bei meinem Eintrag ging es darum, daß das WIEZU wohl zu 95% oder mehr für die jenigen interessant sein dürfte, die bei Strato Kunde sind und den Rechner dort mit OpenBSD befruchten wollen. Meiner Einschätzung nach sind das wohl eher deutschprachige Leute (kann mich auch irren)... Da stellt(e) sich mir einfach die Frage wieso es nicht in deutsch geschrieben ist. -- Was ja nun geklärt ist weswegen. =)
fast vergessen... sagt bitte bescheid, wenn ihr das howto benutzt habt, um euren server aufzuziehen... mal gucken wie die hinterher aussehen ;-)
dettus schrieb:
weil meine deutschkenntnisse manchmal einfach nicht ausreichend genug waren um sachverhalte zu erklaeren ;-D

ich denke alle unixer (admins u. geeks+) sind des englischen mächtig. "... if not it should be"

ich finde es extrem schade, dass es projekte gibt, die nicht in englisch geschrieben sind. es gibt da mehrere wirklich gute oss-projekte aus frankreich (nein, ich meine nicht mdk :rolleyes: ) mit denen ich leider nicht zusammenarbeiten kann, da die kein englisch sprechen können (wollen) und ich kein französich (male, hetero).

schade eigentlich. deswegen dokumentiere ich meine progs immer in de und en.

gruss, sysdef.

p.s.: tnx für die doku. hatte vorgestern bei strato bestellt ;)

... er ist da. und ich muss ihn eh neu installieren. wer richtet denn bitte so nen server ein?:

debian-sarge:~# df -h
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/hda3              56G  563M   55G   1% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hda1              54M  7,9M   45M  15% /boot
debian-sarge:~# mount
/dev/hda3 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/hda1 on /boot type ext3 (rw)
in der os-auswahl zum reinstall steht: "Debian 3.0 für Profis". nicht mal ne extra /var oder /tmp partition ....
ich verleihe hiermit meinen ersten hut an die strato ag :huth: für die 55GB rootpartition.

gruss, sysdef.
Zuletzt bearbeitet:
dettus schrieb:
fast vergessen... sagt bitte bescheid, wenn ihr das howto benutzt habt, um euren server aufzuziehen... mal gucken wie die hinterher aussehen ;-)


Ausserdem moechte ich nochmals darauf hinweisen, dass Deine Anmerkungen bzgl. der Netmask falsch sind. Ich hatte das neulich auch schon mal irgendwo im Heise-Forum erwaehnt und Dich per Mail angetriggert, aber Du hast Dich leider nicht gemeldet.

Strato-konformes Setup:

  • Die Netmask 0xffffffff ist tatsaechlich erforderlich, um benachbarte Rechner nicht auszusperren.
  • Um den Router erreichen zu koennen, wirft man am besten explizit eine Route zum Router mit einem Link-level Gateway.

Fuer meinen Fall (Host:, Router: sieht das dann in /etc/hostname.fxp0 so aus:

inet 0xffffffff
!route add -link \$if: -interface

Zusaetzlich habe ich natuerlich den Router noch in /etc/mygate angegeben.

ifconfig fxp0:
        address: 00:30:48:53:3f:8e
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet netmask 0xffffffff broadcast
        inet6 fe80::230:48ff:fe53:3f8e%fxp0 prefixlen 64 scopeid 0x1

netstat -rnfinet:
Routing tables

Destination        Gateway            Flags     Refs     Use    Mtu  Interface
default         UGS        16      941      -   fxp0       0:0:c:7:ac:7       UHLS        1        0      -   fxp0          UGHS        0        8  33224   lo0 =>     link#1             UC          0        0      -   fxp0
127/8              UGRS        0        0  33224   lo0          UH          2        8  33224   lo0
224/4              URS         0        0  33224   lo0

Die Informationen dazu habe ich BTW in diesem Thread gefunden:

Also: /32-Netmask, link-level gateway zum Router, dann klappt's auch mit dem Nachbarn.

Zuletzt bearbeitet:
So, nach langer Zeit habe ich es endlich mal geschafft, auch ein erstes primitives Backup-Script zusammenzuschrauben, mit dem man direkt auf den von Strato zur Verfuegung gestellten FTP-Space dumpen kann:

# cat ftpdump

tstamp=$(date +%F)
ftp_user=#fill in Strato ftp backup account here

/usr/bin/ftp -n <<-EOF
        user $ftp_user
        put "|dump -${level} -u -a -f - /dev/${dev}" ${tstamp}.${level}.${dev}

Ist noch nicht ganz druckreif, aber nachdem ich heute erst um 7:00 Uhr zu Hause war, koennt Ihr von mir wirklich keine geistigen Ueberflieger erwarten :)

Wer sich sicher ist, dass sein Rechner wirklich gut abgesichert ist, kann auch noch das Passwort mit ins Script schreiben; ich bevorzuge hier die interaktive Loesung, d.h. ich gehe auf die remote-console, werfe den Single-User-Mode an (shutdown now), werfe das Script fuer jedes Filesystem an und tippe das Passwort per Hand ein.

BTW: da dump(8) mit rw-Dateisystemen moeglicherweise Muell produziert, empfiehlt es sich, zum einen mit /altroot (also einem taeglichen Backup-Image von /) zu arbeiten, zum anderen alle Dateisystem zu unmounten und /usr ro zu mounten (weil ftp in /usr/bin liegt). Nach dem dump(8) bzw. ftpdump sollte man dann alles wieder so mounten, wie ueblich (umount /usr && mount -a -t ffs).

Ausserdem ist mir aufgefallen, dass die Netzwerkeinstellungen nach einem shutdown now und anschliessendem exit im Eimer sind. Falls ausser Dettus und mir noch jemand einen Strato-Server mit OpenBSD hat: bitte mal nachforschen. Ich bin wie gesagt im Moment etwas zu muede.

While the kernel boots, you will see a lot of broken characters,
but don't worry, it will drop you off at the famous "(U)pgrade, (I)nstall or
(S)hell" prompt.
;-) aber egal.... guck dir nochmal die neuste version von dem howto an! ich habs mittlerweile etwas revidiert. oh! und sag bitte bescheid, wanns laeuft.
Ich kann schon lesen, aber bei mir kommt einfach NIX. Jetzt spinnt auch noch das Frontend bei Strato, ich mag jetzt nicht mehr.

bis später

hast du
wget -O- | gzip -d -f >/dev/hda
wget -O- | gzip -d -f >/dev/hda1
gemacht? (letzters waere falsch...)

und ich hab probeweise auch nochmal eine floppy36_seriell.fs.gz fertig gemacht. probier die mal!
Zuletzt bearbeitet:
Hi dettus,

ich habe schon alles versucht, dein 3.5er, dein 3.6er und ein selbst erstelltes 3.6er Image. Es passiert einfach nix:( Hab natürlich hda verwendet.

Ich geh jetzt heulen.

So, jetzt habe ich es mit dem Laptop probiert und es läuft problemlos. Die Leute von Strato wird mein Problem wenig interessieren.


ich habe dasselbe Problem.
Sowohl mit einem selbstgebauten als auch mit der floppy35_serial.fs scheint der Rechner nicht zu booten. Die serielle Konsole zeigt nichts an. Boote ich ein Linux erscheinen hier alle Angaben. Hat jemand dieses Problem auf den aktuellen Strato-Servern bereits lösen können?
Scheinbar bootet die Maschine gar nicht mit dem Floppy-Image.

Irgendeine Idee?



das cdimage ausprobieren. und wenn das auch nicht hilft: einfach mal ein minimalstopenbsd in einer vmware installieren, und das festplattenimage auf das system von denen packen.

dazu guckst du dir an, wie die festplatte von dem strato-linux aufgebaut ist, und guckst nach, wo die swappartition liegt. zuhause baust du die festplattengeometrie in vmware 1:1 nach, und installierst das mini-openbsd in die rein, auf das andere kloppst du ein anderes betriebssystem, welches in der lage ist, das festplattenimage per netcat aus der vmware rauszukopieren.
das dd-st du dann (irgendwie) auf die swappartition von der strato-maschine (das swap off nicht vergessen, und aus der /etc/fstab die swappartition rausnehmen) und fast fertig.

anschliessend noch den lilo anpassen und booten.
openbsd 3.6-current läuft ohne probleme auf meinem strato rechner... wenn man sich an die anleitung hält sollte alles gut laufen.

ps: danke dettus;-)

tschüß, sizo
lange zeit nicht auf mein strato-howto aufmerksam gemacht ;-)

folgendes: ich bin gerade dabei das problem anzugehen, dass einige kisten partout die serielle konsole nicht darstellen wollen. und zwar in form eines autoinstallers.

sollte IRGENDWER von euch versuchen wollen openbsd auf seinen server zu ziehen, meldet euch bitte bei mir per persoenlicher nachricht, es gibt da ein- bis zwei bootdisks, die ich gerne mal feldtesten wuerde.

ich verspreche auch, dass ich erstmal nicht mehr als 1.44mb auf der platte kaputtmache ;-)
Zuletzt bearbeitet:
ich habe einen nackigen Server bei Strato auf dem Du Dich mal richtig gehen lassen kannst.

Plone 2.1 muss drauf und so eine Art Confixx oder CPanel für zwei Kunden.
Aber erst im November.

Wenn Du das hinbekommst,
gibts auch einen Schoko-Nikolaus für dich auf meiner Webseite ;-)
sodele nach langem hin und her hier meine lösung für obsd 3.9 auf strato mr2


- den mbr vom strato geklaut
- mit dd ein image von wenigen mb erstellt
- cat *mbr* *image* > *neuesimage*
- snapshot von 3.9 heruntergeladen (nur bsd.rd)
- mit qemu die iso gemaountet und ins image installiert
- wichtig: ohne snapshot werden die platten des mr2 nicht erkannt
- netmask im gegensatz zu den anderen hier genannten lösungen im forum
- den rest übernehmt ihr aus installierten linux
- wenn die installation fertig ist:
mkdir /mnt/etc
echo "set tty com0" > /mnt/etc/boot.conf
echo "stty com0 57600" >> /mnt/etc/boot.conf
qemu beenden
- im rescue modus die 2te platte formatiert, image hochgeladen und mit dd draufgebügelt


das is hier nur so hoppla die hopp beschrieben, ich schreibs ins wiki wenn ich zeit hab

danke an sbeh und natürlich dettus!
d4mi4n schrieb:
- netmask im gegensatz zu den anderen hier genannten lösungen im forum

Frage: war das jetzt nur aus Faulheit, oder hat alles andere nicht funktioniert?

- den rest übernehmt ihr aus installierten linux

DHCP? Laeuft das inzwischen? Weder Dettus noch ich haben das mit den alten Strato-Blechen vernuenftig hinbekommen, IIRC. Andererseits braucht man es auch nicht wirklich.