KVM의 Windows 10 : 부팅 디스크를 Virtio로 변경


25

IDE 디스크를 사용하여 Windows 10 가상 머신을 설치했으며 이제 Virtio 드라이버를 사용하도록 디스크를 변경하고 싶습니다.

다른 버전의 Windows의 경우이 질문의 접근 방식으로 충분 합니다. IDE VM을 virtio VM으로 마이그레이션하는 방법은 무엇입니까?

그러나 Windows 10에서는 INACCESSIBLE_BOOT_DEVICE문제 가 발생합니다.

선호하는 접근 방식은 처음부터 Virtio 장치를 사용하고 프롬프트가 표시되면 적절한 virtio 드라이버를 설치하는 것입니다. 불행히도 KVM에서 CD를 변경하는 것과 관련하여 별도의 문제가있었습니다 (CDROM 장치 2 개도 작동하지 못했습니다).

다시 설치하지 않고이 문제를 해결할 수있는 방법이 있습니까?

비슷한 문제-https: //me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090


+1. 나는이 문제를 스스로 알아낼 수 없었다. 이전 버전의 Windows에 대한 다양한 해결 방법에 따라 VirtIO 블록 장치를 연결 한 후 Windows VM에 VirtIO 드라이버를 설치하려고했지만 여전히 INACCESSIBLE_BOOT_DEVICE블루 스크린이 나타납니다. VirtIO 부팅 장치에 다시 설치했습니다.
Deltik

나는 게으 르기 때문에 이것을 확인하기위한 주석으로 게시 할 것입니다 : virtio“controller”를 사용하여 추가 디스크를 추가하십시오. Windows에서 요청하면 드라이버를 설치하십시오. 파티션이나 아무것도 만들 필요가 없습니다. 그런 다음 부트 디스크를 virtio로 전환하십시오. 컨트롤러 드라이버 인스턴스가 설치되었으므로 (매우 중요) 작동해야합니다.
Daniel B

@DanielB : 그것이 바로 내가 한 일입니다. 귀하의 제안은 이전 버전의 Windows에서는 작동하지만 Windows 10에서는 작동하지 않는 것으로
보입니다

흠. 그렇다면 문제를 해결하지 않는 가장 좋은 방법은 다음과 같습니다. (lol) : Windows ISO를 수정하고 드라이버를 포함하십시오. 부팅 가능한 상태를 유지해야합니다. 그렇게하면 (희망스럽게) virtio에 바로 설치할 수 있습니다.
Daniel B

1
@DanielB : VirtIO 드라이버는 별도의 드라이버 디스크를 사용하여 설치 과정에서로드 할 수 있습니다. VirtIO 드라이버와 함께 Windows 10이 설치된 경우 아무런 문제가 없습니다. 인터넷에서 Windows를 IDE에서 VirtIO로 전환하는 기존 지침이 Windows 10 KVM 가상 머신에서 작동하지 않는 것입니다.
Deltik

답변:


24

모든 답변은 정확하지만 virtio 드라이버를 설치 한 후 몇 가지 추가 단계 를 수행해야 할 수도 있습니다. 내가 따르는 단계는 다음과 같습니다.

  1. 관리자 권한 명령 프롬프트를 열고 다음을 입력하여 VM을 안전 모드로 부팅하도록 설정합니다

    bcdedit / set {현재} safeboot 최소

  2. VM을 종료하고 부팅 장치 유형을 virtio로 변경하십시오.

  3. VM을 부팅합니다. 안전 모드로 들어갑니다.

    참고 : 안전 모드에서는 virtio 드라이버를 포함하여 모든 부팅 시작 드라이버가 활성화되고로드됩니다. 미니 포트가 설치되어 있으므로 커널은 부팅시로드 될 드라이버의 일부로 만들고 다시 비활성화하지 않습니다.

  4. 부팅 된 VM에서 bcdedit 설정을 재설정하여 다음 명령을 입력하여 시스템이 일반 모드로 부팅되도록합니다 (높은 명령 프롬프트에서 다시).

    bcdedit / deletevalue {현재} safeboot

  5. 끝난.


1
환상적인! 이것은 나를 위해 빠진 비트였습니다. 내가 사용 bcdedit /set safeboot minimal를 생략, {current}내가 거기에 가기로되어 있었는지 확실하지 않았기 때문에.
Charles Green

