WindowsにおけるLinux（Ubuntu）環境構築メモ 

## 概要
- Windows が乗っているPCにおいて、Windows 環境を残したままよく使用される Linux（Ubuntu） 環境構築方法は、次の4点ある。  
  1. WSL
  2. デュアルブート
  3. Hyper-V
  4. Virtual Box
- それぞれの特徴と環境構築方法について記載する。詳細な環境構築方法は、各節の参考を参照。  

## 1. WSL
### 1.1. 特徴
- PowerShell から簡単に仮想環境を作成できる。  
- Windows のファイルシステムから WSL の仮想ディスクにアクセスできるため、データのやり取りが容易である。  
- WSL で GUI を動かすには少し設定が必要である（この記事では扱わない）。  

### 1.2. 環境構築方法

Windows 10 に対する環境構築方法を記載する。
（Windows 11 はもっと簡単に環境構築できるはず。時間があれば追記予定。）

1. PowerShell を管理者権限で開く。
2. 次のコマンドで Linux 用 Windows サブシステムを有効にする。
    ```powershell
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    ```
3. 仮想マシンの機能を有効にする。
    ```powershell
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    ```
4. PCを再起動する
5. インストールできるディストリビューションを確認する。
    ```powershell
    wsl --list --online
    ```
6. インストールを実行する（例：Ubuntu-22.04の場合）。
    ```powershell
    wsl --install -d ubuntu-22.04
    ```
7. インストールが進むと Ubuntu が起動するので、ユーザー名やパスワードを設定する。

### 1.3. 参考
- [Windows Subsystem for Linux(WSL)上にUbuntu 22.04 LTSをインストールする（次世代シークエンサー DRY解析教本 改訂第2版_勉強の足跡その2）](https://qiita.com/SYURURE/items/8870a6850c41b06b7e95)
- [WSLの有効化](https://www.aise.ics.saitama-u.ac.jp/~gotoh/HowToEnableWSL.html)

## 2. デュアルブート
### 2.1. 特徴
- ドライブ自体を Windows 環境と分離する。  
- 演算リソースをフルに使用できることが利点である。  
- OSの切り替えには再起動が必要である。  

### 2.2. 環境構築方法
BitLocker の無効化と高速スタートアップの無効化を実施済みとする。
1. 次のいずれかのサイトから Ubuntu イメージファイルをダウンロードする。  
  [公式] https://ubuntu.com/download/desktop  
  [日本語版] https://www.ubuntulinux.jp/download/ja-remix  
2. DVD 等のディスクに、手順1でダウンロードしたイメージファイルを書き出す。  
3. 書き出し済みのディクスをPCセットした状態で、PC を再起動する。  
4. 再起動直後の PC ロゴ画面で DEL キーや F10 等を連打してブートメニューを表示する。  
5. セットしたディスクを選択すると、Ubuntu のインストーラーが起動するので、後は指示に従い、パーティションの設定等を実施する。  

### 2.3. 参考
- [[メモ]Windows11とUbuntu22.04でデュアルブート環境を作成する](https://qiita.com/macrophylla/items/e80bdd1d95ff3fc2436a)
- [Windows で Ubuntu をインストールしてデュアルブートする方法] https://ja.linux-console.net/?p=31659

## 3. Hyper-V
### 3.1. 特徴
- 複数の OS を実行することができる。  
- 複数の仮想環境の管理が容易である。  

### 3.2. 環境構築方法
1. 「2. デュアルブート」と同様に、Ubuntu のイメージファイルをダウンロードする。  
2. [コントロールパネル] ) [プログラム] ) [Windowsの機能の有効かまたは無効化] から Hyper-V を有効化する。  
3. PC を再起動する。  
4. Hyper-V マネージャーを起動し、次の手順で新規仮想マシンを作成する。  
  [Hyper-V マネージャー] ) [PC名] を右クリック ) [新規] ) [仮想マシン]
5. 仮想マシンを設定する。  
     - 「名前と場所の指定」: 適宜好みで修正する。  
     - 「世代の指定」: 第2世代を選択する。  
     - 「メモリの割り当て」: 4096 MB に設定する。  
     - 「ネットワークの構成」: 指定がなければ「Default Switch」を選択する（NAPTを設定したい場合は別途設定が必要）。  
     - 「仮想ハードディスクの接続」: サイズは 25GB 以上で、適宜好みで設定する
     - 「インストールオプション」: 「ブートイメージファイルからオペレーティングシステムをインストールする」を選択し、手順1でダウンロードしたイメージファイルを指定する。  
6. 後は説明に従い、インストールを進める。

### 3.3. 参考
- [Windows11でHyper-Vを使ってUbuntu22.04をインストール](https://qiita.com/mfunaki/items/65ab01b1db116280550a)

## 4. Virtual Box
### 4.1. 特徴
- 複数の OS を管理することができる仮想化ソフトウェアである。
- Hyper-V と似ていて、個別に仮想環境 OS を作成、切り替え、削除ができる。  
- 簡単に環境構築できるのは利点であるが、アンインストーラーによるアンインストールでは完全に Virtual Box を削除できないため、あまりお薦めしない。  
  参考: ['VirtualBoxを完全にアンインストールしたいんだが...'](https://ts0818.hatenablog.com/entry/2020/03/07/224428#google_vignette)  
  完全に削除するには、次の操作が必要である。  
    - "C:\Windows\System32\drivers"の"VBoxDrv.sys","VBoxNetLwf.sys", "VBoxUSBMon.sys"を手動で削除
    - "C:\Users\ユーザー名"の".VirtualBox", "VirtualBox VMs"を手動で削除

### 4.2. 環境構築方法
Ubuntu 20.04.6 の環境構築方法について記載する。異なるバージョンのUbuntu環境を作成したい場合は、適宜インストーラーファイル等を変更する。  

#### 4.2.1. Virtual BOXのインストール
1. 「Microsoft Visual C++ Redistributable 2019」を次の URL からダウンロード＆インストール。
  Visual Studio Tools のダウンロード - Windows、Mac、Linux 用の無料インストール 
  https://visualstudio.microsoft.com/ja/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022
2. [Oracle VM VirtualBox](https://www.virtualbox.org/) から VirtualBox をインストールする。  
  ダウンロードリンク：https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe

#### 4.2.2. Ubuntuのイメージファイルをダウンロード
- 次の URL から「Ubuntu 20.04.6 LTS」の「64-bit PC (AMD64) desktop image」をダウンロードする。
  https://releases.ubuntu.com/20.04/

#### 4.2.3. Virtual Boxの起動とUbuntuのインストール
1. 「名前」は、適当に付ける（例：Ubuntu）。
2. 「ISO Image」は上でダウンロードした「ubuntu-20.04.6-desktop-amd64.iso」を選択する。
3. 「次へ」を押す。
4. 「Username」と「Password」を設定する（何でもよい）。
5. 「次へ」を押し続ける。

### 4.3. 参考
- [【初級】Ubuntuの仮想環境を用意する（VirtualBox）](https://qiita.com/middle_aged_rookie_programmer/items/a19ff3b1abc43d6a3cbf)