reakktor
Well-Known Member
Aloha zusammen
hier eine Anleitung, wie man FreeBSD 7.x/8.x auf einem Server4You-Server (root-server) installieren kann. Ich möchte mich nicht mit fremden Lorbeeren schmücken - die originale Anleitung ist unter:
http://wp.lando.cc/blog/2008/07/11/depenguinator-20-auf-s4y-server/
zu finden. Thnx Lando!
Anbei ein wikimedia-formatierter Artikel des ganzen, passend mit für 7.x/8.x funktionierenden Ergänzungen von meiner Seite aus.
Kommentare sind natürlich willkommen.
Ich wäre erfreut, wenn sich einer der BSDForen-Wiki-Admins diesem Thema annehmen könnte.
Ich habe zu wenig Erfahrung mit Wikis und Web.Präsentationen, um selbst etwas für die Verbreitung zu tun.
Wiki-Code:
Danke ans FreeBSD-Projekt.
greetz
reakktor
hier eine Anleitung, wie man FreeBSD 7.x/8.x auf einem Server4You-Server (root-server) installieren kann. Ich möchte mich nicht mit fremden Lorbeeren schmücken - die originale Anleitung ist unter:
http://wp.lando.cc/blog/2008/07/11/depenguinator-20-auf-s4y-server/
zu finden. Thnx Lando!
Anbei ein wikimedia-formatierter Artikel des ganzen, passend mit für 7.x/8.x funktionierenden Ergänzungen von meiner Seite aus.
Kommentare sind natürlich willkommen.
Ich wäre erfreut, wenn sich einer der BSDForen-Wiki-Admins diesem Thema annehmen könnte.
Ich habe zu wenig Erfahrung mit Wikis und Web.Präsentationen, um selbst etwas für die Verbreitung zu tun.
Wiki-Code:
Code:
=Depenguinator 2.0 auf S4Y-Server=
Server4You ist wohl einer der Anbieter, die dedizierte Server fuer relativ wenig Geld unters Volk bringen. Leider hat man dort nur die Wahl zwischen Linux und ggf. einem Windows. Da das fuer mich eigentlich mitlerweile keine wirklich schoene Option mehr ist, habe ich mich mal eine Weile umgesehen. So einfach ist es nicht dort ein FreeBSD zu installieren, da das RescueSystem nicht einfach ist und Zugriff auf eine Konsole hat man bei S4Y auch nicht inklusive.
Es gibt jedoch eine Moeglichkeit um auch hier ein FreeBSD zu installieren. In frueheren Zeiten (FreeBSD5) konnte man das mit dem Depenguinator 1 erledigen - mit aktuellen FBSDs funktioniert das jedoch nicht mehr. Mitlerweile gibt es einen Nachfolger: Depenguinator 2.0. Mit ihm ist es moeglich ein FreeBSD so in eine RAM-Disk zu legen, dass man dies booten und dann mit der Installation weiter machen kann.
Zunaechst mal braucht man also einen dedizierten Server4You-Server (keinen VServer), weiterhin etwas FreeBSD-Know How und natuerlich Geduld und ein bisschen Frickelwillen. Die Anleitung unter http://www.daemonology.net/blog/2008-01-29-depenguinator-2.0.html hilft zwar schon viel weiter, aber so ganz hat es bei mir damit dann doch nicht funktioniert.
Weiterhin sollte man beim Anmieten bereits darauf achten, dass entweder Debian oder Ubuntu vorinstalliert sind. Dies macht das ganze leichter, wie man in den folgenden Abschnitten sieht.
===Installation der benötigten Tools===
Auf dem mir zur Verfügung stehenden Server war ein Debian am Laufen. Daher werden mittels aptitude folgende Pakete nachinstalliert:
aptitude install curl bsdtar libc6-dev zlib1g-dev
===Depenguinator 2 besorgen===
Nachdem man nun alle Voraussetzungen geschaffen hat, organisiert man sich das Archiv mit dem Depenguinator 2.
curl http://www.daemonology.net/depenguinator/depenguin-2.0.tar.gz > depenguin-2.0.tar.gz
Wenn man das hat, sollte man noch schauen, ob die Checksumme (aa5d98dd3998545600f5af1d406196832ef8bea59cb022bc3a5efb303ac57cf7) stimmt:
sha256sum depenguin-2.0.tar.gz
Wenn dies alles stimmt, kann man dazu uebergehen das Archiv auszupacken. Dazu genuegt ein einfaches:
tar -xzf depenguin-2.0.tar.gz
===Konfigurieren des Entpinguisierers===
Man sollte erstmal in das zuvor erstellte Verzeichnis wechseln:
cd depenguin-2.0
Hier kann man nun mit einem:
mv depenguinator.conf.dist depenguinator.conf
die Beispielkonfiguration umbenennen. Wenn das erfolgt ist, oeffnet man sie in einem Editor seiner Wahl - z.B.:
nano depenguinator.conf
Hier finden sich folgende Werte, die man entsprechend seines Systemes anpassen muss. Die entsprechenden Werte finden sich z.B. in /etc/network/interfaces und /etc/resolv.conf- je nachdem, welche Distribution man hat. Die Mac-Adresse bekommt man mit einem Aufruf von ifconfig heraus. Die einzige Sache, bei der ich mir nicht sicher war, ist der depenguinator_interfaces=”external”-Eintrag. Diesen kann man einfach so lassen. Man muss einfach nur alle anderen Werte korrekt ausfüllen.
===FreeBSD7-CD herunterladen===
Da man nun soweit ist mit konfigurieren, kann man dazu uebergehen eine FreeBSD-Installations-CD herunterzuladen.
curl ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc1.iso > disc1.iso
===SSH-Key erstellen===
Da man sich auf dem spaeter laufenden FreeBSD nicht per Passwort, sondern mit einem Key einloggt, erstellt man noch mit:
ssh-keygen -t rsa
die notwendigen Dateien - ein Passwort anzugeben ist dabei nicht notwendig. Dies legt die Dateien id_rsa und id_rsa.pub in ~/.ssh/ ab. Die id_rsa-Datei sollte man sich noch kopieren (runter von dem Server, am besten lokal auf den eigenen Rechner) - die braucht man später noch.
===Image erstellen und installieren===
Um das noetige Image zu erstellen, benutzt man das beiliegende Script. Dies ruft man mit einem:
sh -e makeimage.sh disc1.iso 7.0-RELEASE ~/.ssh/id_rsa.pub
auf.
Um nun das erstelle Image zu benutzen, muss zunächst der Swap des noch installierten Linux abgeschaltet werden. Dazu genügt ein einfaches:
swapoff -a
Nun kommt der böse Teil der Geschichte. Als Ablage für das FreeBSD nutzt man den nun freigewordenen Platz (ehemals Swap). Mit dd kann man dort einfach das Image ablegen:
dd if=disk.img of=/dev/sda2
Hierbei sollte man natürlich sicherstellen, dass /dev/sda2 auch das swap-Device war. Das bekommt man am einfachsten heraus, wenn man mal in /etc/fstab schaut.
===Grub-Config anpassen===
Nun hat man auf sda2 ein bootfähiges FreeBSD liegen. Was nun noch fehlt ist der Eintrag im Bootloader. Hierzu schreibt man einfach ans Ende von ''/boot/grub/menu.lst'':
''title FreeBSD''
''root (hd0,1)''
''makeactive''
''chainloader +1''
Weiterhin muss man den Eintrag default der Datei ''/boot/grub/menu.lst'' auf den entsprechenden Wert setzen. Da man jetzt 3 Einträge im Menue hat, muss man den default-Wert also auf 2 setzen (Grub faengt bei 0 an zu zaehlen).
===Fdisk und reboot===
Nun fehlt nur noch ein Schritt. Das wäre das Setzen von sda2 auf den Partitionstyp FreeBSD. Dazu startet man:
fdisk /dev/sda
Hier drückt man nun ''t'', dann die ''2'' und als Code nimmt man ''a5'' - damit hat man den Partitionstyp von SWAP auf FREEBSD geändert. Nachdem man dies bestätigt hat, schreibt man mit ''w'' die Partitionstabelle. Wenn das alles geschehen is, kann man Daumen drücken und rebooten.
Nun sollte die Kiste wieder da sein und man kann mit ssh -i id_rsa root@SERVER auf den Server verbinden - fertig.
=Installation des Systems=
Nachdem ich im vorherigen Abschnitt 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.
Da auch FreeBSD immer sicherer wird, funktioniert das aber nicht immer, grade wenn man sich neuerere Releases installiert hat.
Darum sollte man unter ''/mnt/root/.ssh/authorized_keys'' seinen vorher erzeugten public-key eintragen. Eventuell reicht dazu ein
cp /root/.ssh/authorized_keys /mnt/root/.ssh/authorized_keys
Dieser Schritt ist sehr wichtig, falls beim Login doch ein Passwort verlangt wird - sonst ist man ausgesperrt und die ganze Arbeit bisher war umsonst, da dann nur ein Rücksetzen des gesamten Servers hilft.
====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”
Hat man später ein lauffähiges System und einen eigenen Kernel gebacken+installiert, kann der Eintrag aus der dortigen ''/boot/loader.conf'' wieder weggenommen werden.
===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. Vielleicht lieber alles nochmal checken vor dem Reboot....
Danke ans FreeBSD-Projekt.
greetz
reakktor