2
@CharlesGreen {current}은 리터럴이므로 그대로 입력하십시오.
Marc.2377

비밀번호 로그인에 네트워크 액세스가 필요할 수 있으므로 PIN 로그인이있는 경우 문제가 발생합니다. 결과적으로 Windows를 다시 설치하고 있습니다. answers.microsoft.com/en-us/windows/forum/windows_10-security/…
Andrew Olney

로그온 문제를 피하기 위해 1 단계에서 bcdedit / set {current} safeboot 네트워크를 사용해 보았습니다. 또한 로컬 사용자를 추가로 안전하게 만들었으므로 문제가 실제로 적용되지 않는다고 생각합니다. 도메인에 연결되어 있고 내가 잘못한 일이 없도록하기 위해 원하는 모든 것을 제어 할 수 없습니다. 그리고 네트워크 매개 변수는 적어도 프로세스를 망쳐 놓지 않았습니다.
HackerBaloo

어떻게 1), 즉, 높은 프롬프트?
Frederick Nord

16

상당히 간단한 답변이 제공 되며 다른 옵션에 대한 힌트와 함께 많은 경우에 효과적 일 수 있습니다. (나와 같이) IDE로 전환 할 수없고 VirtIO를 사용해야하는 경우 다음과 같은 대체 방법이 작동 할 수 있습니다.

  1. Windows 10 DVD / CD ISO 및 virtio 드라이버 ISO를 모두 VM에 추가하십시오.
  2. Windows 10 DVD / CD를 부팅하고 복구 모드 옵션에서 명령 프롬프트를 시작하십시오.
  3. CLI를 통해 드라이버로드 drvload e:\viostor\w10\amd64\viostor.inf
    • 필자의 경우 e : virtio 설치 ISO가 할당 된 곳입니다.
    • 드라이버를로드 한 후 f :는 Windows 설치가 마운트 된 위치입니다.
  4. DISM 명령을 사용하여 스토리지 컨트롤러 드라이버를 주입하십시오.
    • 예 : dism /image:f:\ /add-driver /driver:e:\viostor\w10\amd64\viostor.inf
    • 위와 같이 자신의 환경에 따라 드라이브 문자 할당을 변경하십시오.

특별한 윈도우 부팅 CD / 이미지를 만들고 실제 윈도우 설치 이미지를 '패치 (patch)'하는 것을 피할 필요가 없습니다.

이 틈새 사례의 경우 시동 복구를 피하는 것이 좋습니다 (실패했습니다). vistor.inf를 올리는 방법을 알지 못하는 것 같으며, 시도한 경우 모든 것을 복원하거나 재설치하기 위해 Windows 10의 DVD 열망을 피하십시오 ...

DISM 접근 방식에 대한 크레딧 : dism을 사용하여 드라이버 추가


1
4 대안 : inf 파일-> 설치를 마우스 오른쪽 단추로 클릭하십시오.
rbs

또한 Windows 업데이트로 인해이 문제를 해결하십시오. reddit 게시물에 따라 "업데이트로 인해 VirtIO 드라이버가 지워졌습니다": reddit.com/r/VFIO/comments/6b06y5/… . Windows 설치를 이중 부팅 및 VM 모두로 실행하고 기본 하드웨어에있을 때 업데이트를 적용 할 경우 이러한 상황이 발생할 수 있습니다.
JPvRiel

1
이것과 아래 답변이 있습니다. 안전 모드 (bcdedit / set {current} safeboot minimal)로 부팅 한 다음 안전 모드 부팅 (bcdedit / deletevalue {current} safeboot)을 제거한 다음 다시 시작해야했습니다. 그 후 Windows Server 2016 Essentials와 함께 작동했습니다.
G Trawo

10

일반적으로 따라야 할 단계는 다음과 같습니다.

  1. VM에 VirtIO 드라이버 설치
  2. VirtIO를 사용하도록 VM의 시스템 디스크 설정
  3. VM이 부팅되지 않으면 시동 복구 또는 복구 설치를 실행하십시오.

