\.\PHYSICALDRIVE1などのディスク情報を調べる。
\.\PHYSICALDRIVE1
参考資料のとおりにコマンドを入れてみる。
Get-WmiObject Win32_DiskDrive | Select-Object -Property BytesPerSector, DeviceID, Model, Partitions, Size | Sort-Object DeviceID | Out-GridView
DataGridView って Ps から簡単に使えるんですね
wmic でやると
wmic でやると、ちょっとめんどくさい。
結果は長いので、vim などで見た方がいい
wmic partition list > part.txt wmic diskdrive list > disk.txt wmic volume list > vol.txt wmic logicaldisk list > letters.txt vim disk.txt
横ではなく縦に並べれば、詳細を見るのが便利かもしれない。
wmic partition get \* /format:list
ちなみに、番号を調べるだけなら、diskpart
でもいい。
DISKPART> list disk DISKPART> select disk 1 DISKPART> list part
パーティションが複数ある場合
\device\harddisk1\partition1
ディスクの採番書式
ディスクの番号の割当は、次のように順番になっている。
パーティション1と2という2つのパーティション構成のストライプボリュームがあるとしましょう。このボリュームは、図10-16のように、\Device\HarddiskVolumes\PhysicalDmVolumes\BlockVolume3というデバイスオブジェクトとして表現されているとします。また、管理者はこのストライプボリュームにドライブ文字Dを割り当て、I/Oマネージャは\Device\HarddiskDmVolumes\ComputerNameDg0\Volume3を参照するために、\Global??\D:というシンボルリンクを定義しているものとします。既に説明したように、このシンボルリンクは https://atmarkit.itmedia.co.jp/fwin2k/bookpreview/insidewin42/insidewin42_07.html
https://docs.oracle.com/cd/E57425_01/121/NTQRF/ap_raw.htm
物理ディスクは、ディスク全体を示し、次のように指定します。
\Device\Harddiskx\Partition0
シンボリック・リンク名\.\PhysicalDrivexは、コンピュータ内のすべてのハード・ディスクに対して、Windowsによって自動的に定義されます。たとえば、3つのハード・ディスクがあるコンピュータには、次のシンボリック・リンクがあります。
txt \\.\PhysicalDrive0 \\.\PhysicalDrive1 \\.\PhysicalDrive2
これらの名前は、内部的に次のように展開されます。\\.\PhysicalDrive0 =\Device\Harddisk0\Partition0 \\.\PhysicalDrive1 =\Device\Harddisk1\Partition0 \\.\PhysicalDrive2 =\Device\Harddisk2\Partition0
ということなので、パーティション番号とディスク番号がわかれば、そのドライブへアクセスできるとわかる。
たとえば、\\.\PHYSICALDRIVE1
があって、次のように wmic partition list
の結果があったとする
GPT: Unknown Disk #1, Partition #0 1 GPT: Unknown Disk #1, Partition #1 1 GPT: Unknown Disk #1, Partition #2 1
すると、次のようにアクセスできるはずである。
\Device\Harddisk1\Partition0
ポイントとしては、パーティションはゼロから数えるということ。
msys / wsl から dd で 生デバイスにアクセスできるか試す。
msys で dd すれば良さそうに思えるが、\\?\Device\
にはアクセスできずに、ファイルが作成されている。つまり、cygwin/msys のdd コマンドは、生デバイスをアクセス不能。
何なら、WSLのDDもあるが、msysと同じくデバイスにはアクセスできずに終わる。
dd for windows なら
Windows版のDDコマンドを使うしかなさそうですね。
dd の windows 版を試してみる。
.\dd.exe if="d:\sdb3.img" of='\\?\Device\Harddisk1\Partition2' --progress
出来たっぽい
rufus は?
rufus はドライブが見えないとだめだしなぁ 内部的には使ってるんだろうけど、UIで見れない。
Drive? を扱うには
rawrite や windows 版 dd.exe を使うしかなさそう