久しぶりにwindows10でパーティションサイズ変更したくなった。
普段使いのPCとしては仮想マシンしか扱わないので、vmware上のwindowsで利用。
深く考えず、使えるものを探してみると、カナダの会社の製品を発見。
他にもドイツ製、中国製の製品あるけど、サーバ構築や運用変更のために使ったことが既にあったので、気軽にPCで使えそうな初見のソフトウェアを探してみた。
MiniTool Partition Wizard がそれ。

前提
実際にやるのはテスト用のVMを準備。OSだけインストールした状態のひな形になる仮想マシンを利用。
物理マシンのリソースにあわせてCPUとメモリとディスクを割り当てて作成する。
-
ひな形にしてるvmイメージをzipから解凍して展開
メモリ8GB、CPU4コア、Cドライブはもともとgptで100GBのを作ってるので、Dドライブはmbrで500GB追加作成しておく。

-
基本的なソフトウェアのインストール
普段使いに近づけるので、ブラウザ(firefox)とアンチウィルス(kaspersky)も入れておき、バージョンや定義も更新してたら、裏で勝手にwindows updateが動いて最新になってくれる。
OS再起動は4回ぐらい実施。windowsは最新になった。ここまで40分ぐらい。

-
データドライブ作成
Dドライブを普通のNTFSドライブとして、500GBでパーティション作っておく。

-
ディスク性能 システムドライブ(cドライブ)とデータドライブ(dドライブ)のディスク性能は以下のとおり。
何回かやってみたけど、同じ物理ディスクにvmdk作ってるのに性能差が出るのが意味わからん。

-
Partition Wizardをインストール
1分以内で終わる。軽い。

-
Partition Wizardを起動
ディスク操作は管理権限必要だから、アカウント制御の確認画面表示された後に起動できる。

ディスクサイズを変える(システムドライブ)
-
広げたり縮めたり
Cドライブを広げたり縮めたり移動させたりが、矢印アイコンとドラッグでできる。めっちゃ軽快。
もちろん自分で数字を入力して細かく設定もできる。濃い青の箇所は使ってるディスク領域で、これより小さく縮めることはできない。

-
反映
もちろんその場で即反映ではなく、画面左下の適用ボタンを押すと初めて構成変更される。取り消したら操作は無効になってくれる。


-
OS再起動
Cドライブはシステムドライブだから、サイズ変更を適用するにはOS再起動が必要。

-
サイズ変更の適用処理
OS再起動すると、続きの処理が実行されて適用した内容を反映してくれる。
パーティション移動と縮小には終わるのに4分35秒かかって、もう1回OS再起動があった。元のサイズと位置に戻すには2分5秒。
ssd使ってるのもあるけど、けっこう速いかも。

-
サイズ変更の適用完了
OS再起動終わると確かにパーティション移動とサイズ変更できてる。
あれ? gpt扱えないってあった気がしたけど、2TBになってないgptだったら普通に操作できるみたい。

ディスクサイズを変える(データトライブ)
-
データの入った状態を用意
大粒で数が少ないファイルと、小粒で数が多いファイルを用意してみる。
OSインストールで使うisoイメージと、gitに登録しているファイルをデータとして入れておき、そのあとでサイズ変更。
winフォルダにはisoイメージで4GB程度の大き目ファイルが何個か入ってる。
memosフォルダには、ローカルgitからクローンしたブランチが入っていて、数KB程度の小さめのファイルがたくさん入ってる。
500GBのうち、20GB程度のデータをコピーして設置するのに約10分。

-
広げたり縮めたり
500GBのパーティションの中で移動してサイズ変更もしてみる。

-
反映
適用して反映してみるため「はい」を押す。必要時間はおよそ2分。



-
サイズ変更の適用結果確認
ちゃんと先頭50GBをあけて100GBに縮んだパーティションになってる。

-
サイズ変更の適用完了
念のため「コンピュータの管理」で見ても同じ結果。

パーティションコピー
さっき移動・縮小したパーティションをすぐ後ろの領域にコピーし、内容が維持されるか確認してみる。
内容が維持されるかどうかは、比較ツールのwinmergeを使う。
-
コピー対象のパーティション選択

-
コピー先選択

