# Windows vm

참고 페이지 :

* <https://support.opennebula.pro/hc/en-us/articles/360042898271-How-to-Build-an-Image-for-Windows-Virtual-Machines>
* <https://www.youtube.com/watch?v=YxYrBb7UfQc>

## 이미지 생성 준비 파일

1. Windows 10 ISO 파일
2. Virtio ISO 파일
3. One context ISO 파일

### Windows 10 iso 파일 다운로드

ms site에서 다운로드후 /var/tmp에 저장후 import

### virtio iso 파일 다운로드

<https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md>

윈도우 용을 다운한후 import한다.

```sh
wget --no-check-certificate https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240.iso
```

### one context iso 파일 다운로드

VM생성시 네트워크 자동 설정 및 환경설정 해주는 파일

다운로드후 import

```sh
cd /var/tmp
wget https://github.com/OpenNebula/addon-context-windows/releases/download/v5.12.0/one-context-5.12.0.iso
```

## 이미지 생성하기

1. 윈도우 이미지 파일 불러오기

* TYPE에서 CD-ROM 선택 후 이미지 로케이션에서 UPLOAD 체크후 ISO 파일을 업로드 한다

![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-8bfaecb43c1932c5127f8e468420fef9e1949232%2Fwin-1.png?alt=media)

또는 서버에 업로드후 import를 한다.

![](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-713d8f4a5f281d66f3be51edb3e3c0bc9360ec4f%2F2023-11-27-10-54-44.png?alt=media)

2. One context 이미지 파일 불러오기

* 윈도우 ISO와 동일 하게 TYPE에서 CD-ROM 선택 후 이미지 로케이션에서 UPLOAD 체크후 ISO 파일을 업로드 한다.

또는 서버에 업로드후 import를 한다.

![](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-c8bea4b3481c168c168a8ef67bc04c1fe81ca35e%2F2023-11-27-11-00-29.png?alt=media)

3.Virtio 이미지 파일 불러오기

<https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md>

예전버전 확인 :

<https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/>

```sh
wget --no-check-certificate https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.173-9/virtio-win.iso
```

최신버전으로 하면 드라이버가 사인이 안됫다고 에러가 난다. 오래된 버전으로 해보자.

4. 윈도우 10 설치하기 위해 하드 디스크 타입을 생성한다.

* TYPE에서 Generic storage datablock를 선택한다
* This image is persistent 옵션에서 YES를 선택한다 (이건 아마 no여도 상관없을듯)
* Image location 옵션에서 Empty Disk Image를 선택후 하드 디스크 용량 설정후 생성한다

![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-258502a78cb4dcdbb6bc9d824d1fcea573af7eb2%2Fwin-2.png?alt=media)

![](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-09df299d9ffa0a5aca2b5d4a96472a08b7cb1bc8%2F2023-11-27-10-57-15.png?alt=media)

## 윈도우 템플릿 생성후 설치 하기

### 템플릿 생성하기

1. Templates > VMs 에서 생성하기
2. General 탭에서 Name, Memory, Physical CPU, Virtual CPU 데이터를 넣는다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-1159ea9a512bc9d879fc0dccb099658b5b81d608%2Fwin-3.png?alt=media)
3. Storage 탭에서 위에서 생성한 ISO CD-Rom 타입 전체와 하드타입으로 생성한 이미지 파일을 불러온다
   * Disk 0 번에는 윈도우 설치 파일 이미지 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-621239ed980fc3728e25d6104abdd084a22aeaa5%2Fwin-4.png?alt=media)
   * 추가 버튼 클릭후 Disk 1 번에는 Virtio ISO 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-b6a75494a975dbd46e81d1c45c1c964b876cef91%2Fwin-5.png?alt=media)
   * Disk 2 번에는 One context ISO 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-1ab72fae43294e4b0c8f9eebb8a50187dc3173fc%2Fwin-6.png?alt=media)
   * Disk 3번에는 VM에서 사용할 하드디스크 이미지 파일을 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-0dc90285f85ff56b6d70b58ab36e46520288ef7d%2Fwin-7.png?alt=media)
   * Disk 3번에서 Advanced options 선택후 BUS 데이터를 Virtio를 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-c3ff7230cff69485d19f6cbac7bf06093b3a6b6b%2Fwin-8.png?alt=media)
