いつものしらべてもでてこない

調べた事を書きます

Windows のクラスタサイズ(アロケーションユニットサイズ)をDISMを使いWIM(Windows Image)を作り既定の4Kから64Kに変更する方法。

 UEFI 環境の GPT フォーマットされた Windows 10BIOS 環境の MBR フォーマットされた Windows 7 の場合について記載していますが普通の方法ではないので起動する保証はできません。

Windows 10 のインストールUSBからクラスタサイズを変更する

 作業としてはコマンドを3つ実行して「バックアップを取る」、「フォーマット」、「バックアップから元に戻す」と言う操作をします。所要時間の目安は 100GB で 1時間半です。Windows 7 でも同様です。
 起動しなくなる可能性を考えて、コントロールパネルの「以前のバックアップ」からディスクイメージを作成しておいてください。


 この操作はディスクイメージから復元できる人向けです。
事前に元のディスクか空のディスクに復元する等して確認し、問題は自分で解決してください。

Windows 10 のインストールUSBを起動する。

 以下の Microsoft のページからインストール USB を作成してください。
インストール時に 32bit か 64bit かを選択する物がお勧めです。

support.microsoft.com

 作成したらインストール USB から起動してください。

Windows 10 の 回復オプションを起動する

 回復オプションを選択する(R)には"インストールします"の画面で R キー を押してください。

オプションの選択

 カーソルキー(矢印キー)で選択して Enter キーで決定します。TAB キーとマウスも使えます。〇の部分を選択してください。
・続行 Windows を起動します。
トラブルシューティング(詳細オプションを開く)
・PCの電源を切る

詳細オプション

・スタートアップ修復
コマンドプロンプト
・更新プログラムのアンインストール
・システムの復元
・イメージでシステム回復

回復コンソールを開いてクラスタサイズを変更する。

 コマンドは以下の通りです。

DISM /Capture-Image /? でイメージを作成します。
format で指定のクラスタサイズにフォーマットします。
DISM /Apply-Image /? でイメージを適用します。

 ドライブレターは dir コマンドや diskpart を使用して確認してください。
dir コマンドで「ドライブ名」と「ファイル」を確認すればわかると思います。

DISMコマンドに関しては /? を後ろにつけてヘルプを表示すれば一番下に使用例が表示されるのでコピー&ペーストすればすぐに使えると思います。

DISM /?
DISM /Capture-Image /?
DISM /Apply-Image /?

 この例では C: がシステムドライブで E: が WIM(Windows Image) を保存するドライブになります。

C:\ 管理者: コマンド プロンプト の例 Microsoft Windows [Version 10.0.19045.2251] (c) Microsoft Corporation. All rights reserved. L:\>DISM /Capture-Image /ImageFile:E:\win10.wim /Capturedir:C:\ /Name:"Windows 10 Image" 展開イメージのサービスと管理ツール バージョン: 10.0.18362.1 [==========================100.0%==========================] 操作は正常に完了しました。 L:\>FORMAT C: /FS:NTFS /Q /A:64K ディスクを正常にフォーマットしました。 L:\>DISM /Apply-Image /ImageFile:E:\win10.wim /ApplyDir:C:\ /Index:1 展開イメージのサービスと管理ツール バージョン: 10.0.18362.1 [==========================100.0%==========================] 操作は正常に完了しました。 L:\>


 フォーマットは format C: /FS:NTFS /Q /A:64K の様にファイルシステムアロケーションユニットサイズを指定して行います。

管理者:X:\windows\SYSTEM32\cmd.exe Microsoft Windows [Version 10.0.18362.592] (c) 2019 Microsoft Corporation. All rights reserved. X:\Sources>format /? /FS:ファイルシステム ファイルシステムにはファイルシステムの種類を指定      します (FAT、FAT32、exFAT、NTFS、UDF または ReFS)。 /Q    クイック フォーマットを実行します。このスイッチは /P スイッチを上書きします。 /A:サイズ 既定のアロケーション ユニット サイズを上書きします。      一般的には、既定の設定を使用してください。      ReFS は、4096、64K をサポートします。      NTFS は、512、1024、2048、4096、8192、16K、32K、64K、      128K、256K、512K、1M、2M をサポートします。FAT は、512、      1024、2048、4096、8192、16K、32K、64K をサポートします (セクター サイズが 512 バイトよりも大きい場合は 128K、256K)。      FAT32 は、512、1024、2048、4096、8192、16K、32K、64K をサポート      します (セクター サイズが 512 バイトよりも大きい場合は 128K、256K)。      exFAT は、512、1024、2048、4096、8192、16K、32K、64K、128K、      256K、512K、1M、2M、4M、8M、16M、32M をサポートします。      FAT と FAT32 ファイル システムは、下記のボリュームの      クラスター数の制限に従います:      FAT: クラスター数 <= 65526      FAT32: 65526 < クラスター数 < 4177918      指定されたクラスター サイズを使用して上記の要件を      満たせないと判断された場合、フォーマットの処理は      直ちに停止します。      NTFS 圧縮は、4096 より大きいアロケーション ユニット サイズ      に対してはサポートされません。 X:\Sources>format C: /FS:NTFS /Q /A:64K フォーマットが完了しました。 X:\Sources>exit


完了したら再起動して下さい。

クラスタサイズについて

 Windows ではインストール時のフォーマットは既定サイズの4Kのクラスタサイズになっています。クラスタサイズを4Kよりも大きく設定するとディスク圧縮を利用出来なくなります。クラスタサイズが大きくなると容量の無駄が大きくなる傾向があり、その分多少の書き換えで断片化が起きません。
 細かい点は省きますが実際にファイルを入れると 16K のクラスタサイズはディスクを僅かに効率的に利用でき、クラスタサイズは適切で大きいほど後々のパフォーマンスの低下を防げるので16K から 64K クラスタがお勧めです。現状の様々なファイルの容量の場合は 64K クラスタだと容量の無駄が少し増えます。
 クラスタサイズは小さくはしません。クラスタサイズが小さい方が効率的と思うかもしれませんがファイル管理の都合で小さくすると管理できる容量が少なくなり使い方によっては不具合が発生します。NTFS では 16TB を超えるような容量になると 4K よりも大きなクラスタサイズが選択されます。将来、 4K のクラスタサイズは不十分な為に使われなくなります。また、ファイル管理の点から見てもクラスタサイズは少し大きい方が安心です。


以上です。