【泥エミュ】BlueStacks5のディスク クリーンアップ

泥エミュとして有名なBlueStacksだけど、必須とも言える機能が2つないのは以前書いたとおり。

 

【BlueStacks】インスタンスのクリーンアップ

 

 

 

  1. インスタンスのインポート/エクスポートがない
  2. ディスククリーンアップがない

 

 

インスタンスのインポート/エクスポートがない

 

ファイルを直に操作して別の場所に退避すればエクスポートの代わりにはなる。

 

具体的には、ブルスタのインストール場所である

***\BlueStacks_nxt

の配下にあるEngineというフォルダbluestacks.confというファイルを待避すれば良い。

 

・・・のだが、

待避したときのブルスタのバージョンが、戻すときのブルスタのバージョンが一緒でないといけない。

それバックアップって言うか?

 

インスタンスを作るときに、泥のバージョン+_(連番)でディレクトリを作るので

別PCにインスタンスをコピーすることもできない(?)

できるかもしれないけど、どこにどんな設定がされているか全部調べないといけない。

実際にディレクトリをコピーだけしてみたけど、インスタンスマネージャーの一覧に出てこないw

 

あー、残念すぎる。

気が向いたらそのうち検証するかも。

 

対応するようにしているとブルスタの中の人は言っているけど、全然実装される気配がない。

 

インスタンスマネージャーでインスタンスをフォルダで整理する事ができるようになりました!

とか そんなどうでも良い機能より先にやることがあるだろ

 

まぁこれは良いとして、問題は

 

 

ディスククリーンアップがない

 

NoxやMEmuのようにインスタンスのクリーンアップ(仮想ドライブの容量削減)ができない。

つまり大きくなる一方

 

インスタンスを起動して何もしないで閉じただけで10MB増えたりする。

最悪である。

 

中身はVirtualBoxなので、なんとかならんのか探してみたけど

ゲストOSがWindowsな事例ばかりで、同じようにコマンドを叩いても全然ダメ。

一瞬で終わると思ったら、何もやっていなかったw(ファイルサイズとタイムスタンプが変わらない)

 

 

手はないのか色々調べたり検証したりした結果、上手くいった

美しくないけど。

 

 

ニッチな情報だけど、他に見当たらないので助かる人が居るかもしれない。

 

 

 

BlueStacks5系の仮想ディスクをクリーンアップする方法

 

参考になったのはココ。

 

 

本物かどうかわからないけど、ブルスタの中の人が出てきて、取り組んでる と言っているものの

未だに実装されていないのでダメやん・・・と。

やりとりがちょっと面白かったw

 

 

では俺流のディスククリーンアップ方法。

 

■環境

BlueStacks 5.5.10.1002

Windows 10 Pro

 

■必要なアプリ

VirtualBox ※Oracleのサイトからダウンロード&インストール

CloneVDI tool ※VirtualBoxのフォーラム記事からダウンロード&インストール

 

■流れ

  1. ファイルの待避
  2. Data.vhdのUUIDを確認
  3. ファイルの圧縮(VHD→VDI)
  4. フォーマットの変更(VDI→VHD)
  5. Data.vhdのUUIDを確認
  6. 設定ファイル書き換え
  7. 元の場所に戻す

 

 

 

1. ファイルの待避

 

インスタンスのフォルダ内でいきなり始めるわけにはいかないので、別のフォルダにコピーする。

対象は

  • Data.vhd ←諸悪の根源
  • bstkファイル ←※インスタンス名※.bstkや、bstk-prev、Android.bstk.inなどが対象

こいつらをどこか作業用のフォルダに。

 

実際の作業をいちいち手動でやってられないので、バッチファイルを作ることにした。

パスを通してあることが前提でコマンドを書いているので注意。

 

 

2. Data.vhdのUUIDを確認

 

現在の仮想ディスク(=Data.vhd)のUUIDを調べる。

そのためにはVirtualBoxVBoxManageを使用する。

VBoxManageはコマンドプロンプトからも実行できる。

 

VBoxManage showhdinfo %入力ファイルのパス%\Data.vhd

 

