古いWindows 10 ProマシンをWindows 11 ProにアップグレードしてNASとして利用します。Windows 10のHDDはMBRフォーマットでしたのでGPTフォーマットのSSDに移行しました。
しばらく利用しない時はリモートからスリープさせます。利用する際にはリモートからWake on LANで起動します。
私の持っている外付けディスクケースは電源連動のさせ方が少し複雑でしたが設定することにより安定して動作するようになりました。

環境

  • Windows 10 Pro
  • 外付けディスクケースLHR-4BNHEU3

Windows 10パーティションの移行

MBR HDD上のWindowsシステムパーティションをGPT SSDのパーティションに移行します。

HDDのWindowsパーティションサイズを変更

パーティションを移動しやすいようにLinuxのgpartedでWindows 10のシステムパーティションを適当なサイズに縮小します。(例えば60,000MiB)
NTFSパーティションのコピーにCloneZillaを使う場合は不要な操作と思います。

Windowsパーティションの修復

一旦、Windowsでディスクを修復しておきます。(重要)
Windowsからは中身が正常に見えますがLinuxでは中身が参照できないという状態を回復できます。

SSDをGPTフォーマット

LinuxのgpartedでSSDをGPTフォーマットして各パーティションを作成

  • EFI用
    fat32/1000MiB
  • Windows用
    ntfs/60000MiB

Windowsパーティションのコピー

HDDのパーティションをSSDのパーティションにコピー

sudo dd if=/dev/sdbX of=/dev/sdaX bs=4M status=progress

パーティションの拡大

gpartedでSSDのWindowsシステムパーティションを拡大

Windows 10のUEFIブート設定

EFIパーティションの構築

Windows 10 インストーラディスクでブートしてトラブルシュートからコマンドプロンプトを実行

  • EFIパーティションにドライブ文字Nをマッピング
    diskpart
    List disk
    select disk n
    list volume
    select volume m
    assign letter=N:
    Exit
    nはディスク番号(例: 0)、mはEFIパーティション番号
  • ドライブNをfat32でフォーマット
    format N: /FS:FAT32
  • ブートマネージャの設定
    bcdboot C:\windows /s N: /f UEFI
  • ブートローダの修復
    bootrec /fixboot
    エラーがでないことを確認

確認

BIOSの設定をUEFI起動に切り替えてWindows 10が起動できることを確認

Windows 11にアップグレード

  • Windows 10で起動してWindows 11 インストーラISOをマウント
  • インストール実行
    setup /product server
    インストール中、1つ目の「個人用ファイルとアプリを引き継ぐ」を選択するとエラーがでたので2つ目の「個人用ファイルを引き継ぐ」を選択(アプリはひきつがない)

ディスクケースとPCの電源連動

ディスクケース側の電源連動モード設定

  • LHR-4BNHEU3のSYNCボタンを3秒間押して電源連動スリープ機能を有効に設定
    電源連動 LED(SYNC)がオレンジになることを確認
  • パソコンが電源オフ/スリープになるとディスクケースがスリープ状態になります。

Windows側の電源管理設定

  • デバイスマネージャから「ユニバーサルシリアルバスコントローラー」の下の「USB大容量記憶装置」のプロパティで「電源管理」タブの「電力の節約のために、コンピュータでこのデバイスの電源をオフにできるようにする」をオフ

Windowsの自動スリープ抑止

電源設定

スリープ状態になるまでの時間を「なし」に設定

無人スリープタイムアウトの設定

  • 無人スリープタイムアウトの設定項目表示
    powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE
  • 電源オプションの「システム無人スリープタイムアウト」で2分→0分

モダンスタンバイの状態確認

  • Windowsの電源設定を確認
    powercfg /a
    「スタンバイ(S0 低電力アイドル)」が利用できない状態であることを確認

Wake on LAN

サーバ

UEFI設定のブートメニューでWake on LANを有効化

クライアントWindows

  • インストール
    winget install --id DarkfullDante.wol 
  • 実行
    wol -m="XX:XX:XX:XX:XX:XX"

クライアントUbuntu

  • インストール
    sudo apt install wakeonlan
  • 実行
    wakeonlan wakeonlan XX:XX:XX:XX:XX:XX