LoginSignup
1
1

More than 1 year has passed since last update.

Windows PE で 7-Zip File Manager を使う

Last updated at Posted at 2023-01-31

目標

  • 起動できないデバイスのデータをサルベージするために、USB メモリから起動する Windows PE を作成する。
  • GUI でファイル操作をするために、ファイルマネージャーとして、7-Zip File Manager を使う。
  • USB メモリに、WinPE とサルベージデータ保存用に 2 つのパーティションを作成する。
  • WinPE 用の既定のドライブ フォーマットである FAT32 の最大ファイル サイズは 4GB、最大パーティション サイズは 32GB なので、データ リカバリー用は NTFS でフォーマットする。

準備

1. Windows アセスメント & デプロイメント キット (ADK) と WinPE アドオンのインストール

(1) Windows ADK と WinPE アドオンをダウンロードする。

  • 次から、Windows のバージョンに合わせた ADK と WinPE アドオンの 2 個をダウンロードする。
  • テクニシャンPC は、Windows 10 21H2 64bit を使用するので、Windows 10 バージョン 2004 をダウンロードした。
  • 他のバージョンでは、インストール中のメニューの表現が異なる場合がある。

(2) Windows ADK をインストールする。

  • adksetup.exe を起動する。
  • 「場所の指定」では、「このコンピュータにWindows アセスメント & デプロイメント キットをインストールします」を選択する。「インストール パス」はそのままで。
  • 「Windows キット プライバシー」の「Windows 10 キットの匿名の使用状況データを Microsoft に送信しますか?」は、「いいえ」でよい。
  • 「インストールを行う機能を選択してください」では、「Deployment Tools」は必ず選択する。他は選択しなくても WinPE は作成できる。

(3) WindowsPEアドオンをインストールする。

  • adkwinpesetup.exeを起動する。
  • 「Specify Location」では、「Install the Windows アセスメント & デプロイメント キット Windows Preinstallation Environment アドオン - Windows 10 to this computer」を選択する。
  • 「Windows Kits Privacy」の「Send anonymous usage data to Microsoft for the Windows 10 Kits?」は、「No」のままでよい。
  • 「Select the features you want to install」では、「Windows Preinstallation Environment(Windows PE)」は必ず選択する。

2. 7-Zip のインストール

  • 次から 7-Zip(64-bit x64)をダウンロードし、インストールする。「Destination folder」はそのままで。

USB メモリから起動する日本語化した WinPE の作成

  • 次のコードでバッチファイルを作り、USB メモリを挿してから実行する。
  • テクニシャンPC が 32bit Windows ならば、PATH を適宜変更する。
  • PowerShell や Driver をインストールする場合、size=512 は作成する WinPE のサイズに合わせて変更する。
  • USB メモリのフォーマットに失敗するときがあるが、もう一度実行するとうまくいった。
make_winpe.bat
@echo off

rem ----- 管理者でなければ管理者として実行 -----
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
  @powershell start-process %~0 -verb runas
  exit
)

setlocal

echo ----- USBメモリのフォーマット -----
set DISKPART_TXT=%TEMP%\diskpart.txt

echo list disk > %DISKPART_TXT%
diskpart /s %DISKPART_TXT%

echo;
set /P NUM_DRIVE="USBディスクのディスク番号を数値で入力してください。: "
echo;
set /P STR_INPUT="ディスク %NUM_DRIVE%  にパーティションを作成します。よろしいですか?(Y/N): "
IF /I not "%STR_INPUT%" == "Y" (
    echo;
    echo "終了します"
    echo;
    pause
    exit
)

echo select disk %NUM_DRIVE% > %DISKPART_TXT%
echo clean >> %DISKPART_TXT%
echo create partition primary size=512 >> %DISKPART_TXT%
echo active >> %DISKPART_TXT%
echo format fs=FAT32 quick label="WinPE" >> %DISKPART_TXT%
echo assign letter=P >> %DISKPART_TXT%
echo create partition primary >> %DISKPART_TXT%
echo format fs=NTFS quick label="USB_B" >> %DISKPART_TXT%
echo assign letter=Q >> %DISKPART_TXT%
echo Exit >> %DISKPART_TXT%
diskpart /s %DISKPART_TXT%

