Windows10への無料アップグレードが7月末までとのことなので、kvm上のWindows7を更新ではなく、クリーンインストールしようと思います。
前提条件
既に仮想マシンとしてWindows7/8/8.1がインストールされている必要があります。
ISOイメージの準備
1. Windows7を起動
2. Windows10を入手するへアクセスして「ツールを今すぐダウンロード」をクリックし、ツールを起動する。
3. 他のPC用にインストールメディアを作るを選択
4. 使用するメディアの選択で、ISOファイルを選択
5. ISOファイルを保存する
6. Windows7をシャットダウンする
VMへデバイスの追加
ここで新しい仮想マシンを作ってしまうと、インストールメディアを作ったハード情報と違ってしまうので、アップグレード対象にはならず、ライセンスを入力しても別のハードウェアで使用されています、となって認証できない。
2. CD-ROMドライブを2つ作り、片方へ作成したインストール用ISOファイルを、もう片方へ、VirtIO用のドライバをセットする
ドライバは、ここからダウンロード。しかし、最新のドライバはなぜか認識されなかったので、昔ダウンロードした、virtio-win-0.1-74.isoを使用した
なお、バスの種類をIDEやSCSIにすれば上記ドライバは不要だが、I/Oのアクセス速度はVirtIOのほうが早い
3. 起動デバイスをCD-ROMと追加したディスクにする
インストール
- VMを起動
- ライセンス認証でプロダクトキーがありませんを選択
- インストール場所の選択で、ドライバーの読み込みを選択、ドライバのあるCD-ROMドライブのフォルダを選択してドライバを読み込むと、インストール先が見えるようになる
- あとは、普通にインストールを行う
- 認識されないデバイスは、VirtIO用のISOからドライバをインストールする
VM上でCPUが2つしか認識されない時
CPUの割当を2つより多くしても、Windowsでは2つまでしか認識されなかったりする。これは、Windowsが2ソケットまでしか対応していないためとのこと。
そのためCPUのトポロジー設定で、ソケット数:1 コア数:n とすると2つ以上のコアが認識される
virshからだとこんな感じ。
<vcpu placement='static'>4</vcpu>
<cpu mode='host-model'>
<model fallback='allow'/>
<topology sockets='1' cores='4' threads='1'/>
</cpu>
参考:Why does my Windows 7 VM running under Linux' KVM not use all the virtual processors?