
Ubuntu 22 と Windows 11 をセットアップしたリモート PC (チーム ビューアー経由で接続) があり、ブート プライオリティは Windows でブートするように設定されています。現在、Ubuntu 22 でブートしていますが、CUDA の問題により PC を再起動する必要があります。現時点では PC に物理的にアクセスできる人がいないため、Ubuntu 自体からブート プライオリティを変更して、再起動すると再び Ubuntu に戻るようにする方法はありますか。問題は、試行できるのは 1 回だけであり、失敗した場合は Windows でブートしてリモート アクセスが引き続き可能になるのですが、そうなってほしくありません。
ありがとう、
GRUBの設定を確認したところ、以下のようにすでに「0」に設定されていました。
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=""
注: 以下は CUDA で発生した問題です。再起動せずに修正する方法をご存知の方がいらっしゃれば、それも有効です。
AlexyAB Darknet YoloV4 をセットアップしました。これまでは正常に動作していましたが、今日突然次のエラーが発生しました。前回同じエラーが発生したときは、システムを再起動する必要がありましたが、問題なく動作しました。
エラー:
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]
「nvcc --version」の出力: nvcc: NVIDIA (R) Cuda コンパイラ ドライバー Copyright (c) 2005-2023 NVIDIA Corporation Fri_Sep__8_19:17:24_PDT_2023 に構築 Cuda コンパイル ツール、リリース 12.3、V12.3.52 ビルド cuda_12.3.r12.3/compiler.33281558_0
答え1
Windows 11 を使用している場合、システムは UEFI スタイルで起動する必要があります。したがって、コマンドを使用して Linux で起動順序やその他の起動設定を表示できるはずですsudo efibootmgr -v
。
次のような出力が表示されます:
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
- この行は、現在のオペレーティング システムの起動に使用された行
BootCurrent:
の番号を示します。BootNNNN
- この行は、システムを起動するときに、行
BootOrder:
に指定されたさまざまなブートターゲットが試行される順序を指定します。BootNNNN
- UUID 文字列は
12345678-9abc-def0-1234-56789abcdef0
、個々の行で指定されたブートローダ ファイルを含む ESP パーティションの実際の PARTUUID ですBootNNNN
。
この例では、Windows のネイティブ ブート マネージャーはオプション であるBoot0000
ため、システムがデフォルトで Windows を起動するように設定されている場合、 が最初のエントリにBootOrder
なります0000
。GRUB がデフォルトで Ubuntu を起動するように構成されている場合、UEFI ブート設定に「デフォルトで Windows を起動する」設定が含まれている必要があります。
このサンプル システムは現在、デフォルトで Debian を起動するように設定されており、サンプル出力を生成するためにそのように起動されました。
システムに Ubuntu を一度だけ起動するように指示するには、 を使用できます。sudo efibootmgr --bootnext NNNN
ここで、NNNN はBootNNNN
Ubuntu の GRUB を実行する行の番号です。
特別な指示があるまでUbuntuをデフォルトのままにするようにシステムに指示するには、sudo efibootmgr --bootorder XXXX,YYYY,ZZZZ....
XXXX、YYYY、ZZZZが現在行にリストされているブートオプションの番号である、を使用しますBootOrder:
。Ubuntuの行番号が先頭になるように並べ替えます。
つまり、このサンプル システムを Windows で一度だけ起動し、その後の起動ではデフォルトの Debian に戻すには、次の手順を実行します。
sudo efibootmgr --bootnext 0000
設定が再度変更されるまでサンプル システムを Windows で起動させるには、次の手順を実行します。
sudo efibootmgr --bootorder 0000,0004,0002,0006,0005,0001,0003,0007
理論上は、ブート オーダー ラインから不要なエントリを省略できますが、一部のバグのある UEFI 実装では、省略されたエントリがブート オーダーの末尾にランダムな順序で追加される可能性があります。私の経験では、緊急の必要がない限り、ブート オーダーを短縮または拡張するのではなく、単に並べ替えるだけの方が安全です。