Перезагрузка в Ubuntu без использования настроек BIOS

Перезагрузка в Ubuntu без использования настроек BIOS

У меня есть удаленный ПК (подключенный через Team Viewer) с Ubuntu 22 и Windows 11, приоритет загрузки установлен на загрузку Windows. В настоящее время я загружен в Ubuntu 22, из-за проблемы с CUDA мне приходится перезагружать свой ПК. Поскольку сейчас нет никого, кто мог бы получить физический доступ к ПК, есть ли способ изменить приоритет загрузки из самого Ubuntu, чтобы он снова перезагрузился в Ubuntu. И загвоздка в том, что у меня есть только одна попытка, если она не удастся, он загрузится в 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 Авторские права (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— это фактический PARTUUID раздела ESP, содержащего файлы загрузчика, указанные в отдельных BootNNNNстроках.

В этом примере собственный менеджер загрузки Windows — это option Boot0000, поэтому, если система была настроена на загрузку в Windows по умолчанию, то первой записью BootOrderбудет 0000. Если GRUB настроен на загрузку Ubuntu по умолчанию, то в настройках загрузки UEFI должна быть настройка «boot into Windows by default».

В настоящее время эта система настроена на загрузку Debian по умолчанию, и именно так она была запущена для создания выходных данных примера.

Чтобы указать вашей системе загрузить Ubuntu только один раз, вы можете использовать команду , sudo efibootmgr --bootnext NNNNгде NNNN — BootNNNNномер строки, на которой запущен GRUB Ubuntu.

Чтобы указать системе, что по умолчанию следует использовать 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 могут затем добавить любые неиспользуемые записи обратно в конец порядка загрузки, в некотором случайном порядке. По моему опыту, безопаснее всего просто перестроить порядок загрузки вместо того, чтобы укорачивать или расширять его, если нет острой необходимости сделать иное.

Связанный контент