절차 세부 사항은 다음과 같습니다

  1. 부팅 디스크를 IDE로 되돌립니다.
  2. Windows VM이 종료되었는지 확인하십시오.
  3. 여기 에서 VirtIO 드라이버 ISO를 다운로드 하십시오 .
  4. VM의 CD 드라이브에 마운트하십시오.
  5. VirtIO 유형의 저장 장치를 추가하십시오. 크기 할당은 드라이버를 설치하는 데 사용되므로 중요하지 않습니다.
  6. Windows VM을 시작하십시오. 드라이버 설치를 시도합니다. 그렇지 않으면 장치 관리자를 열고 SCSI 장치 옆에 느낌표 아이콘이 표시되어 있어야합니다. 드라이버를 업데이트하고 마운트 된 ISO의 적절한 디렉토리를 가리 키도록 선택할 수 있습니다. 일단 설치되면 재부팅하지 말고 컴퓨터를 종료하십시오.
  7. Windows 용 virt-manager 설정에서 스토리지 유형을 IDE에서 VirtIO로 변경하십시오.
  8. 이전에 만든 저장 장치를 제거 할 수 있습니다. 더 이상 필요하지 않습니다.
  9. Windows를 시작하면 부팅되고 SCSI 드라이버가 설치됩니다. 그런 다음 재부팅해야합니다.
  10. VM이 부팅되지 않지만 드라이버가 설치된 경우 다음을 시도 할 수 있습니다.

    1. Windows가 시작되지 못하게 할 수있는 특정 시스템 문제를 해결할 수있는 시동 복구 .
    2. 마지막 해결 방법 : 복구 Windows 10 ISO에서 부팅하는 동안 설치복구 하십시오. 이렇게하면 모든 응용 프로그램과 사용자 설정이 유지되며 Windows를 새로 고치거나 부팅하기 만하면됩니다. 최신 Windows 10 ISO를 사용하십시오.

불행히도 마지막 단계가 필요한 경우 Windows 부팅 CD가 VirtIO 디스크를 이해할 수없는 경우가 있습니다. 이러한 드라이버가 Microsoft에 포함되어 있지 않기 때문입니다. 이 경우 이러한 드라이버가 포함 된 사용자 정의 부팅 CD / USB를 만들어야하지만 최신 버전 (현재 1511)을 가져와 설치와 동일한 수준의 Windows ISO에서 시작해야합니다.

다음은 Windows에서 드라이버를 슬립 스트림하는 방법에 대한 자습서입니다.


이 대답은 9 단계에서 부팅하려고 할 때 INACCESSIBLE_BOOT_DEVICE 오류가 있습니다 (질문을 게시했을 때의 위치)를 제외하고는 Windows의 다른 버전에서도 작동합니다. 시동 복구 (10.1)가 작동하지 않으며 실제로 10.2 단계가 불가능합니다. 복구 설치는 먼저 CD없이 시스템을 부팅 한 다음 CD에서 실행해야만 수행 할 수 있습니다 setup.exe. 이것은 질문의 링크가 설명하는 것이며 내가 할 수있는 다른 방법은 없습니다.
Graeme

정확히 어떤 다른 정보를 제공해야합니까? 나는 옵션이 없다고 반복해서 말했다. 여기서 문제는 당신이 그것을 계속 주장한다는 것입니다. '인터넷에있는 다양한 기사에 수십 개의 다른 기사가있는 경우'를 참조하십시오. 설치된 시스템을 먼저 부팅 setup.exe하고 CD에서 실행하지 않고 CD로 부팅하고 복구 설치를 시작하는 방법을 설명하는 기사를 링크하십시오 . 신뢰할 수있는 출처의 기사 하나만 링크하면 거짓말을하지 않으며 사과하고 귀중한 공감대를드립니다.
Graeme

예를 들어 설치 미디어에서 Windows 10에서 시동 복구를 수행하는 방법에 대한 이 비디오 를 참조하십시오 . 그렇지 않은 경우 명령 프롬프트를 사용해보십시오 . 위에서 말했듯이 슬립 스트림 ISO가 필요할 수 있습니다. WIn10 설치에 VirtIO 드라이버가 포함되어 있는지 잘 모르겠습니다.
harrymc

또는 부팅 된 Windows PE 설치 이미지에 VirtIO 드라이버를 추가 하기 위해 drvload 방법 을 적용 할 수 있습니다 .
harrymc

2
위의 대답은 훌륭하고 간단하게 보이지만 불행히도 pc-q35-2.5머신 에뮬레이션 / 유형을 사용하는 VM 에서는 IDE 컨트롤러를 추가 할 수 없습니다.
JPvRiel

5

harrymc의 답변이 저에게 효과적입니다.

