UbuntuとWindowsでデュアルブートをしている場合、Windows側に入っているゲームをUbuntuから遊びたいときがあるかと思います。
今の時代は便利なもので、それが可能です。
では手順を紹介します。
基本的に下記サイトの日本語訳になります。
前提として必要なもの
NVIDIA等GPUのドライバーが必要です。 これはすでにいれてあるものとします。
バージョンの更新は↓を参考にしてください。
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt install nvidia-driver-418
sudo add-apt-repository ppa:paulo-miguel-dias/pkppa sudo apt dist-upgrade sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
Radeon R9 200/300 series
echo "blacklist radeon" | sudo tee --append /etc/modprobe.d/blacklist.conf echo "options amdgpu si_support=1 cik_support=1" | sudo tee --append /etc/modprobe.d/amdgpu.conf sudo update-initramfs -u
Python3とPython Minimalも必要です
aptでインストールしておきましょう。
sudo apt install python3
sudo apt install python-minimal
Steamも入れておきましょう
公式サイトから簡単にインストールできます。
ディスクを見つける
Windowsに入っているゲームを遊ぶには、Windowsが入っているHDDもしくはSSDをマウントするという作業が必要になります。
これはファイルアプリからもできるのですが、それだと問題が生じることがある(実際に筆者はゲームが起動できなかった)のでターミナルから設定を行います。
(デュアルブートを一つのHDD/SSDで管理している場合は必要ないかもしれません。)
Ubuntuでターミナル(端末)を起動してください。
Windowsの入っているHDDもしくはSSDを探してきます。
下記コマンドを実行してください。
sudo fdisk -l
すると下記のような出力がされると思います。
... Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 2E9F174D-53CA-42AD-9CD4-DF7CA90B0C7A Device Start End Sectors Size Type /dev/sda1 34 262177 262144 128M Microsoft reserved /dev/sda2 264192 7814035455 7813771264 3.7T Microsoft basic data ...
ここで、/dev/sd**
と書かれているのがディスクになります。
自分がマウントしたいディスクがどれか確認しましょう。
これはUbuntuのファイルアプリで確認することもできます。
ここでは/dev/sda2をマウントしたいとします。
UUIDを知るために、下記のコマンドを実行してください。
sudo blkid
このような実行結果が得られると思います。 ... /dev/sda1: UUID="0CAEEC94AEEC781A" TYPE="ntfs" PARTUUID="1e6ca286-01" /dev/sda2: UUID="50E2054BE205372E" TYPE="ntfs" PARTUUID="1e6ca286-02" ...
今回は、sda2をマウントしたいのでUUIDは50E2054BE205372E
になります。
マウント設定
Ubuntuの起動時に自動でディスクをマウントするように設定します。
まずは、マウント先となるディレクトリを作成しましょう。
sudo mkdir /media/gamedisk
次に、自分のユーザーIDとグループIDを知っておく必要があります。
これは下記コマンドで確認できます。
ユーザーID
id -u
グループID
id -g
基本的にデフォルトでどちらも1000
が設定されていると思いますが、一応確認しておいてください。
FSTAB
続いてマウントするために、/etc/fstab
を編集します。
お好きなエディタで開いてください。
sudo vim /etc/fstab
ファイルの最後に下記の1行を追加してください。(UUIDやUID, GIDは自分のものに置き換えてください)
... UUID=38CE9483CE943AD8 /media/gamedisk ntfs uid=1000,gid=1000,rw,user,exec,umask=000 0 0
保存したら、一度再起動を行います。
reboot
NTFS読み込みエラーへの対処
(筆者はここは飛ばしてしまったのですが... 今のところは問題ないです...)
Windowsが読み込めない文字はディスクエラーを引き起こす可能性があります。(ゲームが起動できない原因になります)
多くの場合自動で生成されるファイルに含まれる ;
が問題になりやすいです。
この修正はシンプルで、Ubuntuの/compatdata
フォルダからマウントしたディスクにシンボリックリンクを作成します。
ln -s ~/.steam/steam/steamapps/compatdata /media/gamedisk/Games/Steam/steamapps/
もしマウントしたディスクに 既に/compatdata
が存在するなら、シンボリックリンクを作る前に削除しておいてください!
Steam Protonを有効化
Steamを開いてください。 左上のSteam > 設定 > Steam Play をクリック。
下記の項目にチェックが入っていることを確認してください。
- サポートされたタイトルでSteam Playを有効化
- 他のすべてのタイトルでSteam Playを有効化
Steamライブラリフォルダを追加
既にWindowsに入っているゲームを参照できるようにします。
Steam > 設定 > ダウンロード > STEAMライブラリフォルダ をクリックしてください。
続いて、ライブラリフォルダを追加します。
自分のSteamフォルダを指定してください、私の場合は/media/gamedisk/Program Files (x86)/Steam/
でした。
そのまま、今追加したフォルダを右クリックしてデフォルトフォルダに設定しておいてください。
OKを押して、Steamを再起動すると全ゲームで多少のダウンロードが始まります。
ダウンロードが完了するとついに、Windowsでインストールしていたゲームが遊べるようになります!
どのゲームが動くのか
↓のウェブサイトでは、ゲームがどれくらい正しく動作するかが募られています。
もし自分の手を汚すのを気にしないなら、バグを修正したりパフォーマンスを出せる設定が書かれていたりしますよ。