Home > Windows にまつわる e.t.c.

Windows インストールメディアにドライバーを追加する


Windows をインストールする時に、インストーラーがストレージデバイスを認識せず、別途ドライバーを読み込ませなくてはいけない事があります。

1台2台ならドライバー読み込ませてもいいのですが、台数が多いと大変です。

そんな時は、インストールメディアにドライバーを追加しましょう。

以下のものが必要です

インストールメディアの ISO イメージ
展開したドライバー
WADK(Windows ADK/Windows アセスメント & デプロイメント キット)

WADK は Windows 8 / Windows Server 2012 以降の名で、Windows 7 / Windows Server 2008 R2 以前は、WAIK(Windows AIK/Windows 自動インストール キット)と呼ばれていました。

Windows 8.1 Update 用 Windows アセスメント & デプロイメント キット (Windows ADK)
https://www.microsoft.com/ja-jp/download/details.aspx?id=39982

Windows 7 用の Windows 自動インストール キット (AIK)
https://www.microsoft.com/ja-jp/download/details.aspx?id=5753

 

今回は Windows Server 2012 R2 上での操作を解説します。
Windows Server 2008 R2 / Windows 7 の場合、WAIK のインストール先やディレクトリ構造が違うので、適宜読み替えてください。

Windows Server 2008 R2 は、DISM のオプションも違うので、こちらを参考に読み替えてください

元ネタの MS ドキュメントも参照すると良いかも

展開イメージのサービスと管理のコマンド ライン オプション
https://technet.microsoft.com/ja-jp/library/dd744382(v=ws.10).aspx

 

ざっくり手順

1. ISOイメージをマウントして中身を全てハードディスクにコピー
2. boot.wim にドライバー追加
3. WADK のインストール
4. 新しい ISO イメージ作成

こんな感じの手順になります。

 

ISOイメージをマウントして中身を全てハードディスクにコピー

ISO イメージをマウントして、適当なフォルダーに中身を全てコピーします。
今回は 「D:\work\ISO」 にコピーしました。

物理メディア(DVD)を使う場合は、DVD ドライブにインストールメディアをセットして中身を全てコピーします。

boot.wimにドライバー追加

boot.wim は sources に入っているので、"D:\work\ISO\sources\boot.wim" にあります。
こいつに dism.exe を使ってドライバーを追加します。

まずは、Dism /Get-ImageInfo で boot.wim の中身を確認します。

PS C:\> Dism /Get-ImageInfo /ImageFile:D:\work\ISO\sources\boot.wim

展開イメージのサービスと管理ツール
バージョン: 6.3.9600.17031

イメージの詳細: D:\work\ISO\sources\boot.wim

インデックス: 1
名前: Microsoft Windows PE (x64)
説明: Microsoft Windows PE (x64)
サイズ: 1,062,639,464 バイト

インデックス: 2
名前: Microsoft Windows Setup (x64)
説明: Microsoft Windows Setup (x64)
サイズ: 1,200,329,471 バイト

操作は正常に完了しました。

 

ドライバーをインストールするターゲットは「インデックス: 2」の「Microsoft Windows Setup (x64)」です。

マウントする際は、展開先のディレクトリを先に作っておく必要があるので、先にディレクトリを作成し、Dism /Mount-Image でインストールターゲット(Microsoft Windows Setup (x64))と展開先のディレクトリ(D:\work\offline)を指定して boot.wim をマウントします。

PS C:\> md D:\work\offline


    ディレクトリ: D:\work


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2015/05/01     19:15            offline


PS C:\> Dism /Mount-Image /ImageFile:D:\work\ISO\sources\boot.wim /Index:2 /MountDir:D:\work\offline

展開イメージのサービスと管理ツール
バージョン: 6.3.9600.17031

イメージをマウントしています
[==========================100.0%==========================]
操作は正常に完了しました。

 

マウントが出来たら、あらかじめ展開しておいたドライバーが格納されているディレクトリ(D:\work\RaidDriver)を指定してドライバーを追加します。
複数のドライバーが入ったディレクトリを指定する場合は /recurse オプションを付けます。

PS C:\> Dism /Image:D:\work\offline /Add-Driver /Driver:D:\work\RaidDriver

展開イメージのサービスと管理ツール
バージョン: 6.3.9600.17031

イメージのバージョン: 6.1.7600.16385

インストールするドライバー パッケージを検索しています...
インストールする 2 個のドライバー パッケージが見つかりました。
1 / 2 をインストールしています - D:\work\RaidDriver\NODEV.INF: ドライバー パッケージは正常にインストールされました。
2 / 2 をインストールしています - D:\work\RaidDriver\PERCSAS2.INF: ドライバー パッケージは正常にインストールされました。
操作は正常に完了しました。

 

ドライバーのインストールが出来たら、コミット & アンマウントします。

PS C:\> Dism /Unmount-Image /MountDir:D:\work\offline /Commit

展開イメージのサービスと管理ツール
バージョン: 6.3.9600.17031

イメージを保存しています
[==========================100.0%==========================]
イメージのマウントを解除しています
[==========================100.0%==========================]
操作は正常に完了しました。

 

WADKのインストール

WADK は、更新したファイルを使ってインストールメディアの ISO イメージを作成するのに使います。

WADK のインストールオプションは以下の2つです。

 

新しいISOイメージ作成

WADK をインストールすると、スタートメニューに「展開およびイメージング ツール環境」が追加されているので、こいつを開きます。

