Vagrant + Virtualbox 6.1.16과 WSL2를 동시에 움직인 메모

6658 단어 WSL2VirtualBoxVagrant

개요



반년 전, WSL2를 사용해보십시오. , VirtualBox를 사용할 수 없게 되었기 때문에 되돌리기 등하고 있었다.
최근 WSL2가 주위에 퍼지기 시작했기 때문에 이행했다.
그 때, VirtualBox가 이제 공존할 수 있다는 기사를 발견했다.
Windows의 버전도 올린 곳이었기 때문에, 이번이라면 갈 수 있을까라고 시도했더니 성공했다.
비망록으로서, 순서를 남긴다.

환경


  • Windows10 Home 버전 20H2(OS 빌드 19042.610)
  • VirtualBox 6.1.16 r140961 (Qt5.6.2)
  • Vagrant 2.2.10

  • 작업시 완료시의 Vagrantfile

    WSL2 사용



    Windows 기능 사용


    Windows ロゴ キー + Rキー에서 파일 이름을 지정하여 실행을 시작하고 optionalfeatures를 입력하고 OK를 누릅니다.

    Linux用Windowsサブシステム仮想マシンプラットフォーム 확인


    Linux 커널 업데이트



    관리자 권한으로 열린 Powershell에서 wsl --set-default-version 2를 입력하여 WSL2의 유효성을 확인하려고했는데 커널이 오래되었으므로 업데이트하라는 메시지가 표시되었습니다.

    Windows 10용 Windows Subsystem for Linux 설치 가이드의 【4단계 - Linux 커널 업데이트 패키지 다운로드】 「x64 머신용 WSL2 Linux 커널 업데이트 패키지」에서 업데이트용 프로그램을 DL하여 실행.

    Ubuntu20 설치



    이제 안정적일 것이고 배포판은 Ubuntu20을 선택했다.

    Windows 10용 Windows Subsystem for Linux 설치 가이드의 [6단계 - 선택한 Linux 배포판 설치]에 따라 배포판을 설치합니다. Ubuntu20을 시작하여 사용자 이름과 암호를 등록합니다.
    wsl --list --verbose로 설치되었는지 확인합니다.


    VirtualBox와의 공존 설정



    Windows 기능 사용



    Windows 하이퍼바이저 플랫폼을 활성화합니다.
    이것이 VirtualBox와 WSL2를 공존시키기 위해 필요하다.



    VirtualBox 설치



    이를 위해 VirtualBox는 WSL2를 활성화 한 후 다시 설치했습니다.cinst -y virtualbox

    시도해보기


    vagrant up로 시작하여 상황을 지켜 보았습니다.
    네트워크 설정이 몇 번이고 불안해지지만 "예""예". . . 이것은 지금까지의 VirtualBox로 복수의 IP를 사용하고 있었기 때문에 가능성이 크다.SSH auth method: private key 곳에서 멈춘다.



    전회도 여기서 멈추고 있었지만, 이번은 Vagrantfile로 vm.gui=true를 넣어 확인하고 있었는데, 셋업중에 로그인 화면이 표시되기 전에 떨어지고 있었다.
    에러 메시지에 나와 있는 대로, vonfig.vm.boot_timeout=300 (와)과 타임 아웃 시간을 늘려 준다.

    성공



    상기 수정 후, vagrant up를 한 결과, SSH에서 진행하여 무사히 기동할 수 있었다.

    2020/12/04 추가



    Windows를 다시 시작하면 SSH auth method: private key 다시 멈추는 문제가 발생했습니다.
    Vagrant box startup timeout due to no serial port을 참조하여 Vagrantfile을 수정했습니다.
    조금 기동하는데 시간은 걸리지만, 움직이게 되었다.

    Vagrantfile
    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/focal64"
      config.vm.network "private_network", ip: "192.168.50.10"
      config.vm.network "forwarded_port", guest: 9005, host: 9005
    
      # WSL2 を 有効化しているとき、ssh接続でタイムアウトしてしまうため追記。 2020.11.07
      config.vm.boot_timeout = 500
      config.vm.provider "virtualbox" do |vm|
        vm.memory = 8192
        vm.linked_clone = true
    
        vm.customize ["modifyvm", :id, "--cpus", "4", "--ioapic", "on"]
        vm.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
        vm.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
    +    vm.customize ["modifyvm", :id, "--nestedpaging", "off"]
    +    vm.customize ["modifyvm", :id, "--paravirtprovider", "hyperv"]
      end
    end
    
    

    2021.11.03 추가



    virtualbox 6.1.28 에 6.1.26 로부터 갱신하면(자), 이하의 에러로 기동할 수 없게 되었다.
    Stderr: VBoxManage.exe: error: Call to NEMR0InitVMPart2 failed: VERR_NEM_INIT_FAILED (VERR_NEM_VM_CREATE_FAILED)
    VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole  
    

    virtualbox의 스레드 보면 공존 할 수 없게 된 것 같아? bcdedit.exe /set hypervisorlauchtype off가 필요하다고 썼습니다.
  • Windows10 Home 버전 21H1(OS 빌드 19043.1320)
  • VirtualBox 6.1.28 r147628 (Qt5.6.2)
  • Vagrant 2.2.18

  • 2021.11.25 추가



    virtualbox 6.1.30에서 다시 공존할 수 있게 되었다.

    change logVMM: Fixed 6.1.28 regression preventing VMs starting when using Hyper-V mode on Windows 10
  • Windows10 Home 버전 21H2(OS 빌드 19044.1387)
  • VirtualBox 6.1.30 r148432 (Qt5.6.2)
  • Vagrant 2.2.19

  • 참고



    Windows10 Home에서 Windows용 Docker Desktop을 실행한 메모
    Windows 10에서 WSL을 비활성화하고 Virtual Box + Vagrant가 작동하도록 되돌린 메모
    WSL2와 Hyper-V의 관계
    10.5. Paravirtualization Providers

    좋은 웹페이지 즐겨찾기