CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

コンピュータ全般

Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん

投稿日:

Hyper-Vで仮想マシンを作って運用するのが常識的になって久しい。その際、ハードディスクとして使うのがvhdまたはvhdxファイルで、運用していると肥大化して困ることになる。Hyper-Vホストのディスク容量を圧迫するのはもちろんのこと、仮想マシンの動作速度にも影響する。ネットであれこれ調べた結果、以下記事の対策が有効であることがわかった。
Hyper-V仮想ディスクの最適化(圧縮)メモ

PowerShellでやるってのがポイントで、昔ながらのDOSプロンプトとは訳が違う。DOSプロンプトだったらバッチ作って実行で済むんだけど、PowerShellで自動化するのはだったらどうすんだろーってずっと頭の片隅にあったので、調べてみた次第。PowerShellを起動してから、以下5行の処理を1行ずつコピペでPowerShellに流し込むのは不毛な作業だから、一度に実行してみたいのだよ。
$targetvhd = “VHD(X)のフルパス”
Mount-VHD $targetvhd -Readonly
Optimize-VHD $targetvhd -Mode Quick
Optimize-VHD $targetvhd -Mode Quick
Dismount-VHD $targetvhd

ということで、以下の手順を行えば全部やってくれる。
1.compvhd必要なファイルをダウンロードして解凍
2.解凍結果のcompvhd.ps1を編集
 1行目の「VHD(X)のフルパス」を実際のvhdファイルのフルパスに書き換えて保存
3.解凍結果のcompvhd.batをダブルクリックして実行

一括実行のポイントは以下の通り。
・バッチファイルのカレントフォルダとps1のファイル名を取得している
・batからPowerShellを呼び出すには実行ポリシーを指定しなければならない
・PowerShellの処理拡張子ps1のファイル内に記載する

課題はこんな感じなんで、そのうちヒマなときに取り組んでみましょ。
・vhdのファイルパスはバッチまたはPowerShellからユーザー入力としたほうがよい
・vhdファイルが実在しなければ、エラーを出してリトラリできるとよい
・圧縮前と後でvhdのファイルサイズがどれだけ減ったかを比率で出したい

-コンピュータ全般

執筆者:


comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

お気に入りツール1

シェアウェアやフリーウェアのソフトで、私が気に入っているソフトを紹介してみたいと思います。今日はその第1弾、明日は第2弾を書く予定です。 ・秀丸 [シェアウェア \4000] 言わずと知れた超有名ソフ …

no image

ImgBurn

ImgBurn(イメージバーン)は、ライセンスフリーのライティングソフト。 世界的に有名で日本でもユーザー数が多いが、ちょいと不安がある。 最新版のSetupImgBurn_2.5.8.0.exeがダ …

no image

Flash

今日の大半の時間を費やしてつくったFlash動画。 2009年6月1日までの残りの時間をカウントダウンする。 たぶん、ただの白枠にしか見えないことだろう。 外部に設置したFlash動画 ↑ここをクリッ …

no image

新元号になったら【㍻】のような合字が文字コードとして追加される

新元号に切り替わるのは来年2019年の5月1日で決定。あと1年ちょいで変わるのですなぁ。おいらは平成5年に入社したから平成5期なんて言われていて、平成は31年で終わるわけだから、社会人26年を平成とと …

no image

USBメモリ2012

久しぶりにUSBメモリを購入した。 BUFFALOのRUF3-K32G-WHで、32GBの3320円。 2008年に買ったものが、16GBで6780円だった。 2008年に書いた記事 4年半経っている …