「展開およびイメージング ツール環境」を開くと DOS 窓が開きます。かなり深いところがカレントディレクトリーになっていますが、必要な Path は通っているので D:\ でオペレーションしてもかまいません。(PowerShell プロンプトで操作したい場合は、末尾の「おまけ」に Path の通し方を書きましたので参照してください)

まずは起動可能なメディアにするための Windows PE モジュールを任意のフォルダー(D:\work\PE_x64)に展開します。

x64 アーキテクチャ用は「amd64」を、x86 アーキテクチャは「x86」を指定します。

D:\>copype amd64 D:\work\PE_x64

[ 出力省略 ]

186 個のファイルをコピーしました
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。

Success

 

展開された先に etfsboot.com(BIOS用) と efisys.bin(UEFI用) があるので、こいつのフルパス(D:\work\PE_x64\fwfiles\etfsboot.com)と、ISO にするフォルダー(D:\work\ISO)を指定して ISO イメージ(D:\work\NewInstallMedia.iso)を作成します。

D:\>oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,bD:\work\PE_x64\fwfiles\etfsboot.com#pEF,e,bD:\work\PE_x64\fwfiles\efisys.bin D:\work\ISO D:\work\NewInstallMedia.iso

OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility
Copyright (C) Microsoft, 1993-2012. All rights reserved.
Licensed only for producing Microsoft authorized content.


Scanning source tree (500 files in 50 directories)
Scanning source tree complete (999 files in 334 directories)

Computing directory information complete

Image file is 3305668608 bytes (before optimization)

Writing 999 files in 334 directories to D:\work\NewInstallMedia.iso

100% complete

Storage optimization saved 117 files, 22896640 bytes (1% of image)

After optimization, image file is 3285739520 bytes
Space saved because of embedding, sparseness or optimization = 22896640

Done.

 

これでドライバーを追加した ISO イメージが出来ました。

このまま使うなり、物理メディアにするなりはお好きなように :-)

 

ストレージドライバー以外のドライバーの追加

インストール時に認識が必要なストレージ等のドライバーは boot.wim に追加しますが、インストール後の認識で構わないドライバーは、同様手順で install.wim にドライバーを追加します。

ネットワーク共有へのバックアップからベアメタルリストアする用に使用するインストールメディアで NIC 認識させる場合は、boot.wim に NIC ドライバーを追加します。

 

おまけ

インストールメディアの ISO 作成

WADKの oscdimg で、物理メディア(DVD)から ISO イメージが作れます。

oscdimg -n -m -DVD [in Drive] [Output.ISO]

 

ドライバーがバイナリーの時

ドライバーが .exe とかのバイナリー提供の場合は、 7zip で簡単に展開することができます。

7zip 展開に対応していないインストーラーの場合は、インストーラーそのものが展開機能を持っていることが多いので、展開方法をメーカーに確認してください。

 

 

ドライバーだけの ISO ファイルを作る

IPMI のコンソールリダイレクト等のリモート管理機能では、リモートコンピューターの仮想 DVD ドライブに ISO イメージをマウントできますので、他のドライバー等を ISO イメージにしておくと便利です。

oscdimg -j2 -m [ドライバーの入ったフォルダ] [Output.ISO]

 

oscdimg の存在場所に Path を通す

「展開およびイメージング ツール環境」の DOS 窓ではなく、PowerShell 上で作業したい場合は、oscdimg.exe の存在場所に Path を通しておくと良いでしょう。

一時的に Path を追加する場合は以下のようにします。

$env:Path = $env:Path + ";C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg"

x86 の場合は以下を Path に追加します
";C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\Oscdimg"

 

Dism の違い

処理 Windows Server 2012 R2 Windows Server 2008 R2
boot.wim の中身確認 Dism /Get-ImageInfo /ImageFile:D:\work\ISO\sources\boot.wim Dism /Get-WimInfo /WimFile:D:\work\ISO\sources\boot.wim
boot.wim マウント Dism /Mount-Image /ImageFile:D:\work\ISO\sources\boot.wim /Index:2 /MountDir:D:\work\offline Dism /Mount-Wim /WimFile:D:\work\ISO\sources\boot.wim /Index:2 /MountDir:D:\work\offline
ドライバー追加 Dism /Image:D:\work\offline /Add-Driver /Driver:D:\work\RaidDriver 同じ
コミット & アンマウント Dism /Unmount-Image /MountDir:D:\work\offline /Commit Dism /Unmount-Wim /MountDir:D:\work\offline /Commit

 

起動可能メディアにするためのモジュールの違い

Windows Server 2008 R2 で copype amd64 D:\work\PE_x64 とした場合、以下にモジュールが展開されます

BIOS用 D:\work\PE_x64\etfsboot.com
UEFI用 D:\work\PE_x64\efisys.bin

 

今回の例と同じフォルダーに展開している場合、oscdimg は以下のようになります。

oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,bD:\work\PE_x64\etfsboot.com#pEF,e,bD:\work\PE_x64\efisys.bin D:\work\ISO D:\work\NewInstallMedia.iso

 

 

関連情報

Windows Server 2016 インストール メディア に KB を適用する
http://www.vwnet.jp/Windows/WS16/2016101001/OfflineKBInstall4InstallISO.htm

Windows Server新規インストールの自動応答ファイルの作り方
http://www.vwnet.jp/Windows/WS12R2/2016072001/new_install__untitled.htm

Windows Server / Windows Client OS のカスタム インストール メディアを作成する
http://www.vwnet.jp/Windows/WS16/2017070901/EditISO.htm 

デバイスドライバーをエクスポートする
http://www.vwnet.jp/Windows/w10/2018041501/ExportDeviceDriver.htm

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.