ついに、Windowsの起動ドライブの空き容量が2GB位になってしまった。トータルで500GB位のM2 SSDなので、0.5%位?
さすがにどうにもならないので、なんとか領域を確保しなければと重い腰を上げることに。
今回、削り込みの処理をしたので、作業の骨子をメモとして記録。
150GB位のVirtualBoxの作業用イメージがあり、これが削れば40GB位は削れそうな感じ。後、領域としては150GBなんだが、スナップショットを含めると230GB位つかってる。
もうスナップショットは削ってもいいんだが、これが空き領域がなくて削除・統合処理が行えないという事態になっていて、先送りにしていた。
起動ドライブの他に、作業用SSDとして420GB位のドライブがあったが、こちらも大体一杯で余裕はない。
スナップショットを削るには、どうやら基本ストレージと同等位の空き容量が必要っぽい。
ということで、まずはネットワークドライブに、普段は使ってない250GB位の仮想環境のファイルを一旦退避して作業領域を作る。
VBoxManageコマンドの clonemedium で、最新スナップショットからVDIファイルをDドライブに作成。
ファイルシステムの縮小をするには、そのFSをマウントしてると実行できないが、該当の作業環境はルートに全部割り当ててあり、またVirtualBoxはUSBメディアからの起動は出来ない。
まず、USBを物理ドライブに指定した状態で createrawvmdk で仮想メディアを作成。こちらをIDEドライブに指定することで、USBメディアにいれてある Ubuntu のインストールディスクで起動する。
参考: VirtualBox で VM を USB ブートさせる手順 (Windows)
IDEに先程指定した、USBに入れたインストールディスクと、SATAにcloneした仮想メディアを指定して起動。起動時に Ubuntuを試すを選択すると試用するためのセッションが立ち上がり、普段使ってるストレージも /dev/sd* に割りあたってるので、ここで必要な作業を行う。
LVMで設定してあったので、大体以下の操作をする。
- e2fsck -f /dev/<VOL_GROUP>/<LV NAME>
- resize2fs /dev/<VOL_GROUP>/<LV NAME> XXXG
- lvreduce -L XXXG /dev/<VOL_GROUP>/<LV NAME>
- lvremove <スワップ領域>
- lvcreate <0 FILL用のLV>
- dd if=/dev/zero of=<NEW CREATED WORK LV PATH>
- lvremove <0 FILL用のLV>
- lvcreate <スワップ領域>
- dd if=/dev/urand of=<スワップ領域>
- mkswap /dev/<VOL_GROUP>/<SWAP LV>
- VBoxManage modifyhd [UUID] –compact
ファイルシステムの縮小処理、LVの縮小処理、スワップ領域を除く。
VDIの縮小のために連続した0で領域を埋める必要があるので一時的に作業用のLVを 100%FREE で作成してddで埋める。
作業用LVを消した上でSWAP領域のLVを作成して、消されないようにランダム値で埋める。
VBoxManageコマンドで物理ファイルのcompact処理。
VDIなのでmodifyhdのリサイズはしなかったが、やっといたほうがいいかも。
色々と細かいバッドノウハウがあるようで、面倒だった…
追記:
ストレージを既存のVMに付け替えても、スナップショットなどの情報はそのまま残ってしまう&メディアとスナップショットが参照された状態なので消せない。
何か手続きはあると思うが、今回は面倒なので同等のVMを新規作成し、メディアを指定するところでcompactし直したメディアを指定することで同等のVMを作ることにした。
その上で、過去使っていたVMとメディアを削除。
電子の海の藻屑になってもらった。
追記2:
これまで、メモリの量、CPUの割当数など、一時的にリソースが必要になった場合、設定の変更をすると、ホストOSのWindowsの再起動が必要だった。
これは、控え目に言ってもクズ。
設定変更するだけで再起動が必要とか、アホすぎるだろう… と呆れるのを通り越して怒りがこみ上げる状態。他の人の環境はどうなんだかしらないが、暴動が起きても賛成出来るレベルだった。
検索すると既知の問題らしいが、セキュリティ絡みの話らしくて改善することは無さげ…
セキュリティソフトを切れって書いてあるのも見たが、うちはマイクロソフト謹製のデフォルトのだけなんだよなぁ。
で、今回気がついたんだが、変更をする時は管理者権限でVirtualBoxを立ち上げて変更すると、再起動は不要なようだ。
- 設定変更する時は管理者権限でVirtualBoxを起動して変更する
- 一度でも一般ユーザーのVirtualBoxで変更してしまうと、Windowsを再起動しないと二度とVM起動できない
呆れるのは変わらないが、改善策が見つかったのは僥倖でした…