가상 상자에서 EFI 셸을 벗어나는 방법 머신을 실행 중이며 항상 EFI

Mac OSX 용 가상 머신을 실행 중이며 항상 EFI 셸로 부팅되므로 이것이 무엇이며 가능한 경우 종료하는 방법에 대한 간단한 설명을 원합니다.



답변

EFI 셸은 개념 상 Linux / Unix / OS X의 bash 또는 Windows의 명령 프롬프트 창과 유사한 명령 줄 도구입니다. 파일을보고, 삭제하고, 편집하고, 이름을 바꾸고 EFI 부팅 관리자 항목 등을 업데이트 할 수 있습니다. 다음을 입력하여 쉘에서 나갈 수 있습니다 exit. 그러나 VirtualBox의 경우 혼란 스러울 수있는 EFI 메뉴가 나타납니다.

VirtualBox 세션에서 OS를 설치 한 경우 EFI 시스템 파티션 (ESP) 에 부트 로더가 설치되었을 수 있습니다 . 대부분의 OS는 이러한 부트 로더를 펌웨어에 등록하여 펌웨어를 기억하고 자동으로 부팅합니다. VirtualBox의 한 가지 단점은 일반적으로 이러한 부팅 관리자 항목을 잊어 버린다는 것입니다. 결과적으로 VM은 기본적으로 EFI 셸로 부팅됩니다. 이 문제를 처리하는 방법은 다음과 같습니다.

  • EFI 셸을 사용하여 부트 로더를 수동으로 시작할 수 있습니다.
    1. fs0:첫 번째 파일 시스템 (일반적으로 ESP)에 액세스하려면 입력 하십시오.
    2. 유형 cd EFI\{osname}, {osname}당신의 OS가 부트 로더를 설치 한 디렉토리의 이름입니다. (어떤 OS를 설치했는지 말하지 않았으므로 이것이 무엇인지 확신 할 수 없습니다. 입력 ls EFI하면 거기에 무엇이 있는지 표시됩니다.)
    3. 이름을 입력하여 부트 로더를 시작하십시오. 다시, 나는 그것이 무엇인지 알 수 없습니다. Linux의 경우 일반적으로 grubx64.efi입니다. Windows의 경우 bootmgfw.efi입니다.
  • EFI 셸 시작 스크립트 ( startup.nshESP의 루트 디렉토리에 있음)를 사용 하여 위 절차를 자동화하십시오 .
  • 부트 로더의 이름을로 바꾸십시오 EFI\BOOT\bootx64.efi.
    1. fs0:첫 번째 파일 시스템 (일반적으로 ESP)에 액세스하려면 입력 하십시오.
    2. mv EFI\{osname} EFI\BOOT부트 로더가있는 디렉토리의 이름을 바꾸려면 입력 하십시오. 위와 같이 {osname}자신이 무엇인지 결정해야 합니다.
    3. 유형 mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi, {loadername.efi}같은 부트 로더의 이름입니다 grubx64.efi대부분의 리눅스 설치합니다.
  • 쉘 도구를 사용하여 VirtualBox 펌웨어로 부트 로더를 등록하십시오. 웹 에서이 작업을 수행하는 방법에 대한 간결한 설명을 알지 못하며 여기에 쓸 시간이 없습니다. 피해야 할 명백한 함정이 많기 때문에 정확한 지침이 없으면 좌절 할 수 있습니다.

개인적으로 가장 자주 사용하는 솔루션은 부팅 로더의 이름을 OS 기본값에서로 바꾸는 것 EFI\BOOT\bootx64.efi입니다. 이것은 구현하기가 가장 쉽고 제대로 작동합니다. 이 방법의 한 가지 단점은 OS가 부트 로더를 업데이트하는 경우 업데이트가 원래 위치로 이동하므로 업데이트 된 부트 로더를 사용하려면 프로세스를 반복해야한다는 것입니다.


답변