Hyper-V上でLinuxを動かす
Hyper-V上でLinuxを動かす
WSL2やDocker for Windowsを利用する場合、Hyper-Vを有効化する必要があります。
この場合、VirtualBoxを同時に利用することはできません。
WSL2やDockerでは、GUIがないため、Linux独自のGUIアプリであったり、画像・映像等に関わるものを気軽に試すことができません。(Westonとかも触ってみたいし)
そこで、Hyper-Vを使って、Linux仮想マシンを作成してみることにしました。
Hyper-Vでは自分で好きなディストリビューションを使用することができますが、デフォルトでは解像度が固定とかなり不便です。
linux-vm-toolsというMicrosoft製のツールを使用することで、解像度を変更することができます。
ですが、残念ながらこのツールは公式でリリースされているUbuntuでないとうまく動作しないようです。
Lubuntu18.04で試しましたが、うまく動作しませんでした。
ですので、今回使用するディストリビューションはUbuntu18.04とします。
Hyper-Vクイック作成
以下の手順を実行する前に、Hyper-Vを有効化する必要があります。
Hyper-V有効化の方法はここでは扱いません。
スタートメニューから[Windows管理ツール] > [Hyper-Vクイック作成]でHyper-V クイック作成を起動します。
Hyper-Vの管理ツールはHyper-V マネージャーなのですが、そこから仮想マシン作成だけ切り出したのがHyper-Vクイック作成のようです。
選択後、左側のオペレーションシステムの選択からUbunutu18.04.2 LTSを選択します。
その他のオプションを選択し、名前を適宜変更します。
上記実行後、[仮想マシンの作成]を実行します。
仮想マシンの作成が完了したら、[接続]の前に、[設定の編集]を行います。
設定では、仮想マシンにデフォルトで割り当てるメモリ量(動的メモリを有効にしておけば、RAMのサイズは勝手に伸縮するようです)や仮想ハードディスク、チェックポイント(差分バックアップ)の保存場所の指定等が可能です。
チェックポイントは便利ですが、後から仮想ハードディスクの容量を変更することが出来なくなる(チェックポイントをリセットすれば一応可能ではある)ので、注意が必要です。
設定が完了したら、[接続]を実行し、起動します。
起動後はインストールするディストリビューションに合わせてインストールの手順を実行します。
Hyper-Vというロゴが表示される場合、インストールメディアがうまく刺さっていない場合があります。
[メディア]メニューからDVDドライブを選択し、インストールに使う、isoファイル等を指定してから、再度起動する必要があります。
linux-vm-toolsのインストール
Hyper-V上のLinuxはインストール直後は解像度が固定だったり、不便な面が多いです。
これはMicrosoftがリリースしている、linux-vm-toolsをインストールすることで改善が可能です。
上記のUbuntu18.04.2 LTSをインストールしている場合はデフォルトでインストールされているため、以下の手順は不要です。
- Ubuntu18.04相当の場合
自動ログイン機能は無効化しておく必要があります
$ wget https://raw.githubusercontent.com/Microsoft/linux-vm-tools/master/ubuntu/18.04/install.sh
$ sudo chmod +x install.sh
$ sudo ./install.sh
仮想マシンのシャットダウン後、Windows Power shellを管理者権限で実行し、以下のコマンドを実行します。
Set-VM -VMName <VMの名前> -EnhancedSessionTransportType HvSocket
実行後、仮想マシンを起動すると、画面解像度を聞かれるので、好きな解像度に変更可能です。
解像度を変更すると見慣れないログイン画面が現れますが、そのままLinuxのユーザーアカウントでログインします。
性能向上のための手順
I/Oスケジューラを変更
I/Oスケジューラをnoopに変更するために、以下のファイルを編集。
- /etc/default/grub
- GRUB_CMDLINE_LINUX=""
+ GRUB_CMDLINU_LINUX="elevator=noop"
Grub設定をアップデート
$ sudo update-grub
GRUBタイムアウト値を変更
- /etc/default/grub
- GRUB_TIMEOUT=0
+ GRUB_TIMEOUT=5
Grub設定をアップデート
$ sudo update-grub
mountオプションを変更
- /etc/fstab
- LABEL=desktop-rootfs / ext4 errors=remount-ro 0 1
+ LABEL=desktop-rootfs / ext4 errors=remount-ro,noatime 0 1
仮想ハードディスク拡張
チェックポイントを使用している場合
チェックポイントを無効化する: 仮想マシンの設定画面のチェックポイントから無効化
チェックポイントを削除する: Hyper-Vマネージャで仮想マシンを選択するとチェックポイントツリーが見えるので親ノードを削除(これでチェックポイントが統合される)
Hyper-Vの設定でチェックボックスをリセットする
仮想マシンの設定画面もしくはHyper-Vマネージャからディスクを編集してディスクを拡張する
Ubuntu上でパーティションを拡張する
$ sudo parted
(parted) resizepart 1
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? Yes
End? [11.8GB]? 100%
(parted) quit
- Ubuntu上でファイルシステムを拡張する
$ sudo resize2fs /dev/sda1
- Ubuntu上でパーティションにラベルを付ける
$ sudo e2label /dev/sdb1 WORK
$ sudo e2label /dev/sdb1
WORK
- Ubuntu上で/etc/fstabを編集
LABEL=WORK /home/<you>/work ext4 errors=remount-ro,noatime,discard, 0 2
- マウント
$ sudo mount /dev/sdb1 ~/work
Hyper-Vで動かすLinuxは悪くはないのですが、VirtualBoxの方が単純に便利だと感じます。
Author And Source
この問題について(Hyper-V上でLinuxを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/hatchet/items/dcbf9e4f3a1a59d31d48著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .