
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 derBootNNNN
Zeile an, die zum Booten des aktuellen Betriebssystems verwendet wurde. - Die
BootOrder:
Zeile gibt die Reihenfolge an, in der die verschiedenen in den Zeilen angegebenen StartzieleBootNNNN
beim Booten des Systems ausprobiert werden. - Die UUID-Zeichenfolge
12345678-9abc-def0-1234-56789abcdef0
ist die tatsächliche PARTUUID der ESP-Partition, die die in den einzelnen Zeilen angegebenen Bootloaderdateien enthältBootNNNN
.
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, BootOrder
wäre 0000
dies 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 NNNN
wobei NNNN die BootNNNN
Nummer 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.