QEMUことはじめ

筆者は、Windows上での仮想マシンにはVirtual BoxかHyper-Vしか使ったことがありませんでした。QEMUという単語自体は聞いたことがありましたが、コマンドで操作するのがVirtual Boxなどに比べて大変そうだと思い使っていませんでした。
しかし最近、新しいWindowsマシンに仮想マシンをセットアップするときにQEMUを使ってみたくなったので、どんなことをしたのか書きます。今回はQEMUで作った仮想マシンにDebianをインストールすることを目標にします。
## 環境
- Windows 11 Pro
- QEMU
- Debian 12.11.0

## まずはインストールしよう
はじめに、[QEMUをインストールする方法(Ver.9.0.x)](https://kb.seeck.jp/archives/23332)に従い、https://qemu.weilnetz.de/w64/ からダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/abfb1ffb-9654-437d-bc2a-fcd2c5ff68be.png)
現時点で最新の物を選んでみました。インストーラはWindowsでよくあるタイプなので特に難しい点はありませんでした。

また、自動でパスが通されなかったので、設定しました。筆者の場合、`C:\Program Files\qemu`にインストールされました。設定方法は[Windows 10 環境変数を設定する方法](https://kb.seeck.jp/archives/15250)を参考にしてください。

## Debianをダウンロードしよう
Debianのインストール・メディアをダウンロードします。実機にインストールするときにも、この方法を使うと無難です。
まず、https://www.debian.org/distrib/ へアクセスします。図のリンクをクリックし、待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/30e584ef-6ef9-4429-bf63-ffb7ec23edb7.png)
このリンクは、x64マシン向けのインストール・ディスク・イメージをダウンロードするのに使います。[^1]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/e8b28485-fbd8-4bb6-989e-46eb2f49c968.png)
ダウンロードできました。

## 仮想HDDを作ろう
:::note warn
何回も失敗してこのパラメータになりました。
:::


QEMUの使い方はhttps://wiki.debian.org/QEMU を参考にします。この記事はDebian上で実行するときのチュートリアルですが、流用できそうです。
また、[3.4. 必要な最低限のハードウェア](https://www.debian.org/releases/////bookworm/mipsel/ch03s04.ja.html)によると、デスクトップ環境を使いたい場合、
- RAMは1~2GB
- HDDは10GB

程度が推奨されているようです（これを知らなかったことで、人生初のディスク・フル・エラーを見ました）。


まず、仮想ハード・ディスク・ドライブを作ります。ここで、チュートリアルは次の方法を示しました（チュートリアルは2GBを指定していました、きっとデスクトップを使わないのでしょう）。
```powershell:互換性がある方法
qemu-img create debian.img 2G
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/0abbb626-819c-49d3-ba49-35cb230d7fda.png)
悲しいことに、Virtual Boxの「可変サイズ」機能のように少しずつファイル・サイズが大きくなると思っていましたが、すぐに2GBを消費されました。[^2]

そこで、QCOW2という別のフォーマットを使えます。
```powershell:サイズが軽くなる方法
qemu-img create -f qcow2 debian.qcow 10G
```

他のソフトからも読み書きする場合は`.img`などにするべきかもしれませんが、ディスクを重くするのは嫌なのでQCOW2を使うことにします。

## Debianを起動しよう
いよいよ、QEMUの仮想マシンでDebianのインストール・ウィザードを起動します！
```powershell:仮想マシンの起動コマンド（インストール）
qemu-system-x86_64 -hda debian.qcow -cdrom debian-12.11.0-amd64-netinst.iso -boot d -m 1024
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/50476830-9abc-4894-9390-606a35a282cc.png)
起動しました！！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/87053b62-2f5d-4642-a5c2-642651447569.png)

グラフィカルな画面になって嬉しいです。

しかし、正直少し操作がしにくいです。自分のマウスと仮想マシンのマウス・ポインタがズレている、という感覚です。そんなときは次の方法を試してください。
まず、マウス・ポインタが表示されたら、好きなタイミングで`Ctrl + Alt + G`を押します。するとWindowsのマウス・ポインタが戻るので、Debian上のポインタと同じ場所でクリックすると、ポインタの「ズレ」がなくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/97c4aeaf-e422-44ff-860c-6751c722e621.png)
図のようなポインタをクリックすると、またDebianで作業できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/2038381c-0422-4ece-b3ee-a5d63f7bcb59.png)
また、仮想マシンのスペックは設定次第ですがそこそこなので、デスクトップ環境を使わないか、軽いものにしましょう。

随分と待って、ようやくインストールが終了しました。QEMUを終了して、次に通常起動をします。次のコマンドで出来ます。

```powershell:仮想マシンの起動コマンド
qemu-system-x86_64 -hda debian.qcow -boot d -m 1024
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3085782/200b8163-5068-44cb-b1d8-4db72122d1dc.png)

ついに目標達成です！

## 使ってみた感想
起動オプションが悪かったのかもしれませんが、正直これならHyper-VやVirtual Boxのほうが使いやすいと感じました。デスクトップ環境も重たいです。なので、これから使うとしたら、
- もっとオプションを調べて快適にする
- 実機のようなWSLとして、デスクトップ環境を無効にして使う

あたりかな、と感じました。

最後まで読んでいただきありがとうございました！

[^1]:amd64とかarm64とかよくわかりません。適当です
[^2]:本当は消費してないのかな、やっぱりよくわからないので適当です。