-
コピー先のパーティションサイズ入力
さらにコピー先のパーティションサイズが入力できる。おお、サイズ指定できるやん。テストデータ20GBに対して25000MBで作ってみる。

-
予定パーティション
ここまで来ると、未適用状態でもFドライブとして予定パーティションが一覧に表示される。ドライブレターも自動でFを振ってくれてるし、ええ感じ。

-
予定パーティションを適用
じゃ、適用してみる。パーティションのコピーは2分で終わった。
ちゃんとNTFSになってもいるし、大粒で数が少ないファイルと、小粒で数が多いファイルを用意するのは10分ぐらいかかったのに対して、およそ5分の1の時間で済んでた。



-
小さめファイルの比較
小さめのファイルが入ったフォルダを比較してみると、ちゃんとコピーできている。
.gitフォルダや他の細かいファイルも一致。フォルダ単位比較で全部緑色のチェックアイコンがついてるから内容は完全一致してるってこと。


-
大き目ファイルの比較
大き目のファイルはisoイメージファイルだけど、これも一致。いけるやん。


-
コピーの速度について
パーティションのコピーは、ファイルの大小にはあまり関係なくパーティションで使ってるデータサイズに依存するのかも。
OSのコピー処理はファイルやディレクトリを認識しながら進むので、パーティションコピーのほうが速いんじゃないかという気がする。
今回はやらないけど、フラグメントが発生したままのパーティションで、OSのコピー処理だったらいくらか解消しながら進むだろうけど、パーティションコピーはたぶんフラグメントの状態を維持して進むんじゃないか。
パーティションのマージと分割
-
パーティションのマージ データの入ったドライブに対してマージしてみたらどうなるのか。
さっきのDドライブとFドライブを結合してみた。





Dドライブが消えてFドライブとしてくっついてくれてる。
適用処理は数秒もかからず、速すぎて進捗画面のハードコピー取れなかった。
よく見るとさっきの確認画面にあった、「結合されたパーティションの内容」っていう名前のフォルダができてる。


内容は維持されて、ドライブをくっつけてくれている。
なるほど、くっつけたパーティションにフォルダ作って移動してくれるのか。
もちろん保管したデータの内容は一致。

-
パーティションの分割
だいたいの動きは想像つくけど、いちおうやってみる。1分で完了。





Fドライブを分割して、Dドライブができてる。ドライブレターはあとで調整するか。

FATをNTFSに変換
普段、FATはほぼ使わない。理由は保管効率がよくないから。
1KBとかそれ未満の小さなファイルをたくさん扱うと、フォルダのプロパティを見たとき、「フォルダサイズ」と「ディスク上のサイズ」に差が出やすい。
NTFSでももちろん差が出るけど、FATはさらに差が大きい。
2000年代前半、仮想化をまだそれほど使っておらずPCをデュアルブートとかトリプルブートとかしてた頃は、windows98/windowsNT/turbolinux/solaris8をノートPCに入れてブートセレクタから起動してたことがあった。
こういうときに、OS間でデータやりとりをするとき、内臓ドライブにFATのパーティションを作ったり、usbメモリをfatでフォーマットしておき、macX(unix)やlinuxでデータ移送用に使ってた。
複数OSをまたいでドライブを使いたいときに、fatとntfsを交互に使いたいこともあったっけ。
今回はちゃんと内容が維持されるか試してみる。
-
ntfsからfatに変換できるか
この機能がどうしても必要かというとそうでもない。 1つのPCで全部まかなう場合の特殊な使い方かもしれない。 partitionWizardのフリー版では変換処理は起動できず、製品を買えばできるらしい。 今回は対象外。
-
fatをntfsに変換する
fat32で100GBのドライブを作っておき、テスト用のデータを流し込んでおく。


変換してみる。この操作は「適用」ボタンを押さずとも、即時実行される。5秒もかからず終わった。



準備元ドライブと比べたら、ちゃんとデータが変換できてて、内容も維持されてる。


ベンチマーク
普段はcrystal disk markを使ってる。

古いPCの記録と相対比較したいから、crystal disk markを使い続けてる。
partition wizard使っても性能確認はできる。何回か動かしてみた。
ベンチマーク内容が違うからだろうけど、Cドライブの100MB転送で性能に差が出るのはなんでだ?

