FBSD7amd64 bei Server4You
Nachdem ich im letzten Artikel beschrieben habe, wie man den Depenguinator auf einem S4Y-Server einsetzt, fehlt nun nur noch die eigentliche FreeBSD-Installation.
Nachdem man das System depenguiniert hat, kann man sich mit ssh wieder auf die Kiste verbinden. Hierzu brauchen wir wieder das Keyfile, dass wir in der vorherigen Anleitung angelegt haben.
ssh -i id_rsa root@SERVER
Slicen, partitionieren und formatieren
Nachdem wir nun eingeloggt sind, steht uns ein FreeBSD7 zur Verfuegung, dass aus einer RAM-Disk laeuft. Man kann also gefahrlos die Platte bearbeiten. Zunaechst erstellt man auf der Festplatte einen grossen Slice, der die gesamte Festplatte benutzt:
fdisk -I /dev/ad4
Nun sollte man das Device ad4s1 erhalten haben. Dort drin erstellen wir die Grundkonfiguration mittels:
bsdlabel -w /dev/ad4s1
Dies erzeugt eine Partition in dem Slice, welche den gesamten Slice ausfuellt. Da dies aber nicht so ganz Sinn und Zweck meiner Veranstaltung ist, aendere ich das. Da mir aber vi als Editor immer nicht gefaellt, benutze ich ee:
setenv EDITOR ee
Das eigentliche Editieren des Labels passiert mit:
bsdlabel -e /dev/ad4s1
Eigentlich reicht eine Partition mit 4Gbyte Groesse fuer Grundsystem und Kernel. Nur fuer /usr sollte man entsprechend mehr nehmen – die Partitionierung sollte sich aber dennoch jeder selber ueberlegen. Da ich ein FreeBSD7amd64 verwende und auch ZFS (das kommt dann auf ad4s1d), sieht mein label wie folgt aus:
# /dev/ad4s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 8388608 16 4.2BSD 0 0 0
b: 8388608 8388624 swap
c: 312581745 0 unused 0 0 # “raw” part, don’t edit
d: 295804513 16777232 unused 0 0
Nachdem dies nun erledigt ist, kann man mit
newfs /dev/ad4s1a
das Dateisystem erzeugen.
Grundsystem und Kernel installieren
Leider funktioniert sysinstall nicht so recht, daher eine manuelle Installation. Zunaechst sollte man die zuvor erstellen Partitionen mounten:
mount /dev/ad4s1a /mnt
Ein Verzeichniswechsel hat auch Vorteile, also noch schnell ein cd /mnt. Um das FBSD zu installieren, braucht man erstmal die Installationspakete. Diese gibt es z.B. unter:
ftp://ftp3.de.freebsd.org/pub/FreeBSD/releases/amd64/7.0-RELEASE/
Zur Installation reichen die Ordner base und kernels. Ich habe diese zuvor auf meinen Rechner geladen und dann mit scp auf den depenguinierten Server geladen. Eine Moeglichkeit ist also z. B. auf dem S4Y-Server ein scp auszufuehren:
scp -r lando@Heimrechner:~lando/FBSD7amd64/ .
Dann hat man einen Ordner FBSD7amd64, der auf /mnt liegt. Als Unterordner sollten dort base und kernels enthalten sein. Um das Grundsystem zu installieren, brauchen wir aber noch etwas mehr als nur die Installationdateien. Damit das Script weiss, wo es den Kram hininstallieren soll, muessen wir noch eine Umgebungsvariable setzen:
setenv DESTDIR /mnt
Das Grundsystem installiert man jetzt mit:
cd /mnt/FBSD7amd64/base/ && sh install.sh
Die dabei kommende Nachfrage beantwortet man mit y. Als naechstes die Kernelinstallation:
cd /mnt/FBSD7amd64/kernels/ && sh install.sh GENERIC
Hierbei sollte fuer gewoehnlich keine Nachfrage kommen, sondern einfach die Installation durchlaufen.
Konfiguration des neuen Systems
Die Installation ist mitlerweile geschafft, nun muss nur noch ein bisschen Hand an die Konfiguration gelegt werden. Diese besteht daraus: rc.conf, fstab, resolv.conf, loader.conf und sshd_config editieren.
rc.conf (/mnt/etc/rc.conf)
In der rc.conf sollten einige Werte eingetragen werden. Wichtig ist hier die Netzwerkkonfiguration und das ssh starten. Meine rc.conf sieht dann so aus:
hostname=”fulda109.server4you.de”
defaultrouter=”62.75.219.1″
ifconfig_rl0=”inet 62.75.219.90 netmask 255.255.255.0 broadcast 62.75.219.255″
sshd_enable=”YES”
Hierbei ist darauf zu achten, dass man die richtige Netzwerkkonfiguration und vor allem das richtige Device nimmt. Das richtige Device bekommt man am einfachsten heraus, indem man ein ifconfig aufruft.
fstab (/mnt/etc/fstab)
Meine fstab enthaelt folgende Eintraege:
/dev/ad4s1a / ufs rw 1 1
Den swap werde ich erst spaeter dazu frickeln.
resolv.conf (/mnt/etc/resolv.conf)
In die resolv.conf traegt man den Nameserver seines Providers ein. Diesen entnimmt man am einfachsten aus /etc/resolv.conf und traegt ihn dann in /mnt/etc/resolv.conf ein. In meinem Fall also:
nameserver 85.25.128.10
sshd_config (/mnt/etc/ssh/sshd_config)
Damit ich mich auf dem spaeter neustartenden Server wieder einloggen kann, erlaube ich einfach den root-Login und den Login OHNE Passwort – ACHTUNG! DAS IST GEFAEHRLICH!. Dies muss man spaeter wieder zurueckaendern um eine minimale Systemsicherheit zu gewaehrleisten. Man muss also in /mnt/etc/ssh/sshd_config folgende Zeilen finden:
#PermitRootLogin no
#PermitEmptyPasswords no
Diese aendert man auf:
PermitRootLogin yes
PermitEmptyPasswords yes
Nun sollte ein Login mit einem leeren Passwort moeglich sein.
loader.conf (/mnt/boot/loader.conf)
Da wir einen GENERIC Kernel installiert haben und dieser nicht einfach in /boot/kernel liegt, muessen wir dem System sagen, wo der Ordner ist, aus dem er den Kernel holen soll. Dies editiert man in /mnt/boot/loader.conf:
kernel=”GENERIC”
System bootbar machen
Die Installation ist fertig, die Grundkonfiguration auch. Nun fehlt nur noch, dass das System bootbar wird. Fuer diesen Schritt habe ich am laengsten gebraucht, bis ich eine funktionierende Loesung zusammen gefrickelt hatte – ohne serielle Konsole beim Provider ist das ganze auch garnicht so einfach. Mit folgenden Befehlen schreibt man nun den Bootloader und Bootmanager:
fdisk -B -b /mnt/boot/boot0 /dev/ad4
Die Fragen, die fdisk hier stellt, beantwortet man beide mit y. Der zweite Befehl fehlt nun noch:
bsdlabel -B /dev/ad4s1
Rebooten und hoffen. Viel Spass beim nachbasteln.
Hi,
soweit so gut, aber ich habe ein kleines Problem. Wenn ich mich, nachdem das System rebootet wurde versuche einzuloggen, fragt mich der/das SSHd trotzdem nach einem Passwort. Obwohl ich mir sicher bin, daß ich PermitRootLogin und PermitEmtyPasswords auf yes gestellt habe.
Hast du eine Idee was da alsch sein könnte?
Liebe Grüße aus Süddeutschland,
Christian
ansonsten probiere es einfach mal, indem du das vorher verwendete keyfile wieder in der ~root/.ssh/authorized_keys hinterlegst. das koennte eventuell auch gehen.
Hi,
Vielen Dank für deine Anleitung, habe grade den Express Server von Leaseweb von Cent OS auf FreeBSD umgestellt. Eine wichtige Anmerkung, PermitEmtyPasswords funktioniert leider nicht, deswegen habe ich mich bei ersten Versuch ausgesperrt. Deswegen:
ACHTUNG: es ist besser, wenn man die Datei /mnt/etc/master.passwd mit:
vipw -d /mnt/etc
editiert und beim root User einen md5 Passwort von einer anderen FreeBSD Box reinkopiert. So, kann man problemlos sich dann mit einem Passwort einloggen.
Nochmal Vielen Dank!
Hi
Geht das auch mit einem VServer?
Mit einem VServer geht sowas vermutlich nicht – kommt aber auch immer ein wenig darauf an. Die meisten VServer-Anbieter haben einen speziellen Kernel, damit das Gastsystem laeuft.
Falls du jedoch so einen angepassten Kernel zusammenfrickelst (wenn ueberhaupt moeglich), dann koennte es auch gehen.