こんにちは。七宮さん(@Shichinomiya_s)です。
こんにちは。ぽらりすです。
今回の記事は、microSDのローカルディスク化について書いていきたいと思います。
ネットブック時代やWindows タブレット最盛期の時に毎回話題になっていた『microSDメモリのローカルディスク化』ですが、近年でもSurface Proに128GBモデルで容量が足りなくなっている人や、低価格化を実現するためにEMMCを採用して換装が容易でない端末にmicroSDを足して使う方も多いのではないかと思い更新しました。
私もその一人で、ASUS TransBook T304UAというデタッチャブルと呼ばれるキックスタンドが付いた2 in 1 PC(簡単に言うとSur○aceのパクリ)を使っているのですが、ケチッて128GBを購入してしまったので容量が足りず、止む無くmicroSDにデータを退避させていました。
退避できるのだからいいじゃ無いかと思うかもしれませんが、microSDは『リムーバブル』と呼ばれる『本体から容易に取り出せるメディアデバイス』ですので、ソフトのインストール場所に指定すると弾かれる等の制約が結構多いのです。
その為、『リムーバブル』デバイスをあたかも『ローカルディスク』化させるのが一時期流行りました。
しかし、現在の主流である64bitに対応していなかったりなど、何かと問題があるので、今回の記事では64bitに対応させる方法について書いていきます。
まず、紹介する方法ですが『microSDメモリのローカルディスク化』です。
シンボリック・リンクや仮想VHDはちょっと趣旨が違うのでそちらに関しては記載しません。
用意するもの
・Hitachi Micro Drive Filter Driverの64bit対応版(改変版) (ミラー)
・Windows 10 SDK
・テキストエディタ(メモ帳でも代用可能)
行う前にやっておく事
セキュアブート・BitLockerの解除
※改変ドライバはVirusToolにて検査し、ウイルスの感染などはない事を確認しています。ただし、Uploaded.netからダウンロードする場合は悪質な広告などから、『cfadisk-x64-1.zip.exe』などのマルウェアが降ってくる場合があるので気をつけましょう。怖い方は私がOneDriveにアップロードしたミラーから落とすのが安全です。
cfadisk-x64-1.zip→VirusTotal 結果
cfadisk.inf→VirusTotal 結果
cfadisk.sys→VirusTotal 結果
動作確認済み環境
・ASUS TransBook T304UA (Windows 10 Build 1803 64bit)
所要時間
15分〜1時間
全体の流れ
Ⅰ.ドライバの準備
Ⅱ.準備したドライバへの自己署名
Ⅲ.ドライバー署名の強制の無効化
ⅳ.ドライバのインストール
Ⅰ.ドライバの準備
①ダウンロードしたファイルを解凍します。解凍するとこのようなファイル構造になっていますので、『cfadisk.inf』をテキストエディタで開きます。
②自分の環境に合わせるために、不必要な記述を削除します。
画像赤線部分の『IDE\DiskTS64GCF400______________________________20101008』を2箇所削除します。
↓削除前
↓削除後
③デバイスマネージャを開き、ローカルディスク化したいmicroSDカードリーダーやUSBメモリをダブルクリックさせます。プロパティが表示されますので、『詳細』タブを開き、『ハードウェアID』の一番上の項目をコピーして下さい。
④コピーができたら、先ほど削除した部分に貼り付けます。
私の場合、ハードウェアIDが『USBSTOR\Disk&Ven_Multiple&Prod_Card__Reader&Rev_1.00』ですので
[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_Multiple&Prod_Card__Reader&Rev_1.00
[cfadisk_device.NTamd64]
%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_Multiple&Prod_Card__Reader&Rev_1.00
といった感じでペーストさせます。(赤文字がペーストしたもの)
ペーストが出来れば、ドライバの準備は終了です。次に進みましょう。
Ⅱ.準備したドライバへの自己署名
Windows 8以降ではドライバの『デジタル署名』と言うものが必須となっています。理由としては、悪意のあるドライバが充てられないようにと言う意味だとは思いますが、何かと不便になっています…
Windowsのスタートアップ設定の一つである『ドライバ署名の強制を無効化する』を選択して起動させればよいのですが、現在では『完全に署名がないもの』はインストールできに仕組みとなってしまっています。
その為、『自己署名』を行い、とりあえずデジタル署名を発行させなければいけないのです。
それでは、自己署名の方法について記載していきます。
①用意するものに記載したWindows 10 SDKをインストールさせます。
インストール後に作成されるファイルが欲しいだけにインストールするだけですので、基本的に何もいじらずにそのまま『次へ』を押して進めて頂ければ大丈夫です。
②ローカルディスクC直下に作業用フォルダを作ります。
適当な名前で構いません。私は『sign』と言うフォルダを作りました。
これから先にコマンド操作を行いますので、私と同じフォルダを作って頂ければ、そのままコピペで済みます。
③インストールが終わったら、インストール先ディレクトリにアクセスします。
基本的には『C:\Program Files (x86)\Windows Kits\10\bin』の中だとは思いますが、Windows 10 SDKのバージョンによって変わりますので、Windows kit辺りまでアクセスして、検索機能を使った方が楽かもしれません。
なお、検索機能を使う場合は3つ表示されると思いますが、それぞれ『amd/x86/x64』に別れていますので、一応『x64』のなかに入っているものを使ってください。
④アクセスしたら『certmgr.exe』『makecert.exe』『signtool.exe』をコピーして、先ほど作成した作業用フィルダ(signフォルダ)に貼り付けます。
⑤貼り付けたら管理者権限でコマンドプロンプトを開きます。
開いたら
bcdedit /set TESTSIGNING ON
と入力してください。
『この操作を正しく終了しました』と表示されたら成功です。
この際に、セキュアブートを切っていないと怒られますので、セキュアブートはオフにしておいてください。
⑥ディレクトリの移動をします。
作業用フォルダに移動させるので、お馴染みの
cd C:\Sign
と入力して移動を行います。
⑦次に『自己署名証明書』を作成します。
makecert -pe -r -ss my -n "CN=Sign" Sign.cer
と入力して『Succeeded』と表示されれば作成成功です。
試しに、作業用フォルダを確認してみると、『Sign.cer』というファイルが作成されているのがわかります。
⑧続いて、⑦で作成した『自己署名証明書』を自分のPCにインストールさせます。
注意:『自己署名証明書』は発行したPCでのみ有効です。
certmgr.exe -add Sign.cer -s -r localMachine root
と入力して『CertMgr Succeeded』と表示された後に
certmgr.exe -add Sign.cer -s -r localMachine trustedpublisher
と入力して『CertMgr Succeeded』と表示されれば成功です。
⑨最後に作成した『自己署名証明書』をⅠで準備したドライバに組み込みます。
作業用フォルダに『cfadisk.sys』をコピーさせて下記のコマンドを実行させます。
signtool.exe sign -a -v -s my -n Sign cfadisk.sys
実行させた後に表示される文字列に『Number of files successfully Signed: 1』と表示されれば成功です。『cfadisk.sys』を元の準備したフォルダに上書きしてください。
なお、以前にも自己署名をしたことのある人は
signtool.exe sign -a -v -s my -n Sign cfadisk.sys
と実行させてください。こちらも実行させた後に表示される文字列に『Number of files successfully Signed: 1』と表示されれば成功です。
※最後に実行例を記載しておきますので、分からなければそちらをご覧ください。
Ⅲ.ドライバー署名の強制の無効化
これは知っている方が殆どだと思いますが、Windows 10で『設定→更新とセキュリティ→回復』にアクセスして『PCの起動をカスタマイズする』という項目で『今すぐ再起動』とクリックします。
すると、オプションの選択画面が出るので、『トラブルシューティング→詳細オプション→一番下のその他の項目(名前は忘れました)』に進みます。
『スタートアップ設定』をクリックして『再起動』をクリックします。
再起動して、起動オプションが表示されたらキーボードの『7かF7』を押してください。
これで、ドライバー署名の強制を無効化した状態で起動ができます。
ⅳ.ドライバのインストール
いよいよ最終行程です。
①ドライバー署名の強制を無効化した状態で起動したら、デバイスマネージャを開きます。
②ローカルディスク化したいデバイスの上で右クリックをして『ドライバの更新』を選択します。
③『コンピュータを参照してドライバーソフトウェアを検索』をクリックします。
④『コンピューター上の利用可能なドライバー一覧から選択します』をクリックします。
⑤『ディスクを使用』をクリックします。
⑥『参照』をクリックして、準備したドライバーのフォルダにアクセスして『cfadisk.inf』を選択します。
⑦警告が表示されますが、『はい』を選択します。
⑧またまた警告が表示されますが、『このドライバー ソフトウェアをインストールします』をクリックします。
⑨これでインストールが完了したら成功です。そのまま再起動して問題無く起動し、認識されていたら成功です。
お疲れ様でした。最後に、コマンドの実行例を載せておきます。
・コマンド実行例
Microsoft Windows [Version 10.0.17134.112]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>bcdedit /set TESTSIGNING ON
この操作を正しく終了しました
C:\Windows\system32>cd C:\Sign
C:\Sign>makecert -pe -r -ss my -n "CN=Sign" Sign.cer
Succeeded
C:\Sign>certmgr.exe -add Sign.cer -s -r localMachine root
CertMgr Succeeded
C:\Sign>certmgr.exe -add Sign.cer -s -r localMachine trustedpublisher
CertMgr Succeeded
C:\Sign>signtool.exe sign -a -v -s my -n Sign cfadisk.sys
The following certificate was selected:
Issued to: Sign
Issued by: Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: E36451F9C2ACB56E6549040792350757295D3AB1
Done Adding Additional Store
Successfully signed: cfadisk.sys
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
C:\Sign>
以前にも自己署名をした場合
Microsoft Windows [Version 10.0.17134.112]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>bcdedit /set TESTSIGNING ON
この操作を正しく終了しました
C:\Windows\system32>cd C:\Sign
C:\Sign>makecert -pe -r -ss my -n "CN=Sign" Sign.cer
Succeeded
C:\Sign>certmgr.exe -add Sign.cer -s -r localMachine root
CertMgr Succeeded
C:\Sign>certmgr.exe -add Sign.cer -s -r localMachine trustedpublisher
CertMgr Succeeded
C:\Sign>signtool.exe sign -a -v -s my -n Sign cfadisk.sys
The following certificates have been found to be suitable for signing:
Issued to: Test Sign
Issued by: Test Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: E36451F9C2ACB56E6549040792350757295D3AB1
Issued to: Sign
Issued by: Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: C31C14B7884B4D9FB8674E89DF01981EAAD6BB5D
Issued to: Test Sign
Issued by: Test Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: A04D186504CC6C1006B38C9D0B224A3C1A714F78
Issued to: Sign
Issued by: Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: 65912F8CCD629C0B1EAC74667642032A24FE79D4
Issued to: Test Sign
Issued by: Test Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: 62F49AED30BD421C411B7E8B85A6A13AB7CCBEC0
The following certificate was selected:
Issued to: Sign
Issued by: Sign
Expires: Sun Jan 01 08:59:59 2040
SHA1 hash: 65912F8CCD629C0B1EAC74667642032A24FE79D4
Done Adding Additional Store
Successfully signed: cfadisk.sys
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
C:\Sign>