UUIDはこんな感じで表示されるはず。

UUID: 29608a64-589d-42f6-9c89-121354d27599

 

あとで使うので控えておく。

 

 

 

3. ファイルの圧縮(VHD→VDI)

 

CloneVDI toolを使用して、Data.vhdを圧縮する。

実行ファイルを叩くとGUIの画面が出てくるけど、コマンドプロンプトからも実行できる。

バッチ野郎にはうれしい限り。

 

このツールでは出力ファイルが*.vdiになってしまう。

対応していないのは作者の方が「えー、VHDィ?」な感じで乗り気じゃなかったからっぽいw

それにしたところで、これは神ツールだと思う。

mpack氏に圧倒的感謝っ・・・・!

 

コマンドだとこんな感じ。

CloneVDI %入力ファイルのパス%\Data.vhd -o %出力パス%\Data.vdi -c

最後の-cが圧縮のオプション。

 

どらぐらい容量を削れるかというと

5.87GBのファイルが4.25GBになる。

 

素晴らしいです。

 

圧倒的感謝っ・・・・!(再

 

このツールはUUIDを変えずに圧縮ということもできるけど使っていない。

理由は後述。

 

 

4. フォーマットの変更(VDI→VHD)

 

VDIのままだとブルスタでは使用できない。

少し前のバージョンなら使用できたらしいんだけど、5.5にしてしまったので

なんとかしてVHDにしなくてはならない。

 

その機能はVirtualBoxにある。

VBoxManage clonemedium %入力ファイルのパス%\Data.vdi %出力パス%\Data.vhd --format vhd

 

これでVDIからVHDに変換することができた。

ファイルサイズを比較すると大体同じ~ちょっと大きくなる。

 

 

5. Data.vhdのUUIDを確認

 

2. と同様に、変換し終わったファイルのUUIDを調べる。

VBoxManage showhdinfo %入力ファイルのパス%\Data.vhd

 

UUIDは前に調べた物と違っているはず。

CloneVDI toolでUUIDを変えなくても、VBoxManageのフォーマット変換で

UUIDが変わってしまうためUUIDキープのオプションは無視した。

 

例によって、このUUIDを控えておく。

 

 

6. 設定ファイル書き換え

 

UUIDが変わってしまったため、Data.vhdだけ戻してインスタンスを起動しても

エラーになって落ちる。

 

その理由はbstkファイルに書かれているUUIDとData.vhdのUUIDが異なっているから。

作業用のフォルダに移動しておいたbstk系のファイルを開き、

変換前に取得したUUIDを変換後のUUIDに置換する。

ここが手動で美しくない。

 

 

7. 元の場所に戻す

 

Data.vhdbstkファイルを元のフォルダに戻す。

 

bstkファイルに更新漏れがあると起動しない。

 

注意点としてはインスタンスを起動していたらダメだし、

インスタンスマネージャーも終了しておくこと。

bstkファイルを掴んでいることがあって、ファイルを上書きしても

元の内容に戻されることがあるから。

これにハマって悩ませられた。

 

途中のVBoxManage showhdinfoで確認するときにエラーが出ることがある。

UUID {29608a64-589d-42f6-9c89-121354d27599} of the medium 'G:\hoge\Data.vdi' does not match the value {f1c527ed-7cd1-4194-9648-b24677f51f00} stored in the media registry ('C:\Users\***\.VirtualBox\VirtualBox.xml')

 

これはC:\Users\※ユーザ名※\.VirtualBox\VirtualBox.xmlに記載している内容と

仮想ディスクのUUIDと上記パスのXMLファイルに記載されているUUIDが異なるから。

俺は面倒だからXMLファイルを消しているw

 

どうしようもなくなったときは、最初に待避しておいたファイルを上書きすれば

大抵は復活するはず。

 

 

 

面倒だけどこんな感じでクリーンアップはできる。

こんなのユーザにやらせるなよw

 

早く機能を実装してちょうだい。

 

カテゴリー: Android, Game, PC, ソフトウェア, 技術的 タグ: , , , , , , , , , , ,  [パーマリンク]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です