BIOS 설정 없이 Ubuntu로 재부팅

BIOS 설정 없이 Ubuntu로 재부팅

Ubuntu 22 및 Windows 11이 설치되어 있고 부팅 우선 순위가 Windows로 부팅되도록 설정된 원격 PC(팀 뷰어를 통해 연결)가 있습니다. 현재 Ubuntu 22로 부팅했는데 CUDA 문제로 인해 컴퓨터를 다시 시작해야 합니다. 현재 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 컴파일러 드라이버 저작권 (c) 2005-2023 NVIDIA Corporation Fri_Sep__8_19:17:24_PDT_2023 Cuda 컴파일 도구, 버전 12.3, V12.3.52 빌드 cuda_12. .3/컴파일러.33281558_0

답변1

Windows 11을 사용하고 있으므로 시스템이 UEFI 모드로 부팅되어야 합니다. 따라서 이 sudo efibootmgr -v명령을 사용하여 Linux에서 부팅 순서 및 기타 부팅 설정을 볼 수 있습니다.

다음과 같이 출력되어야 합니다.

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으로 부팅하도록 구성되어 있으며, 이것이 예제 출력 생성을 시작하는 방법입니다.

sudo efibootmgr --bootnext NNNN시스템에 Ubuntu로 한 번만 부팅하도록 지시하려면 NNNN이 BootNNNNUbuntu 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 구현에서는 누락된 항목을 임의의 순서로 부팅 순서의 꼬리에 다시 추가할 수 있습니다. 내 경험상 긴급한 필요가 없으면 부팅 순서를 줄이거나 늘리는 것보다 부팅 순서를 다시 조정하는 것이 가장 안전한 방법입니다.

관련 정보