4. Network 탭에서 사용할 네트워크 타입을 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-a45acc7e8219ed27404c0f83251fbee34b197798%2Fwin-9.png?alt=media)
5. OS & CPU 탭에서 윈도우 부팅시 실행 할 파일 윈도우 설치 ISO를 선택한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-cbbb8d5e97414b28f6bc7454c0e6359520ba4d97%2Fwin-10.png?alt=media)
6. Input/Output 탭에서 인풋 타입을 설정한다
   * 타입은 Tablet , BUS는 Usb로 선택후 ADD 를 한다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-5777e9914586f3923e7e7450ff4ee3388f9d28e4%2Fwin-11.png?alt=media)
7. NUMA 탭에서 윈도우 게스트 환경에서 CPU 관리화면을 원활하게 보이기 위해 아래와 같이 설정한다
   * 아래와 같이 설정해야 CPU를 등록 한 수만큼 윈도우에서 사용할수 있다 ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-50f037c9130cbe8fa9a1d4881bd3f50446e9fa4b%2Fwin-12.png?alt=media)
8. 모든 환경 설정 완료 후 Create를 클릭한다

### 인스턴스 생성하기

1. Instances > VMs 에서 생성하기
2. 위에서 생성한 윈도우 템플릿을 선택 후 아래 정보를 다시 한번확인후 생성한다

![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-36f1f8e30f96768aed9e3b4e3b6fd1496f1bcca7%2Fwin-13.png?alt=media)

### 인스턴스 접속후 윈도우 설치 하기

1. 해당하는 인스턴스 VNC 접속한다
2. 윈도우 설치 화면에서 설치 하기 클릭한다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-7b7a6ebceb0e004851cb23e3adf4ce89831c5994%2Fwin-14.png?alt=media)
3. 설치시 하드디스크 를 찾아 올수 없어 불러오기 해야 한다

   * Load Driver 클릭한다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-5d9d9377a3ad147384a2e8abf4b34360f53ba265%2Fwin-15.png?alt=media)

   * 팝업이 뜨면 OK 클릭한다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-74c48f4fa2677fdd118ce50f12e21bde1d0d0305%2Fwin-16.png?alt=media)

   * 전체 항목을 선택 후 Next를 클릭한다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-5e8bb9fc0a63244bc03e8c5a430396598bc0467a%2Fwin-17.png?alt=media)
4. 하드디스크를 불러온것을 확인이 가능해진다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-9e6c94b237e0701a8bcde80564da64dbe442ebe8%2Fwin-18.png?alt=media)
5. 윈도우 설치를 이어서 계속 진행 하면 된다
6. 윈도우 설치완료 후 내컴퓨터에서 One-context를 설치 한다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-f8339b2cff813882dfa45edd86c75e8e3e1f1e48%2Fwin-19.png?alt=media)
7. 윈도우 device manager에 들어간다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-0abf8bc5b7213224a915043eeeee32f7b45d65ca%2Fwin-20.png?alt=media)
8. 정상적으로 설치 안된 파일을 선택하여 업데이트를 해준다

   * 업데이트 파일은 Virtio CD드라이브 폴더를 선택후 업데이트 및 설치를 하면 된다

   ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-e51b5809445eb8d3373f55e9e27d2e99c70cc6f9%2Fwin-21.png?alt=media)
9. 윈도우 설치 모든 과정은 끝나 Persistent 윈도우 이미지 파일을 모든 인스턴스에 사용할 수 있게 설정하기 위해 윈도우를 종료 한다
10. Instances 메뉴에서 윈도우 설치한 인스턴스를 삭제한다.
11. Templates > VMs 메뉴에서 해당하는 윈도우 템플릿에 들어가 CD-ROM 데이터를 전체 삭제한다

    * DISK 0 \~ 2 번 삭제 하면 된다 HDD는 삭제 하면 안된다

    ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-a13cfeb6ae56498d1a7e87e1c5eba737388c7e46%2Fwin-22.png?alt=media)
12. Storage > Images 메뉴에 들어간다
13. 윈도우를 설치한 이미지 파일인 Windows 10 HDD 선택후 옵션을 조정한다

    * TYPE을 OS로 변경한다
    * Persistent를 NO로 변경한다

    ![image](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-30fe881874535aa2401cdf6ca2711bae9c5454c2%2Fwin-23.png?alt=media)
14. 모든 설정 끝

## 추가

최신버전으로 다시 설치해보면 windows 10이 설치가 안된다.

virtio driver가 윈도우 sign이 안됬기 때문인데 어떻게 해결할지 아직 모르겟다.

현재는 로컬에서 설치해서 vm image를 raw로 만들어서 오픈네뷸라에 업로드해서 처리해보는중
