Ich habe Ubuntu 10.10 Server auf einem Einplatinencomputer in einer semi-eingebetteten Umgebung installiert. Keine Tastatur oder Bildschirm, nur SSH-Zugriff darauf.
Es ist also sehr frustrierend, wenn es gelegentlich hochfährt und im GRUB-Menü hängen bleibt und auf einen Tastendruck wartet, um die erste Option auszuwählen.
Wie konfiguriere ich GRUB so, dass es unter keinen Umständen auf einen Tastendruck wartet?
Update # 1: Es gibt keine menu.lst, da dies GRUB 2 ist. Aber ich habe eine / etc / default / grub, die so aussieht:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
Update Nr. 2: Ich habe es herausgefunden. Bei Starts, die auf nicht erfolgreiche Starts folgen, deaktiviert GRUB das eigene Timeout. Da das Anzeigen des Menüs einen Start nicht erfolgreich macht, handelt es sich um eine unausweichliche Schleife. Dieses Verhalten kann durch Bearbeiten der Datei /etc/grub.d/00_header und Ändern der Funktion make_timeout deaktiviert werden:
make_timeout ()
{
echo "set timeout=0"
}
Beenden Sie nun das Grub-Konfigurationsaktualisierungsskript und führen Sie es erneut aus:
sudo update-grub2
Es macht für mich keinen Sinn, dass dieses Verhalten der Standard für Ubuntu Server ist, ein Produkt, das für Computer gedacht ist, auf die über die Konsole zugegriffen wird.
/boot/grub/menu.lst
siehst du aus?Antworten:
Für Ubuntu 12.04 LTS gibt es eine spezielle Option, die eingestellt werden kann
/etc/default/grub
.Wenn Sie zum Beispiel eine Zeitüberschreitung von 2 Sekunden wünschen (um ein Hängenbleiben bei unbeaufsichtigten Neustarts zu vermeiden), fügen Sie einfach die folgende Zeile hinzu
/etc/default/grub
:Denken Sie daran,
update-grub
danach zu rennen ...quelle
Hier finden Sie Anweisungen für Ubuntu 10.10, die sich geringfügig von früheren Versionen unterscheiden. Kommentieren Sie in der Datei /etc/grub.d/00_header die dumme Prüfung auf einen vorherigen Startfehler aus:
Dann aktualisiere:
Beachten Sie, dass grub2 ein zweites Laufwerk mit angeschlossenem Linux findet, und fragen Sie beim Booten, welches Sie möchten. Entfernen Sie alle zusätzlichen Laufwerke, bevor Sie "update-grub" ausführen.
Siehe auch https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/797544
quelle
Ich bin mit Ubuntu Server 9.10 auf diese zutiefst unangenehme Designübersicht gestoßen. Ihr Fix hat mir enorm geholfen. Ich wollte nur darauf hinweisen, dass das für 9.10 benötigte Update anders ist, da es keine "make_timeout ()" - Funktion in derselben Datei gibt.
Gehen Sie für Ubuntu 9.10 zum Ende derselben Datei (00_header) und ändern Sie Folgendes:
zu
Führen Sie dann wie zuvor Folgendes aus:
quelle
Konfigurieren Sie GRUB für den seriellen Zugriff (und Ihren Bootloader, wenn Sie gerade dabei sind) und halten Sie einen offenen seriellen Anschluss, ein Nullmodemkabel und einen USB-zu-RS232-Konverter für diese Instanzen bereit. Ich habe einen kopflosen Server und einen Guruplug und würde es nicht anders haben.
quelle
Ich habe gerade ein langes Timeout für Rekordfehler festgelegt:
Das bedeutet, dass beim Booten eine Zeitüberschreitung von 30 Sekunden auftritt, wenn der vorherige Bootvorgang fehlgeschlagen ist. (Nicht anders als das andere Betriebssystem ...)
Dies könnte (und sollte meiner Meinung nach) sogar eine Einstellung in / etc / default / grub sein.
quelle
Ich weiß wirklich nicht, warum dies die Standardaktion ist, insbesondere für einen Server, aber dies ist, was ich in meinen Server-Setup-Skripten implementiert habe.
quelle
Dieser Ansatz ist ein bisschen übersichtlicher - ändern Sie ihn einfach
/etc/default/grub
, um die Zeile hinzuzufügen:... was man bei der Bereitstellung automatisch mit so etwas machen könnte:
Dies sollte realisierbar sein, wenn die Variable GRUB_RECORDFAIL_TIMEOUT in
/etc/grub.d/00_header
(wie ich in 12.04 LTS sehe) erwähnt wird :Ich bin ein bisschen neugierig, ob es eine noch bessere Antwort gibt, wenn man sich mit der Aufzeichnung der Fehler befasst.
quelle