BIOS 설정을 사용하지 않고 Ubuntu로 재부팅

BIOS 설정을 사용하지 않고 Ubuntu로 재부팅

Ubuntu 22 및 Windows 11이 설치된 원격 PC(팀 뷰어를 통해 연결)가 설정되어 있으며 부팅 우선 순위는 Windows로 부팅하도록 설정되어 있습니다. 현재 Ubuntu 22로 부팅했는데 CUDA 문제로 인해 PC를 재부팅해야 합니다. 현재로서는 PC에 물리적으로 액세스할 수 있는 사람이 없으므로 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 컴파일러 드라이버 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/컴파일러.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의 기본 부팅 관리자는 option 이므로 Boot0000시스템이 기본적으로 Windows로 부팅하도록 설정된 경우 이 첫 번째 항목이 BootOrder됩니다 . 0000GRUB가 기본적으로 Ubuntu를 부팅하도록 구성된 경우 "기본적으로 Windows로 부팅" 설정이 UEFI 부팅 설정에 있어야 합니다.

이 예제 시스템은 현재 기본적으로 Debian으로 부팅하도록 구성되어 있으며 이것이 예제 출력을 생성하기 위해 시작된 방식입니다.

시스템에 Ubuntu로 한 번만 부팅하도록 지시하려면 sudo efibootmgr --bootnext NNNNNNNN이 BootNNNNUbuntu의 GRUB를 실행하는 줄 번호인 곳을 사용할 수 있습니다.

별도로 지시할 때까지 시스템이 Ubuntu를 기본값으로 유지하도록 하려면 sudo efibootmgr --bootorder XXXX,YYYY,ZZZZ....XXXX,YYYY,ZZZZ가 현재 BootOrder:줄에 나열된 부팅 옵션의 번호인 곳을 사용하세요.우분투의 줄 번호가 첫 번째 줄이 되도록 재정렬했습니다.

즉, 이 예제 시스템이 Windows로 한 번만 부팅되고 이후 부팅 시 기본 Debian으로 돌아가도록 하려면:

sudo efibootmgr --bootnext 0000

설정이 다시 변경될 때까지 예제 시스템을 Windows로 부팅하려면 다음을 수행하십시오.

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

이론적으로는 부팅 순서 줄에서 원치 않는 항목을 제외할 수 있지만 일부 버그가 있는 UEFI 구현에서는 누락된 항목을 임의의 순서로 부팅 순서의 끝 부분에 다시 추가할 수 있습니다. 내 경험에 따르면, 급하게 달리 할 필요가 없다면 부팅 순서를 줄이거나 늘리는 대신 부팅 순서를 다시 정렬하는 것이 가장 안전합니다.

관련 정보