Neulich stellte sich das Problem, dass der Webhoster des Vertrauens keine neuen Betriebssystemversionen in seinem Administrations-Webfrontend zum Administrieren seines Root-Servers angeboten hat. Was bleibt, ist der Wechsel des Anbieters oder der Wechsel auf ein neues Produkt. Eine andere Version ist die Moeglichkeit der Remote-Installation im Selbstbau. Bei Suse gibt es (wenn man PXE-Boot aussen vor laesst), noch 2 andere Moeglichkeiten:
Zunaechst braucht man eine entfernte Installationsquelle (die man am besten noch selbst unter Kontrolle hat). Dazu lade man sich die Betriebssystemversion seiner Wahl als iso-Image runter, mounte dieses und stellt es per Webserver zur Verfuegung:
# wget "http://download.opensuse.org/distribution/12.1/iso/openSUSE-12.1-DVD-x86_64.iso"
# mkdir /suse
# mount -o loop openSUSE-12.1-DVD-x86_64.iso /suse
cat <<EOF>/etc/apache2/conf.d/suse.conf
Alias /suse/ /suse/
<Directory /suse/>
Options +Indexes +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
EOF
rcapache2 restart
Auf dem neu zu installierenden Rechner befindet sich eine alte Version von Suse oder eines anderen Linux-System mit GRUB Bootloader. Dort macht man einen neuen Eintrag in /boot/grub/menu.lst:
title Boot -- openSUSE 12.1
root (hd0,0)
kernel /boot/vmlinuz.install noapic usessh=1 sshpassword="12345678" \
install=http://192.168.0.121/suse hostip=192.168.0.123 netmask=255.255.255.0 \
gateway=192.168.0.1 nameserver=192.168.0.1
initrd /boot/initrd.install
Bedeutet: 192.168.0.121 ist der Installserver (siehe oben), unser Rechner hat die IP-Adresse 192.168.0.123, Default-GW und Nameserver ist jeweils die 192.168.0.1. Mit default=XX kann man den Menueeintrag aktivieren.
Jetzt muss man das den neuen Kernel vom Installserver herunterladen:
cd /boot
wget --output-document=vmlinuz.install http://192.168.0.121/suse/boot/x86_64/loader/linux
wget --output-document=initrd.install http://192.168.0.121/suse/boot/x86_64/loader/initrd
und den Rechner neu booten. Danach sollte man sich mit ssh -X root@192.168.0.123 einloggen koennen (Passwort 12345678) und kann mit "yast" die Installation beginnen.Nach dem Reboot ist noch ein /usr/lib/YaST2/startup/YaST2.ssh auszufuehren
Bei dieser Variante wird der zu installierende Rechner mit einem Rettungssystem gebootet. Der Hoster bietet diese Moeglichkeit meist zur Reparatur von Problemen mit dem Kernel oder Bootloader an. Das Betriebsystem laeuft zur Bootzeit im RAM und das eigentliche Betriebssystem ist auf /dev/hda oder /dev/sda erreichbar. Man startet nun ein Netzwerk-Socket mit
netcat -l 0.0.0.0 12345 | dd of=/dev/sda
Auf einem anderen Rechner lade man sich das Disk-Image eines Betriebssystems herunter, was man sich etwa mit Suse-Studio erstellt hat und leite dies an das Netwerksocket des Zielrechners weiter:
wget "http://susestudio.com/download/91a2c96d4d50210df26e4e3f7696bc37/Eumelnet64.x86_64-0.0.1.oem.tar.gz"<br />tar xvfz Eumelnet64.x86_64-0.0.1.oem.tar.gz<br />dd if=Eumelnet64.x86_64-0.0.1.raw | netcat 192.168.0.132 12345<br />
Wenn das Kopieren beendet ist, kann man wahlweise mit “mount /dev/sda1 /mnt” das neue System mounten und etwa die Netzwerkkonfiguration noch anpassen oder das neue System einfach booten.