CAD日記

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

コンピュータ全般

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

投稿日:2019年12月27日 更新日:

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のファイルサイズがどれだけ減ったかを比率で出したい

続きはこちら。
Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(2)
Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(3)

-コンピュータ全般

執筆者:


comment

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

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

関連記事

二段階認証のリスクを回避するためにようやく重い腰をあげた

二段階認証するのにGoogle Authenticatorを使っていることは多いと思う。おいらの場合6つの登録において適用していた。仮想通貨取引所で3つ(bitbank、Zaif、coincheck) …

no image

パーティション編集

PCをセットアップするときに悩ましいのは、パーティション設計だ。 デュアルブートで2つ以上のOSを入れることが多いので、 ハードディスクを複数のパーティションに分けることになる。 例えば、160GBを …

no image

WinZip18.5

WinZip18.5 Proを1,900円で購入した。 WinZip12 Standard を5,250円で買ったのが2009年4月のことなので、 5年半振りのバージョンアップになる。 ずいぶん安くな …

no image

テザリングへの道

デザリングではない、テザリングだ。 tether:繋ぎ止める、縛る おいらのスマホはFOMAなので、テザリングをすると、 パケット料金の5460円が8190円に跳ね上がる。 その金額のあいだは、テザリ …

no image

Excelの共有ブック

Excelファイルをネットワーク上において、複数人で共有することはよくある。 一人が開いていると、他の人は読み取り専用でしか開けない。 仕方ないから、通知ボタンを押してその誰かの編集が終わるのをひたす …