Ähnlich wie Daniel hatte ich das Vergnügen eine von den Sun Kisten zu ergattern, die ich jetzt reihenweise durchstrapazieren möchte. Heute ist die V240 an der Reihe, womit ich Daniels Artikel „Debian Squeeze auf Sun Fire V120 (netboot/netinst)“ ergänzen möchte. Die V240 verhielt sich bei mir ein wenig anders als eine V120, daher weicht hier doch einiges von Daniels vorgehen ab. Am Ende bleibt aber eines: Ein funktionierendes Debian 6.0 Squeeze auf einer Sun Fire V240 in meinem Fall mit UltraSparc 3i/IIIi in der letzten Ausbaustufe mit 1,6 GHz.
Daniel nutzt privat Debian, ich bin ein ArchLinux User, daher wird hier meine Bootumgebung unter Arch Linux initialisiert – unter Debian sollte das aber fast genauso ablaufen, nur dass APT statt Pacman zum Einsatz kommt.
Meine Voraussetzungen:
- Adapterkabel von Seriell auf RJ45
- Eine Sun Fire V240 mit ALOM
- Ein Fileserver im Keller (Arch Linux)
- Eine Fritzbox als Router
Aufteilung:
- Teil 1 befasst sich mit der Vorbereitung der Netbootumgebung.
- Teil 2 ist eine Kombination aus weiteren Einträgen in der Bootumgebung und Herstellen der Bootfähigkeit des Servers.
1. Vorbereiten der Netinstall Umgebung
Fast jeder wird einen Router, Routerdistribution oder ähnliches am laufen haben. Nun möchte ich z.B. die Konfiguration und Services der FritzBox nicht aufgeben und diese weiterhin nutzen. D.h. ich werde den Installationsserver nicht auch als Router konfigurieren, sondern lediglich als DHCP Server. Ich habe daher ein Setup gewählt, bei dem bisher eine FritzBox zum Einsatz kam um die IP-Adressen zu verteilen. Diese Aufgabe wird nun als erstes dem Installationsserver zuteil – man kann das natürlich auf einen beliebigen Server legen, aber ich bevorzuge hier TFTP und DHCP auf einem Server zu haben.
Unter Arch Linux brauche ich dafür die Pakete „tftp iputils dhcp“, welche über
pacman -S tftp iputils dhcp
schnell installiert sind. Iputils enthält z.B. „rarp“ das im Howto von Daniel auch zum Einsatz kommt.
1.1 DHCP Server einrichten
Nach etwas manpage lesen und googlelei kam dieses Config in /etc/dhcpd.conf zustande:
option domain-name-servers 192.168.0.1; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.50 192.168.0.80; allow bootp; filename "boot.img"; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; next-server 192.168.0.100; }
Vielleicht noch etwas erklärend dazu:
- domain-name-server: 192.168.0.1 ist meine Fritzbox und soll weiterhin DNS uebernehmen
- range: Der DHCP Server soll Clients IPs im Bereich 50 bis 80 zuweisen
- filename: „boot.img“ ist das Image nachdem der Client dann auf dem TFTP server fragt.
- option routers: Hier wird definiert, dass die Clients diese Adresse als Router nutzen sollen
- next-server: Gibt die IP an auf welcher der TFTP Server läuft.
Danach noch den DHCP Dienst auf dem Router abschalten und auf dem Installationsserver starten.
1.2 TFTP Server einrichten
Der TFTP Server, der das Image dann zum Bootclient transportiert, ist schnell eingerichtet. Unter Arch Linux muss man lediglich das Paket installieren und ein
/etc/rc.d/tftpd start
absetzen.
1.3 Bootimage herunterladen
Für dieses Howto verwenden wir Debian Squeeze für Sparc. Es wäre aber an dieser Stelle möglich auch andere Images herunterzuladen und über TFTP anzubieten. So unterstützen auch BSDartige Systeme wie z.B. OpenBSD die Fire V240.
Unter Arch muessen die Images dann im TFTP root liegen. Daher laden wir sie mit:
cd /var/tftpboot/ wget http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-sparc/current/images/netboot/boot.img
direkt ins passende Verzeichnis herunter. Damit sind zumindest die Vorbereitungen für TFTP und DHCP erstmal beendet.
2. Vorbereiten des Server
Zuerst brauchen wir eine serielle Verbindung.Dafür muss entweder an einen USB-Seriell adapter
oder wer noch so eine RS232 Buchse am Computer bzw. Notebook hat braucht nur noch so einen RJ45 auf Seriell Adapter bzw. ein Kabel (bei Ebay z.B. als blaue Ciscokabel zu bekommen).
Wer keins hat, kann sich mit dieser Seite einen bauen: http://www.sunhelp.org/unix-serial-port-resources/serial-pinouts/
2.1 Den Serviceprozessor vorbereiten
Wenn man vor hat, direkt über die Serielle Konsole zu installieren ist das natürlich auch okay und man kann das hier überspringen. Da ich aber den Server bei mir auf dem Tisch stehen hatte, wollte ich dann doch lieber kurz die Netzwerkschnittstelle des Serviceprozessors nutzbar machen. Am einfachsten geht das, wenn man sich einloggt und dann per
scsetup
einen Konfigurationsdurchlauf macht. Für weitere Befehle dient „help“ als Ausgangsbasis. Als kleiner Hinweis sei gesagt, dass ALOM glaube ich erst ab 1.6 SSH unterstüzt, davor muss man mit unverschlüsseltem Telnet vorlieb nehmen. Wie auch immer, solange ich in meinem eigenen kleinen Netz bin, kann ich sogar mit Telnet für diesen Zweck leben (danach evtl. besser deaktivieren und ein ALOM Update machen).
2.2 Die richtige Netzwerkverbindung rausfinden
Da die Installation dann die Onboardnetzwerkkarten nutzen wird, müssen wir noch rausbekommen, welcher Anschluss denn wirklich am Kabel haengt.
Befehl:
watch-net-all
sollte etwa einen Output wie diesen bringen:
{1} ok watch-net-all /pci@1d,700000/network@2,1 Timed out waiting for Autonegotation to complete Check cable and try again Link Down /pci@1d,700000/network@2 Timed out waiting for Autonegotation to complete Check cable and try again Link Down /pci@1f,700000/network@2,1 100 Mbps FDX Link up Looking for Ethernet Packets. '.' is a Good Packet. 'X' is a Bad Packet. Type any key to stop. ........... /pci@1f,700000/network@2 Timed out waiting for Autonegotation to complete Check cable and try again Link Down
Und voila, unser genutztes Interface wird /pci@1f,700000/network@2,1 da hier die Verbindung anliegt. Als nächsten Schritt können wir jetzt die MAC-Adresse für das Interface herausfinden indem wir per
cd /pci@1f,700000/network@2,1 .properties
uns die Eigenschaften des Interfaces anzeigen lassen.
Das Ganze sollte dann wieder ungefähr so aussehen:
{1} ok cd /pci@1f,700000/network@2,1 {1} ok .properties local-mac-address 00 03 ZZ ZZ ZZ ZZ assigned-addresses 83001110 00000000 00400000 00000000 00200000 83001118 00000000 00120000 00000000 00010000 compatible pci14e4,1648.108e.1648.0 pci14e4,1648.108e.1648 pci108e,1648 pci14e4,1648.0 pci14e4,1648 pciclass,020000 pciclass,0200 reg 00001100 00000000 00000000 00000000 00000000 03001110 00000000 00000000 00000000 00200000 max-frame-size 00010000 address-bits 00000030 device_type network name network 66mhz-capable fast-back-to-back devsel-speed 00000001 class-code 00020000 interrupts 00000002 latency-timer 00000040 [7m More [<space>,<cr>,q,n,p,c] ? [m cache-line-size 00000010 max-latency 00000000 min-grant 00000040 subsystem-id 00001648 subsystem-vendor-id 0000108e revision-id 00000000 device-id 00001648 vendor-id 000014e4
Unter „local mac adress“ finden wir dann die MAC Adresse – hier von mir als 00 03 ZZ ZZ ZZ ZZ markiert – die wir nun dem RARP Service mitteilen können.
2.3 Ethers einrichten
Die nun bekannte MAC-Adresse packen wir jetzt als Eintrag in die Datei /etc/ethers . Damit kann der Installationsserver dann eine Adresse vergeben, unter welcher dann das Image über TFTP emfpangen wird.
Bei mir lautet jetzt der Eintrag z.b. so, um meiner fitkiven MAC-Adresse die IP 195 zu geben:
Inhalt /etc/ethers : 00:03:zz:zz:zz:zz 192.168.0.195
2.4 Netboot starten
Indem wir wieder die Netzwerkkarte spezifizieren die wir nutzen möchten starten wir einen Netboot über diese Karte:
{1} ok boot /pci@1f,700000/network@2,1:dhcp - install
startet man dann die Installation übers Netzwerk. Wenn soweit alles glatt gegangen ist, dauerts ein kleines weilchen und man sieht den Linux Kernel laden.
Boot device: /pci@1f,700000/network@2,1:dhcp File and args: - install 100 Mbps FDX Link up 4000 /-\|/-\ ... [ 0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 4.16.4 2004/12/18 05:20' [ 0.000000] PROMLIB: Root node compatible: [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.32-5-sparc64 (Debian 2.6.32-41) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 Mon Jan 16 16:15:31 UTC 2012 [ 0.000000] bootconsole [earlyprom0] enabled [ 0.000000] ARCH: SUN4U [ 0.000000] Ethernet address: 00:03:ba:cc:1b:25 [ 0.000000] Kernel: Using 2 locked TLB entries for main kernel image. [ 0.000000] Remapping the kernel... done. [ 0.000000] OF stdout device is: /pci@1e,600000/isa@7/serial@0,3f8 [ 0.000000] PROM: Built device tree with 82234 bytes of memory. [ 0.000000] Top of RAM: 0x123ff02000, Total RAM: 0xffeaa000 * snip *
ab hier übernimmt dann eine Textoptimierte Version vom Debian Installer. Viel Spaß damit!
Sollte es zu Problemen mit der Firmware der Netzwerkkarten kommen, mal einen anderen Port probieren, hat bei mir bisher immer geklappt. Desweiteren kann man auf der Textkonsole mit der Standardtastenkombi „#.“ zurueck in den ALOM, von wo aus man mit einem „break“ den Server dazu zwingen kann in den Open Boot Prompt zu wechseln.