다음 단계를 수행했습니다.

  1. Windows에서 virtio 드라이버 설치
  2. "더미"virtio 디스크를 추가하십시오. 재부팅하고 "더미"가 작동하는지 확인하십시오.
  3. 2 단계가 작동하면 부트 디스크를 virtio로 전환하십시오.
  4. 재부팅
  5. 추가 "더미"virtio 디스크 제거
  6. ...

답변으로 "감사"를 추가하지 마십시오. 사이트에 시간을 투자 하면 원하는 답변을 찬성 할 수있는 충분한 권한 을 얻을 수 있으며, 이는 수퍼 유저가 고맙다는 말입니다.
DavidPostill

1
이것은 과소 평가 된 답변입니다-Proxmox Windows 10에서 모든 드라이버를 설치 한 후에도 초기화하는 데 문제가있었습니다. VirtIO 블록 장치로 작은 1GB 디스크를 생성하고 VM을 시작하고 올바르게 표시되는지 확인한 다음 주 드라이브를 종료하고 VirtIO로 변경해야했습니다. Windows 10에서 HDD 드라이버를 올바르게 감지하지 못했기 때문에 부팅하기 전에 HDD를 동축하여로드 할 때로드해야했습니다.
Albert H

3

불행히도 드라이버를 완벽하게 설치하고 여전히 "액세스 할 수없는 부팅 장치"를 얻는 것은 가능합니다. 그 이유는 약간 충격적입니다. Win 10 설치는 처음 설치할 때 필요한 드라이버를 "기억"하며 기본적으로 부팅시 다른 스토리지 드라이버를로드하지 않습니다. 이것은 "해적판"인 것으로 보입니다. 다른 하드웨어에서 "동일한"설치를 실행하기가 어렵습니다. 이 게시물 의 gentoo 포럼 에서이 "기능" 대한 훌륭한 문서가 있습니다. 본질은 다음과 같습니다.

부팅시로드 금지 대상 드라이버는 다음과 같이 확인할 수 있습니다. 레지스트리 키 Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services에는 설치에 알려진 모든 드라이버에 대해 하나의 하위 키가 있습니다. 이 하위 키의 이름은 드라이버의 이름 일뿐입니다. 각 드라이버 하위 키에는 부팅시 해당 드라이버가로드되지 않도록하는 경우 "STARTOVERRIDE"하위 키가 있습니다. 특히 STARTOVERRIDE 하위 키에는 이름이 "0"인 매개 변수가 있습니다. 이 매개 변수의 값이 "3"이면 부팅시로드되지 않습니다. 이 값을 0으로 설정하면 동작을 '재정의'합니다.

나 스스로 Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services로 이동하여 "STARTOVERRIDE"를 검색하십시오. 찾을 때마다 "3"이라는 값을 가진 "0"이라는 이름이 있으면 "0"으로 변경됩니다. 이것은 과도하게 보입니다.로드해야하는 드라이브 만 변경하면됩니다. 내 경우에는 그중 몇 가지가 있으며 어느 것을 기억하지 못하므로 해당 '서비스'섹션에서 "F3- 검색"을 수행합니다.

그리고 현재, 서명 된 virtio 저장에는 필요하지 않지만 (아직) 서명되지 않은보다 실험적인 드라이버를 사용하려는 경우 다른 사람이 읽을 수있는 마지막 팁 : 위의 작업을 수행 한 후에도 EVEN 트릭, 고급 옵션 화면으로 부팅하고 F7 ( "드라이버 서명 확인 비활성화")을 선택해야했습니다. 기계가 BCD를 읽고 서명을 확인할 필요가 없다는 것을 알기 때문에 드라이버를로드해야하기 때문에 드라이버 검증을 비활성화하기 위해 bcd 플래그를 설정하는 것만으로는 충분하지 않습니다.

마이크로 소프트의 가장 빛나는 시간이 아니라 전부. 사람들이 SATA 디스크를 NVMe 디스크로 교체하여 "정상 작동"하게하는 것보다 합법적 인 사용자에게 인공적인 블루 스크린을 만들려면 실제로 사용자를 미워해야합니다.


많은 세부 정보를 제공해 주셔서 감사합니다. 이것이 가장 실행 가능한 솔루션입니다! 하나의 regfile을 가져 와서 모두 해결하십시오.
Florian Heigl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.