Stellen Sie sich einen Headless-Server wie diesen vor: Eine typische x86-Box an einem Remotestandort, die Sie mit einem Standard-Ubuntu-Image remote initialisieren können. Nach der Initialisierung können Sie sich nur über ssh anmelden – oder per Fernzugriff zurücksetzen, dh Sie können nicht auf das BIOS oder die Eingabeaufforderung des Bootmanagers zugreifen (z. B. Grub 1).
Möglicherweise ist eine Art KVM verfügbar. Die Verwendung von KVM ist jedoch sehr teuer und muss stündlich gebucht werden.
In diesem Szenario kann man bei Bootproblemen paranoid werden. Zum Beispiel:
- Was ist, wenn ein Kernel-Upgrade fehlschlägt?
- Was ist mit einer fsck-Eingabeaufforderung im frühen Startvorgang? Wahrscheinlich ist ssh noch nicht verfügbar …
Gibt es andere Fallstricke, auf die Sie achten sollten?
Für Kernel-Upgrades konfiguriere ich grub (das ältere) so, dass die Präambel menu.lst
default saved fallback 2 # counts from 0
und der erste Eintrag endet mit:
savedefault fallback
Der erste Grub-Eintrag ist der aktualisierte Kernel und der dritte ist Siehe auch den Abschnitt Grub-Handbuch zum Fallback-Boot .
Ich habe das Startskript (auf einem Debian-ähnlichen System), sodass die Standardeinstellung bei erfolgreichem Start zurückgesetzt wird:
grub-set-default 0
Dieses Grub-Setup funktioniert, aber z Unter Ubuntu ist dies nicht die Standardeinstellung und man muss die menu.lst
nach jedem Kernel-Update manuell anpassen.
Ich gebe
als Kernel-Parameter, so dass z Im Falle eines falschen root=
-Parameters oder eines defekten Kernels wird das System im Fehlerfall automatisch neu gestartet.
Über das fsck-Problem bin ich mir nicht sicher, was das beste ist Weg ist. Auf Debian-ähnlichen Systemen können Sie
FSCKFIX=yes
in /etc/default/rcS
festlegen, wodurch fsck standardmäßig automatisch repariert wird .
Aber wenn die automatische Reparatur fehlschlägt, erhalte ich möglicherweise immer noch eine Eingabeaufforderung, auf die ich nicht remote zugreifen kann?
Alternativ könnte ich die fsck-Prüfung einfach über eine Null im sechsten deaktivieren Spalte von /etc/fstab
– im Falle eines fs-Fehlers würde dann einfach das System neu initialisiert und die Backups wiederhergestellt – wodurch alle fsck-Probleme vermieden werden?
Kommentare
- Sehr gute Frage. Ein Bare-Metal-Server ohne Remote-Konsole oder eine teure ist ein großes Problem.
Antwort
Im Ernst, wenn Ihr Anbieter in extremen Fällen keine kostenlose (oder zumindest billige) manuelle Unterstützung anbietet, ist es Zeit zu wechseln. Ansonsten denke ich, dass Sie mit Ihrem Setup ziemlich einverstanden sind.
Wenn Ihr System so kaputt ist, dass fsck es nicht reparieren kann, gibt es außer einer vollständigen Neuinstallation nicht viel anderes zu tun. Ich habe dies tatsächlich nicht gesehen, es sei denn, es gab einen schwerwiegenden Hardwarefehler.
Eine Sache zu beachten. Wählen Sie für einen Computer wie diesen eine stabile Distribution (Debian, RHEL, SLES) und aktualisieren Sie definitiv nur nach einer angemessen langen Zeitspanne (neue Version für mindestens 6 Monate stabilisiert).
Antwort
Sie sollten nach einem Hosting suchen Anbieter, der Serial-over-SSH-Zugriff bereitstellt und Ihre Linux-Installation so konfiguriert, dass der (relevante) serielle Anschluss als Konsole verwendet wird (wie Sie dies tun hängt davon ab Beachten Sie, dass BIOS verfügbar ist, das mit einer seriellen Schnittstelle und nicht mit dem eingebauten Bildschirmgerät kommuniziert. In der Regel wird jedoch eine Initialisierung vom Typ upstart oder sysV verwendet Sie werden nur mit teurer Hardware geliefert.
Sie müssen auch grub mitteilen, dass die serielle Schnittstelle verwendet werden soll, wenn Sie sie über ein DTE steuern möchten .
Antwort
Sie könnten eine benutzerdefinierte Initrdierung erstellen, die Dropbear (natürlich auf einem anderen Port ausgeführt), genügend Logik, um Ihr Netzwerk zum Laufen zu bringen, und möglicherweise eine Möglichkeit zum Laden einiger Wiederherstellungstools, falls erforderlich, enthält. Auf dieser Grundlage können Sie dann eine Wiederherstellungskernelkonfiguration erstellen, die mit Netzwerkfunktionen geladen wird und es Ihnen ermöglicht, sich einzuschalten, sodass Sie wieder auf das System zugreifen und eine Wiederherstellung versuchen können.
Kommentare
- Ja, das klingt nach einem ziemlichen Projekt. Ich könnte mir sogar vorstellen, ein kleines Linux-System zu erstellen, das immer zuerst gestartet wird und sich wie ein Boot-Manager verhält (während
ssh
-access undscreen
bereitgestellt werden ) – Es könnte dann den echten Kernel über Techniken wie en.wikipedia.org/wiki/Kexec booten. Oder man kann sich Server ansehen, die mit coreboot.org anstelle eines beschissenen BIOS aus den 80ern geliefert werden. Aber sicher, all dies ist nichts, was Sie in wenigen Stunden zuverlässig einrichten und warten können – zu diesem Zeitpunkt mit einer stabilen Verteilung. - Sieht so aus, als ob Sie ' in der Lage sein werden, einen Teil des Aufwands zu sparen, indem Sie sich dieser Seite ansehen