気が付いたらNoxPlayerのサイズが35GB近くになっていた。以前行ったクリーンアップを試したところ5GBくらい空きができた。
それでも29GB近くあるのでもっと小さくできるだろうと調べてみると仮想OSディスク(vmdk)を小さくするツールvdiskmanagerを使うと小さくできるらしい。
vdiskmanagerのダウンロード
vdiskmanagerはVMWareが出しており、以下のページからダウンロードできる。
右側にある[Attachments]の中にある[-vdiskmanager-windows-7.0.1.exe2.zip]をクリックしてダウンロード。英語わかんねって表示を日本語に変更するとAttachmentsが消えるので注意。
この中にexeが入っているのでNoxPlayerがインストールされているフォルダ(C:\Program Files\Nox\bin\)にコピーする。その際名前が長ったらしいので「vdiskmanager.exe」にでも変えておくと後が楽。
ちいさくする
サイズを小さくしたいNoxを起動する。
起動しておかないとこの後の接続が出来ないので必ず起動しておく。
コマンドプロンプト起動
NoxPlayerがインストールされているフォルダでコマンドプロンプトを起動する。エクスプローラーで(C:\Program Files\Nox\bin\)を開きパスウィンドウに「cmd」と入力してエンターキーを押下するとそのパスでコマンドプロンプトが起動する。(普通にコマンドプロンプトを起動してcdで移動してもOK)
実行中のデバイスと使用ポートを取得
Noxが起動している状態で
nox_adb.exe devices
と入力すると今起動しているデバイスのIPとポート番号が表示される。
shellでデバイスと接続
コマンドプロンプトで以下の3行を順番に入力する。
nox_adb.exe root -s 127.0.0.1:62026 nox_adb.exe remount -s 127.0.0.1:62026 nox_adb.exe -s 127.0.0.1:62026 shell
するとShellで内部に入れるようになるので次の3行を順番に入力する。
cd /data dd if=/dev/zero of=./zero bs=4k rm zero
内部では空いている場所をすべて0で埋めているようで、これを行うことで次のvdiskmanagerで小さくすることができる。
NoxPlayerを終了する
起動しているNoxPlayerを終了する。すると先ほどのShellも自動で閉じる。
vdiskmanagerで圧縮
次のコマンドを入力してvdiskmanagerを起動する。「Nox_2」の「2」は小さくしたいデバイスの番号。この枠内の数字を使う。(※disk2の2はデバイスの番号がいくつだろうとdisk2なので注意)
vdiskmanager.exe -k BignoxVMS/Nox_2/Nox_2-disk2.vmdk
すると圧縮が始まり0%→100%になったら終了。
結果
29GBから10GB小さくなり19GBになった。
それでも大きくね?と思うけれど最初の34GBと比べると半分近くまで小さくなったので良しとしよう。標準のクリーンアップより手間だけどより小さくなるからこっちがいいね。