del %DISKPART_TXT%

if not exist P:\ (
    echo フォーマットに失敗しました。もう一度実行してみてください。
    pause
    exit
) 

echo;
echo ----- 7-Zip 環境の設定 -----
set MYAPPS_DIR=Q:\.MyApps
mkdir %MYAPPS_DIR%

set SETENV_BAT=%MYAPPS_DIR%\setenv.bat

echo @echo off > %SETENV_BAT%
echo set PATH=%%~dp07-Zip;%%PATH%% >> %SETENV_BAT%
echo 7zFM.exe >> %SETENV_BAT%
echo;
xcopy "C:\Program Files\7-Zip\" %MYAPPS_DIR%\7-Zip\
xcopy "C:\Program Files\7-Zip\Lang\ja.*" %MYAPPS_DIR%\7-Zip\Lang\ja.*

echo;
echo ----- WinPE USB の作成 -----
set WINPE_DIR=C:\WinPE_amd64
set ADK_PATH=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit
set ADK_PACK=%ADK_PATH%\Windows Preinstallation Environment\amd64\WinPE_OCs

call "%ADK_PATH%\Deployment Tools\DandISetEnv.bat"

if not exist "%WINPE_DIR%" (
    echo;
    echo 作業ファイルの作成
    copype amd64 "%WINPE_DIR%"
)
echo;
echo ----- Windows PE ブート イメージをマウント -----
Dism /Mount-Image /Imagefile:"%WINPE_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WINPE_DIR%\mount"
echo;
echo ----- 日本語ランゲージパック -----
Dism /Image:"%WINPE_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\lp.cab"
echo;
echo ----- フォントパック -----
Dism /Image:"%WINPE_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-FontSupport-JA-JP.cab"
echo;
echo ----- デフォルトのUI言語 -----
Dism /Image:"%WINPE_DIR%\mount" /Set-Allintl:ja-jp
echo;
echo ----- インプットロケール -----
Dism /Image:"%WINPE_DIR%\mount" /Set-Inputlocale:0411:00000411
echo;
echo ----- キーボードドライバ (106/109 キーボード) -----
Dism /Image:"%WINPE_DIR%\mount" /Set-Layereddriver:6
echo;
echo ----- タイムゾーン -----
Dism /Image:"%WINPE_DIR%\mount" /Set-Timezone:"Tokyo Standard Time"
echo;
echo ----- startnet.cmd の設定 -----
set STARTNET_CMD=%WINPE_DIR%\mount\Windows\System32\startnet.cmd

echo @echo off > %STARTNET_CMD%
echo wpeinit >> %STARTNET_CMD%
echo powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c >> %STARTNET_CMD%
echo setlocal >> %STARTNET_CMD%
echo set C2Z=CDEFGHIJKLMNOPQRSTUVWXYZ >> %STARTNET_CMD%
echo set /a i=0 >> %STARTNET_CMD%
echo :StartFor >> %STARTNET_CMD%
echo if %%i%% leq 23 (goto IfThen) else goto EndFor >> %STARTNET_CMD%
echo :IfThen >> %STARTNET_CMD%
echo call set DRV=%%%%C2Z:~%%i%%,1%%%%>> %STARTNET_CMD%
echo if exist %%DRV%%:\.MyApps\setenv.bat ( >> %STARTNET_CMD%
echo     %%DRV%%:\.MyApps\setenv.bat >> %STARTNET_CMD%
echo     goto BreakFor >> %STARTNET_CMD%
echo ) >> %STARTNET_CMD%
echo set /a i+=1 >> %STARTNET_CMD%
echo goto StartFor >> %STARTNET_CMD%
echo :BreakFor >> %STARTNET_CMD%
echo :EndFor >> %STARTNET_CMD%
echo endlocal >> %STARTNET_CMD%

echo;
echo ----- イメージの最適化 -----
dism /image:"%WINPE_DIR%\mount" /cleanup-image /startcomponentcleanup
echo;
echo ----- イメージを保存してマウントを解除 -----
dism /unmount-image /mountdir:"%WINPE_DIR%\mount" /commit
echo;
echo ----- Windows PE USB の作成 -----
echo;
MakeWinPEMedia /UFD "%WINPE_DIR%" P:

endlocal

pause

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1