linuxで扱うext2/3/4
Partition Wizardでも取り扱いができるらしい。
ext2はturbolinuxで使ってた。とても懐かしい。
ext3はfedoraやcentosで使ってたかも。
ext4はubuntuで今でも使ってる。
fat/ntfsに比べたら保管効率高いし、耐障害性も高いと感じる。
普段使ってるext4は、linuxにsamba入れてディスク共有しておき、windowsからnet useでドライブ接続する使い方してるけど、無理やりwindowsでパーティションとして扱ってみる。
パーティションとしては作れてしまう。もちろんwindowsから直接はドライブ内容は見えない。




パーティションの移動をやってみたが、リサイズはできなくて残念。リサイズはドラッグも数字入力もできなかった。




ちゃんと移動できてる。

windowsをいったん停止して、作ったパーティションをubuntu20のlinuxでマウントしてみる。
微妙にサイズ表記が違うけど、パーティションのデバイス名はちゃんと見えている。

フォルダ作ってマウントしてみる。windowsから見た時と微妙にディスクサイズが違う。
|
|

マウントしたフォルダへ小さいデータの入ったフォルダを展開する。
|
|

いったんlinuxを停止してwindowsを起動し、パーティションコピーをやってみる。


NTFSパーティションと違って、コピーするときにサイズ指定はできなかった。残念。

ext4パーティションのコピーを適用してみる。1分ぐらいで終わった。



windowsをいったん停止してlinuxを起動し、コピー元とコピー先のパーティションをマウントしてみる。

|
|

実際の設置データの入り具合。
|
|

コピー元とコピー先のパーティションに入っているデータを比較してみると、ちゃんとできている。diffで差異がまったく出てないので、画像やテキストファイルといった細かいファイルなど完全に一致している。
diff -r /Ddrive /DdriveClone

gptパーティションを作る / ブータブルメディアの作成
-
普段使ってる6000GBのドライブ
ドライブを用意して初期化し、データの読み書きができるかやってみたら、パーティションサイズが2048を越えて入力できないし、矢印ボタン押しても数字は上がらない。


仕方ないので、windowsの「ディスクの管理」で6000GBドライブを作ってみる。

作ったドライブを5000GBに縮めて先頭をあけて移動させてみるのは可能だった。適用は1分未満。



データもちゃんと扱えるし、元のサイズにも戻せる。




2TBを超えるドライブは新規では作れないけど、サイズ変更や移動はできた。
-
ブータブルメディア プロ版のみらしい。もしかして無償版でもササッと扱えるのかもしれないと期待してたが残念。

ディスク救援
バックアップからの復元をリカバリ方針にしているので、救援はやったことないというか必要としない。
ということで、救援関連は評価対象にせず。
結論
-
よかった箇所
-
とても軽快に動く ssdを使ってるからかもしれないが、処理が全般的に軽くスイスイ動く。 普通のインフラ作業はこうはいかないことが多いので、使ってて気持ちよかった。 ただし、パーティション操作はデータが壊れる危険を伴うこともあるはずなので、バックアップを取るのを忘れてはいけない。 そう考えると、軽快に動くのは危険。
-
linuxのパーティションが扱える linuxのパーティションをwindowsにマウントすることはできなくても、作成・コピーができてしまう。 無償版でここまでできるのは驚き。 移動はできるがサイズ変更できないのは惜しいところ。
awsやgcpのクラウドで、今はxfs/btrfs/zfsとか扱うし、できたらunix/linux系の他ファイルシステムも取り扱いしてくれると嬉しい。
-
-
残念な箇所
-
ブータブル製品 パーティション操作はむしろOS起動した後ではなく、パーティション管理ソフトから起動することのほうが多いんじゃないかと自分では思う。
普段利用でOSが起動しなくなったとき、 「MiniTool Partition Wizard Bootable」 は有償版でしか使えない。起動不良にはやっぱりお金払わないといけない。
-
gptパーティションの扱い 無償版では、2TBを超えるものが新規作成できない。ただしサイズ変更と移動はできる。市販ディスクは2TBオーバーも多いので、いつかは無償版でも扱えるようになることを期待。
-
細かい箇所で気になる点 縦長ディスプレイで見てるとき、画面サイズは変えられても、縦サイズがどうしても縮まらなかった。GUIのウィンドウサイズが縮まらない理由がどうしてもわからんかった。
-