Neustart in Ubuntu ohne Verwendung der BIOS-Einstellungen

Neustart in Ubuntu ohne Verwendung der BIOS-Einstellungen

Ich habe einen Remote-PC (verbunden über Team Viewer) mit Ubuntu 22 und Windows 11 eingerichtet, die Startpriorität ist auf Windows eingestellt. Derzeit bin ich in Ubuntu 22 gebootet, aufgrund eines CUDA-Problems muss ich meinen PC neu starten. Da derzeit niemand physisch auf den PC zugreifen kann, gibt es eine Möglichkeit, die Startpriorität von Ubuntu selbst zu ändern, sodass es wieder in Ubuntu neu gestartet wird. Und der Haken ist, dass ich nur einen Versuch habe, wenn dieser fehlschlägt, wird es in Windows gebootet und wir haben weiterhin Fernzugriff, aber das möchte ich nicht.

Danke,

Ich habe die GRUB-Einstellungen durchgesehen und es ist bereits auf „0“ eingestellt, wie unten gezeigt.

GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""

Hinweis: Unten ist das Problem, das ich mit CUDA habe. Wenn jemand eine Möglichkeit kennt, es ohne Neustart zu beheben, wird das auch funktionieren.

Ich habe AlexyAB Darknet YoloV4 eingerichtet und es hat gut funktioniert, aber heute habe ich plötzlich den folgenden Fehler. Als ich das letzte Mal denselben Fehler hatte, musste ich das System neu starten und es hat gut funktioniert.

Fehler:

Darknet error location: ./src/dark_cuda.c, cuda_set_device(), line #38 CUDA Error: no CUDA-capable device is detected: Bad file descriptor backtrace (8 entries) 1/8: ./darknet(log_backtrace+0x38) [0x5593a5171208] 2/8: ./darknet(error+0x3d) [0x5593a51712ed] 3/8: ./darknet(check_error+0xd0) [0x5593a5173be0] 4/8: ./darknet(check_error_extended+0x7c) [0x5593a5173ccc] 5/8: ./darknet(main+0x28d) [0x5593a51306cd] 6/8: /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f61655d4d90] 7/8: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f61655d4e40] 8/8: ./darknet(_start+0x25) [0x5593a51329f5]

Ausgabe für „nvcc --version“: nvcc: NVIDIA (R) Cuda-Compilertreiber Copyright (c) 2005–2023 NVIDIA Corporation Erstellt am Fri_Sep__8_19:17:24_PDT_2023 Cuda-Kompilierungstools, Version 12.3, V12.3.52 Build cuda_12.3.r12.3/compiler.33281558_0

Antwort1

Da Sie Windows 11 haben, muss Ihr System im UEFI-Stil booten. Daher sollten Sie mit dem Befehl Ihre Startreihenfolge und andere Starteinstellungen in Linux anzeigen können sudo efibootmgr -v.

Die Ausgabe sollte ungefähr so ​​aussehen:

BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0002,0000,0006,0005,0001,0003,0007
Boot0000* Windows Boot Manager  HD(1,GPT,12345678-9abc-def0-1234-56789abcdef0,0x800,0x82000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.8.7.6.5.4.3.2.-.1.0.f.e.-.d.c.b.a.-.9.8.7.6.-.5.4.3.2.1.0.f.e.d.c.b.a.}...d................
Boot0001* UEFI:CD/DVD Drive     BBS(129,,0x0)
Boot0002* rEFInd Boot Manager   HD(1,GPT,12345678-9abc-def0-1234-56789abcdef0,0x800,0x82000)/File(\EFI\REFIND\REFIND_X64.EFI)
Boot0003* UEFI:Removable Device BBS(130,,0x0)
Boot0004* debian        HD(1,GPT,12345678-9abc-def0-1234-56789abcdef0,0x800,0x82000)/File(\EFI\DEBIAN\SHIMX64.EFI)
Boot0005* UEFI: PXE IP4 Intel(R) Ethernet Connection (7) I219-V PciRoot(0x0)/Pci(0x1f,0x6)/MAC(0123456789ab,0)/IPv4(0.0.0.00.0.0.0,0,0)..BO
  • Die BootCurrent:Zeile gibt die Nummer der BootNNNNZeile an, die zum Booten des aktuellen Betriebssystems verwendet wurde.
  • Die BootOrder:Zeile gibt die Reihenfolge an, in der die verschiedenen in den Zeilen angegebenen Startziele BootNNNNbeim Booten des Systems ausprobiert werden.
  • Die UUID-Zeichenfolge 12345678-9abc-def0-1234-56789abcdef0ist die tatsächliche PARTUUID der ESP-Partition, die die in den einzelnen Zeilen angegebenen Bootloaderdateien enthält BootNNNN.

In diesem Beispiel ist der native Bootmanager von Windows die Option Boot0000. Wenn das System also so eingestellt ist, dass es standardmäßig in Windows bootet, BootOrderwäre 0000dies der erste Eintrag. Wenn GRUB so konfiguriert ist, dass Ubuntu standardmäßig gebootet wird, muss die Einstellung „Standardmäßig in Windows booten“ in den UEFI-Booteinstellungen enthalten sein.

Dieses Beispielsystem ist derzeit so konfiguriert, dass es standardmäßig in Debian bootet. So wurde es auch gestartet, um die Beispielausgabe zu erzeugen.

Um Ihrem System mitzuteilen, dass Ubuntu nur einmal gestartet werden soll, können Sie „NNNN“ verwenden, sudo efibootmgr --bootnext NNNNwobei NNNN die BootNNNNNummer der Zeile ist, in der Ubuntus GRUB ausgeführt wird.

Um Ihrem System mitzuteilen, dass es standardmäßig Ubuntu verwenden soll, bis Sie ausdrücklich eine andere Anweisung erhalten, verwenden Sie sudo efibootmgr --bootorder XXXX,YYYY,ZZZZ....wobei XXXX,YYYY,ZZZZ die Nummern der Boot-Optionen sind, die derzeit in der BootOrder:Zeile aufgeführt sind.neu angeordnet, sodass die Zeilennummer von Ubuntu an erster Stelle steht.

Mit anderen Worten, um dieses Beispielsystem so zu konfigurieren, dass es nur einmal in Windows bootet und bei nachfolgenden Bootvorgängen zum Standard-Debian zurückkehrt:

sudo efibootmgr --bootnext 0000

So booten Sie das Beispielsystem in Windows, bis die Einstellungen erneut geändert werden:

sudo efibootmgr --bootorder 0000,0004,0002,0006,0005,0001,0003,0007

Theoretisch können Sie unerwünschte Einträge aus der Startreihenfolgezeile weglassen, aber einige fehlerhafte UEFI-Implementierungen fügen dann möglicherweise alle weggelassenen Einträge in zufälliger Reihenfolge wieder am Ende der Startreihenfolge hinzu. Meiner Erfahrung nach ist es am sichersten, die Startreihenfolge einfach neu anzuordnen, anstatt sie zu verkürzen oder zu verlängern, wenn es keinen dringenden Grund dafür gibt.

verwandte Informationen