========================================================================== DevTest -- Device Benchmark Test Program for Windows 2000/XP Version 1.05a edition #02 (C) Copyright 2002-2006, TARO ==========================================================================  DevTest はストレージ・デバイスの情報を表示し、性能を調べるためのWindows 2000/XP用ベンチマーク テスト プログラムです。  Windows 2000/XPで認識できるハードディスクやリムーバブルディスク、CD/ DVD-ROMドライブの性能を調べることができます。  書き込みテストについてはファイルシステムを破壊するために対応していません が、ソースコードを公開していますので開発環境と知識があれば書き込みテストの 対応も可能です。  また、ソースはLinux にも対応しておりコンパイルすることでLinux 用DevTestを 作成できます。ただし、Linux 用は作者の環境で動いただけで動作保証はできませ んし使い方の説明等は特にしませんので、各自で対応してください。 ※ Windows 95/98/Meには対応していません。 ※ 本バージョン(ver.1.05a#01)から、ドライブレター指定の動作と、ベンチマーク テストでのリード/ライトの動作が変更されました。詳しくは「§2-7 ver.1.05a #01 からの仕様変更について」を参照してください。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-1 ファイル構成 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= devtest.exe 実行プログラム devtest.txt 説明(本ファイル) devtest-1.05a02-src.zip ソースコード(アーカイブ) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-2 実行環境 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= OS: Windows 2000 Windows XP  ※ Windows 95/98/Meには対応していません。  ※ Windows 2000/XP では Administrator(管理者)権限を持つユーザーで実行   してください。  DevTest は Windows 2000/XP用のコンソール用プログラムです。コマンド・プロ ンプトからDevTestとタイプして実行・使用してください。  DevTest を実行するユーザーは、ドライブにアクセスする権限が必要となります。 管理者(Adminisrator)権限のあるユーザーでなければ実行できない場合がありま す。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §1-3 使用、転載、再配付について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  このプログラムの著作権は作者が保持しています。  以下の条件に従って自由に使用してください。 1. 著作権表示を変更しないこと。 2. このプログラムを使用したことによって生じた損害はまったく保証し ない。 3. 作者はこのプログラムに不備があっても、それを訂正する義務を負わ ない。 4. 収録されているすべてのファイルを一括して配付すること。  感想・障害報告等、作者への連絡は、 e-mail taro.kobayashi@nifty.com まで、願いします。  電子メールでのお問い合わせは返事が遅れたり、あるいは返信のメールが行かな いこともありますので、予めご了承ください。  転載、再配付については作者の許諾を得る必要はありません。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-1 DevTest の基本的な使い方 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ■ドライブ情報の表示  コマンドプロンプトからDevTest をパラメータなしで実行すると次のように、 ドライブレターに割り当てられているディスクドライブの一覧を表示します。 実行例:devtest ------------------------------------------------------------------------------ C: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 4.2G D: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 25.1G E: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 25.1G F: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 16.7G G: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 41.9G K: 0-0-0 RATOC USB-IDE Dock 1.10 - Direct access device RMB 163.9G Q: 0-1-0 HL-DT-STDVD-ROM GDR8160B0011 - CD/DVD-ROM device RMB ------------------------------------------------------------------------------  Cドライブの情報を表示したい場合には、コマンドラインに「devtest c: -p」と 入力します。FAT/NTFS/UDFフォーマットについて詳細な情報を表示したい場合は 「devtest c: -p -v」と入力します。 実行例:devtest c: -p ------------------------------------------------------------------------------ c: 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 4.2G IBM FLOPPY-DISK FORMAT ( 512) 8385867 sectors 4,293,563,904B SYSBOOT 812B-9D06 8385867 .. FAT32 MSWIN4.1 ------------------------------------------------------------------------------ ※ 「FLOPPY-DISK FORMAT」と表示されるのは、Cドライブだけを見た場合、パーティ   ションを持たない単独ドライブとして扱うからです。  パーティション情報を表示したい場合、物理ディスクドライブの指定を使います。  物理ディスクドライブの一覧を表示したい場合には、「devtest disk」と入力します。 実行例:devtest disk ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G disk1 0-0-0 VIA 6410 RAID 0 - Direct access device FIX 407.8G disk2 0-0-0 RATOC USB-IDE Dock 1.10 - Direct access device RMB 163.9G ------------------------------------------------------------------------------  物理ディスクドライブ 0番のパーティション情報を表示したい場合には、 「devtest disk0 -p」と入力します。更に詳しい情報を表示したい場合には、-v オプションを追加してください。 実行例:devtest disk0 -p ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G IBM HARD-DISK FORMAT ( 512) 321672960 sectors 164,696,555,520B No [Start CHS- End CHS] StartSec SectorNum HH:Partition Type SIZE --- --------------------- ---------- ---------- --:-------------------- ------- *1 [000 01 01-209 FE 3F] 63 8385867 0B:FAT32 4.2G 2 [20A 00 01-3FF FE 3F] 8385930 313283565 0F:Extended LBA 160.4G e1 [20A 01 01-3FF FE 3F] 8385993 49142772 07:NTFS 25.1G e2 [3FF 01 01-3FF FE 3F] 57528828 49142772 07:NTFS 25.1G e3 [3FF 01 01-3FF FE 3F] 106671663 32756472 07:NTFS 16.7G e4 [3FF 01 01-3FF FE 3F] 139428198 81931437 07:NTFS 41.9G e5 [3FF 01 01-3FF FE 3F] 221359698 100309797 07:NTFS 51.3G ------------------------------------------------------------------------------  先頭にアスタリスク「*」 があるパーティションはアクティブパーティションです。 実行例:devtest disk0 -p -v ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G IBM HARD-DISK FORMAT ( 512) 321672960 sectors 164,696,555,520B No [Start CHS- End CHS] StartSec SectorNum HH:Partition Type SIZE --- --------------------- ---------- ---------- --:-------------------- ------- *1 [000 01 01-209 FE 3F] 63 8385867 0B:FAT32 4.2G Jump Code EB 58 90 OEM ID MSWIN4.1 Sector Size 512 Sector per Cluster 4 (4 bytes) Reserve Sector 32 FAT Number 2 Sector Volume 0 (0 bytes) Media Descriptor F8H Sector per Track 63 Head Number 255 Hidden Sector 63 Long Sector Volume 8385867 (4,293,563,904 bytes) Big FAT Sector 16316 Ext Flags 0000H FS Version 0000H Root Cluster 292054 FS Information 1 Backup Boot Sector 6 Drive No (primary) 0 Boot Signature 29H Serial No 812B-9D06 Volume Label SYSBOOT File System FAT32 〜 以下省略 〜 ------------------------------------------------------------------------------  ※ 表示される内容はドライブやパーティションによって異なります。  物理ディスクドライブ 0番のデバイス情報を表示したい場合には、コマンドライ ンに「devtest disk0 -d」と入力します。 実行例:devtest disk0 -d ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G Disk Capabilities Maximum Transfer Length 131072 Maximum Physical Pages 32 Supported Asynchronous Events 0 Alignment Mask 1 Tagged Queuing 0 Adapter Scans Down 0 Adapter Uses PIO 0 Disk Length Information 164,696,555,520 (164.6G) Disk Drive Geometry Media Type:0CH Fixed Cylinder/Track/Sector:Size 20023/255/63 : 512 (164,694,781,440) Disk Partition Information Partition Type:00 Empty Starting Offset 0 (0.0B) Partition Length 164,696,555,520 (164.6G) Hidden Sectors 0 Partition Number 0 Test Unit Ready OK modeSense: Write Protect 0 Disable PageOut/Force Unit Access 0 modeSense: pagecode 08H size: 10 - Cache Control Parameter Write Cache Enable ON Multiplication Factor OFF Read Cache Disable OFF Demand Read Retention Priority 0 Write Retention Priority 0 Disable Pre-fetch Transfer Length 0 Minimum Pre-fetch 0 Maximum Pre-fetch 0 Maximum Pre-fetch Ceiling 0 ------------------------------------------------------------------------------  ※ 表示される情報の種類や内容はドライブによって異なります。    ドライブによっては数百行以上の情報を表示します。  S.M.A.R.T.情報を表示したい場合には、--smartオプションを追加します。 実行例:devtest disk0 --smart ------------------------------------------------------------------------------ disk0 0-0-0 HDT722520DLAT80 V44O - Direct access device FIX 200.0G S.M.A.R.T. Version 1 IDE Device map 21H IDE Primary master ATAPI Primary slave Model HDT722520DLAT80 Firmware V44OA96A Serial Number VD051BTDDM86GL Capacity (LBA) 390,721,968 (200.0G) Buffer size 15,349 (7.8M) ID# S.M.A.R.T. Attribute Val Wst Ths Flags RAW Value 1 Raw Read Error Rate 100 100 16 --1-OP 0 2 Throughput Performance 100 100 50 ---1-P 0 3 Spin Up Time 204 204 24 ---1OP 12,896,567,461 4 Start/Stop Count 100 100 0 -1--O- 19 5 Reallocated Sectors Count 100 100 5 11--OP 0 7 Seek Error Rate 100 100 67 --1-OP 0 8 Seek Time Performance 100 100 20 ---1-P 0 9 Power-On Hours 100 100 0 -1--O- 890 10 Spin Retry Count 100 100 60 -1--OP 0 12 Device Power Cycle Count 100 100 0 11--O- 19 192 Power off Retract Count 100 100 50 11--O- 54 193 Load/Unload Cycle Count 100 100 50 -1--O- 54 194 Temperature 166 166 0 ----O- 154,620,067,873 196 Reallocation Event Count 100 100 0 11--O- 0 197 Current Pending Sector Count 100 100 0 1---O- 0 198 Uncorrectable Sector Count 100 100 0 --1--- 0 199 UltraDMA CRC Error Rate 200 200 0 --1-O- 13 ------------------------------------------------------------------------------  S.M.A.R.T.情報のRAW Valueは48ビットの情報を持っていますが、メーカー/モデルに よって意味や使い方が異なります。  上の例ではID#3 Spin Up TimeとID#194 Temperatureは16ビット毎に現在値/最大 /最小の3つの情報が含まれています。  この形式の属性は--smart_attrオプションを使うことで正しく表示できます。 実行例:devtest disk0 --smart --smart_attr 3:divword --smart_attr 194:divword ------------------------------------------------------------------------------ disk0 0-0-0 HDT722520DLAT80 V44O - Direct access device FIX 200.0G S.M.A.R.T. Version 1 IDE Device map 21H IDE Primary master ATAPI Primary slave Model HDT722520DLAT80 Firmware V44OA96A Serial Number VD051BTDDM86GL Capacity (LBA) 390,721,968 (200.0G) Buffer size 15,349 (7.8M) ID# S.M.A.R.T. Attribute Val Wst Ths Flags RAW Value 1 Raw Read Error Rate 100 100 16 --1-OP 0 2 Throughput Performance 100 100 50 ---1-P 0 3 Spin Up Time 204 204 24 ---1OP 165 178 3 4 Start/Stop Count 100 100 0 -1--O- 19 5 Reallocated Sectors Count 100 100 5 11--OP 0 7 Seek Error Rate 100 100 67 --1-OP 0 8 Seek Time Performance 100 100 20 ---1-P 0 9 Power-On Hours 100 100 0 -1--O- 890 10 Spin Retry Count 100 100 60 -1--OP 0 12 Device Power Cycle Count 100 100 0 11--O- 19 192 Power off Retract Count 100 100 50 11--O- 54 193 Load/Unload Cycle Count 100 100 50 -1--O- 54 194 Temperature 166 166 0 ----O- 33 19 36 196 Reallocation Event Count 100 100 0 11--O- 0 197 Current Pending Sector Count 100 100 0 1---O- 0 198 Uncorrectable Sector Count 100 100 0 --1--- 0 199 UltraDMA CRC Error Rate 200 200 0 --1-O- 13 ------------------------------------------------------------------------------  --smartオプションは-vオプションと併用するとで、更に詳細な情報を表示します。 ■ベンチマークテスト  物理ディスクドライブ0 番のベンチマークテストを実行したい場合には、 コマンドラインに「devtest disk0 --benchmark」と入力します。コマンドテストと シークテスト等、対応するすべてのテストを実行したいときは、 「devtest disk0 --benchmark all」とします。 実行例:devtest disk0 --benchmark all ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Test Unit Ready command : 0.00ms No Motion Seek command : 0.00ms (use Read command) Average latency Time : 0.00ms TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Sequential Seek (seek sector 63) : 0.55ms (use Read Command) Random Seek : 13.27ms (use Read Command) TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / START 512B : 3955.9 kB/s ( 31.65 Mbps) Sequential Read / START 16384B : 52690.9 kB/s ( 421.53 Mbps) Sequential Read / START 65536B : 58152.3 kB/s ( 465.22 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / END 512B : 3847.8 kB/s ( 30.78 Mbps) Sequential Read / END 16384B : 31249.7 kB/s ( 250.00 Mbps) Sequential Read / END 65536B : 32178.2 kB/s ( 257.43 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read /AVERAGE 512B : 3901.9 kB/s ( 31.21 Mbps) Sequential Read /AVERAGE 16384B : 41970.3 kB/s ( 335.76 Mbps) Sequential Read /AVERAGE 65536B : 45165.2 kB/s ( 361.32 Mbps) ---------------- -------- ------- : ------------- --------------- Random Read / 512B : 36.3 kB/s ( 0.29 Mbps) Random Read / 16384B : 1075.9 kB/s ( 8.61 Mbps) Random Read / 65536B : 4259.8 kB/s ( 34.08 Mbps) ------------------------------------------------------------------------------  一般公開用のDevTestはドライブ指定での書き込みテストは実行できませんが、 データファイルを使用するファイルモードでは書き込みテストも実行可能です。  Cドライブに1Gバイトのテストファイルを作成して、ベンチマークテストを 実行したい場合、--testfileと--testsizeオプションを使います。 実行例:devtest c: --benchmark all --testfile c:\testfile.img --testsize 1G ------------------------------------------------------------------------------ ***** BENCHMARK TEST ***** FILE MODE c:\testimg.img (1.0G : 1,073,741,824 bytes) c: 0-0-0 Maxtor 6B200P0 BAH4 - Direct access device FIX 4.2G TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Test Unit Ready command : 0.00ms No Motion Seek command : 0.00ms (use Read command) Average latency Time : 0.00ms TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Sequential Seek (seek sector 63) : 0.59ms (use Read Command) Random Seek : 9.73ms (use Read Command) Create TestFile (1073741824) Create 993001472/1073741824 ( 92%) TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / START 512B : 5480.8 kB/s ( 43.85 Mbps) Sequential Read / START 16384B : 57126.6 kB/s ( 457.01 Mbps) Sequential Read / START 65536B : 62557.1 kB/s ( 500.46 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read / END 512B : 5474.2 kB/s ( 43.79 Mbps) Sequential Read / END 16384B : 59812.5 kB/s ( 478.50 Mbps) Sequential Read / END 65536B : 60338.5 kB/s ( 482.71 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Read /AVERAGE 512B : 5477.5 kB/s ( 43.82 Mbps) Sequential Read /AVERAGE 16384B : 58469.5 kB/s ( 467.76 Mbps) Sequential Read /AVERAGE 65536B : 61447.8 kB/s ( 491.58 Mbps) ---------------- -------- ------- : ------------- --------------- Random Read / 512B : 63.8 kB/s ( 0.51 Mbps) Random Read / 16384B : 2003.6 kB/s ( 16.03 Mbps) Random Read / 65536B : 6748.0 kB/s ( 53.98 Mbps) TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Write / START 512B : 5197.6 kB/s ( 41.58 Mbps) Sequential Write / START 16384B : 48764.2 kB/s ( 390.11 Mbps) Sequential Write / START 65536B : 60011.0 kB/s ( 480.09 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Write / END 512B : 5016.8 kB/s ( 40.13 Mbps) Sequential Write / END 16384B : 47906.8 kB/s ( 383.25 Mbps) Sequential Write / END 65536B : 63220.4 kB/s ( 505.76 Mbps) ---------------- -------- ------- : ------------- --------------- Sequential Write /AVERAGE 512B : 5107.2 kB/s ( 40.86 Mbps) Sequential Write /AVERAGE 16384B : 48335.5 kB/s ( 386.68 Mbps) Sequential Write /AVERAGE 65536B : 61615.7 kB/s ( 492.93 Mbps) ---------------- -------- ------- : ------------- --------------- Random Write / 512B : 324.0 kB/s ( 2.59 Mbps) Random Write / 16384B : 3876.3 kB/s ( 31.01 Mbps) Random Write / 65536B : 12775.3 kB/s ( 102.20 Mbps) ---------------- ----------- ---- : ------------- (-------------) Random R/W 50:50 Read Speed 49.1 : 1932.7 kB/s ( 15.46 Mbps) Random R/W 50:50 Write Speed 50.9 : 2006.6 kB/s ( 16.05 Mbps) Random R/W 50:50 Read Count 49.0 : 59 io/s (-------------) Random R/W 50:50 Write Count 51.0 : 62 io/s (-------------) ---------------- ----------- ---- : ------------- (-------------) Random R/W 90:10 Read Speed 91.1 : 3373.0 kB/s ( 26.98 Mbps) Random R/W 90:10 Write Speed 8.9 : 329.8 kB/s ( 2.64 Mbps) Random R/W 90:10 Read Count 91.2 : 104 io/s (-------------) Random R/W 90:10 Write Count 8.8 : 10 io/s (-------------) ---------------- ----------- ---- : ------------- (-------------) Random R/W 10:90 Read Speed 8.9 : 605.7 kB/s ( 4.85 Mbps) Random R/W 10:90 Write Speed 91.1 : 6189.4 kB/s ( 49.52 Mbps) Random R/W 10:90 Read Count 8.9 : 18 io/s (-------------) Random R/W 10:90 Write Count 91.1 : 191 io/s (-------------) ------------------------------------------------------------------------------ ※ --testfileオプションを指定した場合でも、disk0やC:といったドライブ指定は 必要です。テストファイルを作成するドライブを指定してください。  DevTestはCD/DVD-ROMドライブの速度を計測することもできます。--cdspeedオプ ションまたは--dvdspeed オプションを指定するとそれぞれCD-ROM/DVD-ROMで何倍 速にあたるか表示します。 実行例:devtest Q: --benchmark -c -s --cdspeed ------------------------------------------------------------------------------ Q: 0-1-0 HL-DT-STDVDRAM GSA-4040BA109 - RMB 4.4G TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Test Unit Ready command : 5.64ms No Motion Seek command : 17.05ms Average latency Time : 63.82ms TEST MODE : TIME(ms) REMARK --------------------------------- : --------- ------------------- Sequential Seek (seek sector 32) : 15.70ms Random Seek : 94.24ms TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) CD/DVD ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / START 2048B : 1694.3 kB/s ( 13.55 Mbps) x1.2 Sequential Read / START 16384B : 2774.3 kB/s ( 22.19 Mbps) x2.0 Sequential Read / START 65536B : 2774.3 kB/s ( 22.19 Mbps) x2.0 ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / END 2048B : 1665.8 kB/s ( 13.32 Mbps) x1.2 Sequential Read / END 16384B : 6453.1 kB/s ( 51.62 Mbps) x4.6 Sequential Read / END 65536B : 6442.2 kB/s ( 51.53 Mbps) x4.6 ---------------- -------- ------- : ------------- --------------- ------ Sequential Read /AVERAGE 2048B : 1680.1 kB/s ( 13.44 Mbps) x1.2 Sequential Read /AVERAGE 16384B : 4613.7 kB/s ( 36.91 Mbps) x3.3 Sequential Read /AVERAGE 65536B : 4608.2 kB/s ( 36.86 Mbps) x3.3 ---------------- -------- ------- : ------------- --------------- ------ Random Read / 2048B : 13.1 kB/s ( 0.10 Mbps) x0.0 Random Read / 16384B : 103.2 kB/s ( 0.82 Mbps) x0.0 Random Read / 65536B : 389.1 kB/s ( 3.11 Mbps) x0.2 ------------------------------------------------------------------------------  --cpuUsageオプションを指定するとベンチマークテスト実行時のCPU 使用率を表 示します。また、--cpuUsageオプションと--cdSpeed オプション/--dvdSpeedオプ ションは同時に指定できます。 実行例:devtest disk0 --benchmark --cpuUsage ------------------------------------------------------------------------------ disk0 0-0-0 HDS722516VLAT80 V34O - Direct access device FIX 164.6G TEST MODE / TRACK SIZE : Speed kB/s ( Speed Mbps) CPU % ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / START 512B : 3288.4 kB/s ( 26.31 Mbps) 26.0% Sequential Read / START 16384B : 52942.2 kB/s ( 423.54 Mbps) 19.3% Sequential Read / START 65536B : 55989.6 kB/s ( 447.92 Mbps) 21.1% ---------------- -------- ------- : ------------- --------------- ------ Sequential Read / END 512B : 3916.3 kB/s ( 31.33 Mbps) 19.8% Sequential Read / END 16384B : 31369.9 kB/s ( 250.96 Mbps) 13.3% Sequential Read / END 65536B : 31828.7 kB/s ( 254.63 Mbps) 20.8% ---------------- -------- ------- : ------------- --------------- ------ Sequential Read /AVERAGE 512B : 3602.3 kB/s ( 28.82 Mbps) Sequential Read /AVERAGE 16384B : 42156.0 kB/s ( 337.25 Mbps) Sequential Read /AVERAGE 65536B : 43909.1 kB/s ( 351.27 Mbps) ---------------- -------- ------- : ------------- --------------- ------ Random Read / 512B : 35.8 kB/s ( 0.29 Mbps) 1.8% Random Read / 16384B : 1108.7 kB/s ( 8.87 Mbps) 5.2% Random Read / 65536B : 4063.2 kB/s ( 32.51 Mbps) 18.2% ------------------------------------------------------------------------------  --csvResult オプションを追加すると、ベンチマーク結果を表計算ソフト等で扱 える CSVファイルとして保存できます。  例:devtest disk0 --benchmark --csvResult benchmark.csv  この方法で作成した CSVファイルから、グラフを作成する Webサービスを設置し ています。興味のある方は次の Webページを見てください。 http://www.runser.jp/lib/devtest/devtest-graph.php  ハードディスクやCD/DVDの全領域をリードして転送速度を調べたい場合は、 --benchmarkと--readBlockコマンドを使います。また、結果を表計算ソフト等で扱 えるきる CSVファイルに保存したい場合は、--csvResultオプションを追加します。 実行例:devtest disk0 --benchmark --readBoock --csvResult readblock.csv ------------------------------------------------------------------------------ ***** Read Block ***** Start Address 0 Read Count 625142448 Buffer size 65536 Read 625142448/625142447(1000.0%) 38068.7kB/s (Remain 00s Read completed. 5742sec ( 1h 35m ) ------------------------------------------------------------------------------  この場合、テスト結果はreadblock.csvとして保存されます。  ベンチマークテストと同様に、この方法で作成した CSVファイルからグラフを作 成する Webサービスを設置しています。興味のある方は次の Webページを見てくだ さい。 http://www.runser.jp/lib/devtest/devtest-graph.php -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-1 DevTest コマンドライン書式 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 【書式-1】デバイス情報表示 devtest [<デバイス名>] [<オプション>] 【書式-2】ベンチマークテスト devtest <デバイス名> --benchmark [<オプション>] 【書式-3】ダンプ表示 devtest <デバイス名> --dump <アドレス> [<オプション>] 【書式-4】表面検査 devtest <デバイス名> --surfscan [<アドレス>] [<オプション>] 【書式-5】メディア操作 devtest <デバイス名> --medium <メディアコマンド> [<オプション>] <デバイス名> <文字>: … ドライブ・レター ?: を指定した場合は A〜Zドライブを検索 disk[<番号>] … 物理ディスクドライブ 番号を省略した場合は物理ディスクドライブを検索 cdrom[<番号>] … CD/DVDドライブ 番号を省略した場合はCD/DVDドライブを検索 scsi[<番号>] … SCSIデバイス 番号を省略した場合はSCSIデバイスを検索 <コマンド> --benchmark [<テスト>] … ベンチマークテスト  テストは command,seek,read,write,randomRW の5種 類があり、all を指定するとすべてのテストを実行しま す。<テスト>を省略した場合はreadを指定したとみなし ます。 --dump <アドレス> … ダンプ 指定アドレス(セクタ単位)の内容を表示する --readBlock <アドレス> … ブロックリード  指定アドレスの内容を読み取りする  内容は画面(標準出力)に出力する。ファイルに保存 したい場合は--fileオプションを使用  ブロック数(セクタ数)は--count オプションで指定 --surfscan [<アドレス>] … 表面検査  指定のアドレスからディスクを検査して不良がないか 調べる。アドレスの指定がない場合は先頭アドレスから 検査する --mediumn <メディアコマンド> … メディア操作  メディアやカートリッジを操作をします。  コマンドにはLoad/Unload、Start/Stop、Prevent/Allow の3系統があり、次のメディアコマンドが指定できます。 abort … LOAD/UNLAOD 変更を破棄 uneject … LOAD/UNLOAD ロード eject … LOAD/UNLOAD アンロード spindown … START/STOP スピンダウン down … spindownと同じ spinup … START/STOP スピンアップ up … spinupと同じ load … START/STOP ロード unload … START/STOP アンロード lock … Prevent/Allow ロック unlock … Prevent/Allow アンロック prevent … Prevent/Allow 防止 allow … Prevent/Allow 許可 <オプション> -? または -H … 説明を表示 -c … コマンドテスト(--benchmark commandと同じ) ベンチマークで有効 -d … デバイスの詳細情報を表示 デバイス情報表示で有効 -p … パーティション情報を表示 デバイス情報表示で有効 -v … デバイス/パーティション詳細情報を表示 デバイス情報表示で有効 -s … シークテスト(--benchmark seekと同じ) ベンチマークで有効 --103 … 表示単位10の3乗(デフォルト) k/M/Gの表示単位を10の3乗(1000)で行う --210 … 表示単位2の10乗 K/M/Gの表示単位を2の10乗(1024)で行う --async … 非同期モードでベンチマークを実行します。  デフォルトでは8個づつI/O処理(リード/ライト) を行ないます。  I/O処理数は--maxQueDepthオプションで変更できます。  --scsiオプションと同時と指定すると、無効となりま す。 --blockSize <サイズ> … デバイスのブロック(セクタ)サイズを指定 Linux用オプション --blockTest <サイズ> … 転送ブロックサイズをバイト単位で指定する ベンチマークで有効  この指定がない場合、ブロックサイスは 16384バイトとなる。 --cdspeed … ベンチマーク結果としてCD-ROMの倍速速度を表示 ベンチマークで有効 --cpuUsage [] … CPU使用率を表示 ベンチマーク、表明検査で有効 mode self プログラムのCPU使用率(デフォルト) all トータルCPU使用率(Windows用 sys システムモードCPU使用率(Linux用 user ユーザモードCPU使用率(Linux用 --count … ブロック カウント ブロックリードで有効 読み取りブロック(セクタ)数を指定 max を指定すると全ブロックを読み取りする --dvdspeed … ベンチマーク結果としてDVD-ROMの倍速速度を表示 ベンチマークで有効 --file … ファイル名 ブロックリードで有効 --readBlockコマンドでの読み取り内容をファイルに 保存する --maxBufferSize <サイズ> … 最大バッファサイズをバイト単位で指定 ベンチマーク、表面検査で有効  この指定がない場合、最大バッファサイズは 65536 バイトとなる。 --maxQueDepth <数値> … 非同期モードでのI/O処理数を指定します。  --asyncオプションと同時に指定してください。 --measureTime <秒数> … 計測間隔の指定 ブロックリードで有効  ブロックリードで転送速度を計測する間隔を秒単位で 指定する。この指定がないときは1秒。 --randomReadWrite … ランダム リード/ライト テスト ベンチマークで有効  --benchmark randomRWと同じ。 --randomRWtime <秒数> … ランダム リード/ライト テストの計測時間 ベンチマークで有効  ランダムリード/ライトテストの計測時間を秒単位で 指定する。この指定がない場合は10秒。 --retry … 再試行回数(リトライ) 表面検査で有効  表面検査でエラーが見つかった場合、再試行を 繰り返す回数。この指定がないときは3回。 --seekSector <セクタ数> … シークテストのトラックあたりのセクタ数を指定 ベンチマークで有効 --scsi … データの読み書きにSCSIコマンドを使用します。 ベンチマークで有効  この指定がない場合は、Windows APIを使います。 --smart … S.M.A.R.T.情報を表示します。 デバイス情報表示で有効  -vオプョンと併用することで詳細情報を表示できます。 --smart_attr :[:] … S.M.A.R.T.属性の設定 デバイス情報表示で有効  --smartオプションで表示する、RAW Valueの表示形式 を指定します。 rawtype normal … 48ビット値として表示(デフォルト) divword … 16ビット毎に分割した値として表示 dumphex … 48ビットの16進数で表示 --testFile … ベンチマークテストをファイルモードで実行 ベンチマークで有効 ベンチマークテストで作成するファイルを指定します。 --testSize <サイズ> … ベンチマークテストで作成するファイルサイズを指定 ベンチマークで有効  ベンチマークテストで作成するファイルサイズを指定 します。--testFileオプションと合わせて指定します。  この指定がない場合、空き容量の95%を使用します。 --testTime <秒数> … 計測時間を秒数で指定 ベンチマークで有効  この指定がない場合、計測時間は3秒となる。 --trackZone <パーセンテージ> … 転送テストのトラック位置をパーセンテージで指定 ベンチマークで有効 --verify … Verifyコマンドを使用 表面検査で有効  Readコマンドの代わりにVerifyコマンドを使用する --winfile … ver.1.05a#01から廃止されました。指定してもエラーに なりませんが、意味はありません。 【解説】  コマンドやオプションのアルファベット大文字/小文字は区別しません。  DevTest には次の5つの機能があります。 ・デバイス情報表示 ・ベンチマークテスト(--benchmark) ・ダンプ表示(--dump) ・表面検査(--surfscan) ・ブロックリード(--readBlock) ・メディア操作(--medium)  ベンチマークテストとダンプ表示は特定の1台のデバイスに対してのみ実行可能 ですが、デバイス情報表示は、<デバイス名>の指定方法によりデバイスを検索して 複数にデバイスに対して実行できます(Windows版のみ)。 例) devtest C: … Cドライブを指定 devtest ?: … A〜Zドライブの検索 devtest disk0 … 物理ドライブ0番を指定 devtest disk … 物理ドライブを検索 devtest cdrom0 … CD/DVDドライブ0番を指定 devtest cdrom … CD/DVDドライブを検索 devtest scsi0 … SCSIデバイス0番を指定 devtest scsi … SCSIデバイスを検索  <デバイス名>を省略した場合は、?: を指定したのと同じでA〜Zドライブを検索 してデバイス情報を表示します。  <デバイス名>にscsi/cdromを指定した場合、パーティション情報の表示や、 ベンチマークテストは実行できないことがあります。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-3 ベンチマークテストについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTestのベンチマークテストには、次の10項目があります。 1) Test Unit Ready command … Test Unit Ready コマンドの実行時間 2) No Motion Seek command … 論理ブロック0 へのシークの繰り返し実行時間 3) Average latency Time … 平均回転待ち時間 4) Sequential Seek … 連続した論理ブロックへのシークの実行時間 5) Random Seek … ランダムな論理ブロックへのシークの実行時間 6) Sequential Read … 連続した論理ブロックのリードの実行時間 7) Random Read … ランダムな論理ブロックへのリードの実行時間 8) Sequential Write … 連続した論理ブロックのライトの実行時間 9) Random Write … ランダムな論理ブロックへのライトの実行時間 10) Random Read/Write … ランダムなリード/ライトの実行時間  各テストは--bencmarkコマンドにより指定できます。 テスト 1〜3: --benchmark command または -c オプション テスト 4〜5: --benchmark seek または -s オプション テスト 6〜7: --benchmark read テスト 8〜9: --benchmark write テスト 10: --benchmark randomRW または --randomReadWriteオプション  テスト1〜10すべてを実行する場合には --benchmark allを指定します。  ただし、ディスクへの書き込みをともなうテスト8〜10は--testFile オプション を指定場合のみ実行できます。詳しくは「§2-4 ファイルモード ベンチマーク 」 を見てください。  テスト 1〜5 はドライブによってはコマンドをサポートしていないために実行で きなかったり、実行できても本来の動作をしないために不正確なテスト結果を表示 する場合があります。テスト2,4,5はSeekコマンド、テスト3はVerifyコマンドを 使用しますが、これをサポートしていない場合はReadコマンドで代用します。その 場合、計測結果には「use Read Command」と表示されます。コマンドをサポート していないのに実行できる場合には1ms以下になる等、不正確な結果を表示する場 合があります。  テスト 4のシーケンシャルシークは、本来なら1トラック分だけ移動しなければ ならないのですが、シークコマンドは論理ブロックアドレスで指定するため1トラッ クあたりのセクタ数を知る必要があります。しかし、本来の1トラックあたりのセ クタ数はアプリケーションからはわからないので、DevTest では Windowsのドライ バが返すドライブ・ジオメトリ(IOCTL_DISK_GET_DRIVE_GEOMETRY )から移動セク タ数を決めています。ドライブ・ジオメトリが取得できない場合には32セクタとし ます。なお、シークテストでのトラックあたりのセクタ数は --seekSector オプショ ンで指定可能です。  テスト6 Sequential Read は、先頭トラック(START)と最終トラック(END)の 2箇所で計測し、加えて平均値(AVERAGE )も結果として表示します。先頭/最終 トラックは論理ブロックアドレスの大小で決めていますので、実際のディスク上の 外周にあたるか内周にあたるかはドライブによって異なります。最終トラックにつ いてはドライブ容量に換算して5%内側の論理ブロックアドレスから計測します。 計測トラック位置は --trackZoneオプションを指定してユーザーが指定することも 可能です。--trackZone オプションはトラック位置をパーテセンテージで指定しま す。  テスト 6〜7 はセクターサイズ単位、 16384バイト単位、最大バッファサイズ 65536 バイト単位の3回、3秒間に何バイト転送できたか調べてデータ転送速度を 求めています。セクターサイズはハードディスクの場合は 512バイト、CD/DVDでは 2048バイトです。したがって、ハードディスクでは 512/16834/65536バイト単位 での転送速度を計測します。2回目の転送単位 16384バイトは--blockTest オプショ ン、3回目の転送単位 65536バイトは--maxBufferSize オプションで変更できます。  デバイスによっては大きな転送サイズを指定すると、エラーが発生して計測でき ないことがあります。その場合は、--maxBufferSize オプションで最大バッファサ イズを制限してください。  テスト8〜9は、テスト6〜7の読み取りに対する書き込みテストとなります。  テスト10 Random Read/Writeは、ランダムな読み書きを実行するテストです。読 み書きをするデータサイズも1〜64Kバイトの範囲でランダムに変化し、これを10秒 間実行しリード/ライトそれぞれの転送速度と、コマンドの処理回数を求めます。 また、リードとライトの比率は50:50、90:10、10:90の3つのパターンで計測します。  計測時間は--randomRWTimeオプションで変更できます。  --cdspeed オプションまたは--dvdspeedオプションを指定するとテスト6〜9で計 測した転送速度がそれぞれCD-ROM/DVD-ROM で何倍速にあたるか表示します。CD-ROM は等速を150Kバイト/秒、DVD-ROMは等速を1385kバイト/秒として計算します。  --cpuUsageオプションを指定すると、ベンチマーク実行中のCPU 使用率を表示し ます。  --asyncオプションを指定すると、リード/ライトのI/O処理を非同期モードで行 ないます。通常の同期モードではI/Oコマンドの処理の完了した後に、次のI/Oコマ ンドを実行しますが、非同期モードではI/Oコマンドの完了を待たずに次のI/Oコマ ンドを発行します。  デフォルトでは 8個のI/Oコマンドを発行した後に、発行したすべてのI/O処理が 完了するのを待ちます。発行するI/Oコマンド数は--maxQueDepthオプションで指定 できます。  非同期モードの効果は --winFileオプションを同時に指定する必要があります。  非同期モードはWindows版のみのサポートしています。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-4 ファイルモード ベンチマーク -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTest のファイルシステムの影響を受けないテストを行なうために開発しまし たが、ファイルを保存した使用中のディスクに書き込みをテストを実行するとファ イルシステムを破壊してしまいます。このため、一般公開しているDevTest は書き 込みをともなうテストは実行できないようにしてきました。  そこで、テスト用ファイルを作成してファイルの中でテストを行なうテストモー ドを設けました。このファイルモードでは、書き込みをともなうテストも実行でき ます。  ファイルモードでのベンチマークテストは--testfileオプションでファイルを指 定します。ファイルサイズは--testsizeオプションが指定できますが、この指定が ない場合は空き容量の95%が指定されたとみなします。  ファイルモードは簡易テストという位置付けです。テストファイルが小さいとディ スクの全領域にアクセスできないので、ランダムアクセスは正確に計測できません し、テストファイルに断片化があるとシーケンシャル・アクセスもできません。  テストファイルのサイズは自由に指定できますが、ファイルシステムによっては 1ファイルの大きさに制限があるためにエラーになることがあります。たとえば、 FAT32では4Gバイトまでのファイルしか作成できません。  また、大きなファイルサイズを指定すると、テストファイルを用意するのに時間 がかかることがあります。  ファイルモードでのベンチマークテストでは devtest C: --behcmark --testfile C:\test.img のように、デバイス名 C: とテストファイルC:\test.img と指定することになりま すが、同一ドライブを示すように指定するようにしてください。両者のドライブが 異なっても動作しますがテスト結果が不正確になります。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-5 ブロックリード ベンチマークテストについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  --readBlock コマンドを使用して、ディスクの全領域の転送速度を調べることが できます。  コマンドラインには次のように指定します。 devtest disk2 --benchmark --readBlock  --benchmarkと--readBlockの順番で両方のコマンドを指定した場合、 「--readBlock 0 --count MAX --file NUL」を指定したのと同じ意味となり、 ディスク全領域の内容を転送します。  転送速度は一定間隔で画面(標準エラー出力)に表示されますが、結果を保存し たい場合は、--csvResultオプションを指定してください。  また、--cpuUsageオプションによりCPU使用率も表示できます。  標準では1秒間隔で速度を調べますが、間隔を変更したい場合は--measureTime オプションを指定してください。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-6 表面検査について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  --surfscanを指定した場合の表面検査は、ディスクの全領域を読み出してエラー がないか調べます。  標準ではReadコマンドを使いますが、--verifyオプションを指定するとVerifyコ マンドを使用して検査します。ただ、Verifyコマンドはデバイスによってはサポー トしていないことがあります。特に、IDE ハードディスクには指定しても動作しない はずです。  表面検査は64Kバイトのブロック毎に読み出しを行いますが、エラーが発生した 場合は最小ブロック単位(1セクタ分)で再試行します。  再試行する回数は--retryオプションで指定できます。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-7 ver.1.05a #01からの仕様変更について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  ver.1.05a #01 からドライブレター指定での動作と、リード/ライトの動作が変 更されました。  以前のバージョンでは、C:といったドライブレターを指定しても、Cドライブを 含むハードディスク全体に対して処理していましたが、ver.1.05a#01からは、 Cドライブだけを処理します。  パーティションを持つハードディスクに対して使用する場合に影響します。パー ティションを持たないリムーバブルディスク等では影響はありません。  パーティションを持つハードディスクで、ディスク全体に対して処理したい場合は 「disk0 」といった物理ディスクドライブの指定を使うか、後述の--scsiオプショ ンを追加してください。  また、以前のバージョンでは、データのリード/ライトにSCSIコマンドを標準で 使い、--winfileオプションを指定するとWindows APIを使っていました。  ver.1.05a #01からはこの動作が逆になり、標準ではWindows APIを使います。 SCSIコマンドを使用する場合は、--scsiオプションを追加します。  また、--scsiオプションを指定すると、C:のようにドライブレターを指定しても Cドライブを含むハードディスク全体が処理の対象となります。  ここで説明したSCSIコマンドというのはIOCTL_SCSI_PASS_THROUGH / IOCTL_SCSI_PASS_THROUGH_DIRECT といったデバイスI/Oコントロールです。  Windwos APIというのはReadFile/WriteFileといったAPI のことです。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-8 メディア操作コマンドについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  mediumコマンドによってカートリッジ/ディスク/スロット/メディア等が操作 できます。  元々はCD/DVDドライブのトレイを操作するために対応しましたが、仕様書には Load/Unload、Start/Stop、Prevent/Allowという似たようなコマンドが3系統あっ たので、とりあえずすべて実装しました。  mediumコマンドのメディア操作コマンドは11種類があますが、次のように対応し ています(詳しくはコマンドラインの書式を参照してください)。 Load/Unload系統 … abort,uneject,eject Start/Stop系統 … spindown, spinup, load, unload Prevent/Allow系統 … lock,unlock,prevent,allow  通常、CD/DVDドライブのトレイ操作に使うのは、Start/Stop系統のload/unload です。トレイを取り出すには「--medium unload」、逆にトレイをセットするとき は「--medium load」を使います。  トレイの出し入れを禁止したり許可するのが、Prevent/Allow系統のコマンドです。 たえとば、CD/DVDドライブに「--medium lock」を実行すると、イジェクトボタン を押したり「--medium unload」を実行してもトレイは出てこないはずです。  トレイの出し入りを許可したい場合には、「--medium unlock」を実行します。  同じ系統のpreventとallowは、それぞれlockとunlockをより強力にというか持続 して実行するコマンドです。  CD/DVDドライブを操作するソフトウェアを使っていると、何かの拍子にロック されたままトレイが出なく事がありますが、そういった場合に利用できます。  Load/Unload系統のコマンドは、チェンジャーを装備したドライブで使うコマンド のようです。DevTestでサポートしていますが、スロット番号を指定する機能を付け ていませんし、通常使う機会はないと思います。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §2-9 S.M.A.R.T.情報について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  多くのハードディスクにはS.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology System)と呼ばれている、自己診断機能が備わっています。  DevTestでは--smartオプションを指定することで、S.M.A.R.T.情報を表示・確認 することができます。  ただし、DevTestが対応しているのは、S.M.A.R.T. Read Attribute Valuesと S.M.A.R.T. Read Attribute Thresholds という機能だけで、S.M.A.R.T.関連の すべての機能が利用できるわけではありません。  DevTestで表示できる診断情報は、各属性ごとに次の6つの情報があります。 Attribute ID Number … 属性ID番号 Attribute Value … 属性値 Worst Value … ワースト値 Threshold … 閾値 Status Flag … ステータス フラグ RAW Value … 生データ値  属性ID番号は1〜255の範囲の番号ですが、DevTestでは3はSpin Up Time(スピン アップタイム)、194はTemperature(温度)といった具合に診断内容をテキストと して表示します。  ID番号から診断内容を知るためには、メーカーの資料を見る必要がありますが、 一部のメーカーしか公開していません。このため、DevTestでは一部のメーカが公開 しているデータシートや、他のS.M.A.R.T.診断ツールを参考にしてテキスト表示を 行っていますが、本来S.M.A.R.T.情報としてわかるのはID番号だけです。  メーカーやモデルが違ってもID番号が同じなら、内容や意味はほぼ同じようです が、中にはID番号が同じでも意味や内容が異なる場合があります。  S.M.A.R.T.情報の診断は、属性値(Attribute Value)と閾値(Threshold)との 比較で行います。  属性値と閾値は0〜255の範囲の数値を取りますが、属性値が閾値よりも大きければ 正常、属性値が閾値よりも小さい場合は異常といった具合です。  属性値や閾値は診断項目やメーカー・モデルによって算出方法が異なるので、 数値を見ただけでは安全とか危険とか判断することはできません。確実に判断できる のは属性値と閾値の大小関係だけです。  通常、属性値は大きいほど安全で、小さいと危険なのですが、中にはこれが通用 しない診断項目があります。たとえば、Seagate社のハードディスクの中には温度を そのまま属性値として返すモデルがあるので、温度が上昇すると属性値も大きくな ります。この場合、閾値との比較によって診断できないような気がしますが、こう いう属性では閾値を変化させるのだと思います(これは作者の推測ですが)。  S.M.A.R.T.情報はRAW Valueと呼ばれている、生データともいえる情報があります。  RAW Valueには実際の稼働時間やスタート/ストップカウント、不良セクタ数など、 重要な情報が含まれていることがあります。ただし、RAW Valueには決まったフォー マットがないのでメーカー・モデルによって内容や意味は異なります。  RAW Valueそのものは6バイト(48ビット)のデータで、DevTestでは48ビットの 整数として表示します。ID#9 Power-On Hours では、そのまま稼動時間を表すこと がありますが、Maxtor社のハードディスクでは時間(hour)ではなく分(minute)で表 すモデルがあります。  また、一部の診断項目では2バイト毎に3分割して使うことがあります。たとえば、 HGST社のハードディスクでは温度を現在値と最大/最小の3つに分けています。 こういう場合、DevTestでは--smart_attrオプションを使うことでRAW Valueの表示 方法を指定することができます(詳しくはコマンドラインの書式を参照してくださ い)。HGST社のハードディスクで温度を知りたい場合には、  --smart_attr 194:divword といったオプションを追加することで対応できます。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-1 注意・制限事項 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  ベンチマーク・テストの転送速度の計測は、読み込みのみ対応しています。書き 込みテストは実行するとファイルシステムを破壊するためにわざと使えないように しています。どうしても書き込みテストを実行したい方は、ソースコードを公開し ていますので、各自で対応してください。  古いフロッピィディスクやMO/PD/LS-120、USB1.1接続のドライブ等に対してベ ンチマークテストは実行しないでください。あまり遅いドライブを対象にベンチマー クテストを実行するとシステムが不安定になる場合があります。  デバイス情報として表示するの内容は ドライブ・ジオメトリ VPD(Vital Product Data) モード・パラメータ Read/Write Error Recovery Disconnect/Reconnect Drive Parameter Flexible Disk Mode Cache Control Periphery Device Control Mode Media Type Notch/Partition CD Device Parameter Power Condition MM Capabilities & Mechanical Status ディフェクト・リスト Configuration Profile List Feature Core Feature 等 DVD Structure Physical Format Information DVD-RAM Medium Status DVD-RAM Spare Area Information Pre-recording Information in Lead-in Unique Disc Identifier 等、 です。当然ですが、デバイス側が対応していない場合は表示できません。  未対応のコマンドを使用するとブルーバック画面となりOSごと落ちてしまう出来 の悪いドライバも中にはあるようです。そのような場合は、ドライバを更新するか、 実行をあきらめてください。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-2 ソースコードについて -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTest は Microsoft Visual Studio 2005/Visual C++ で開発しました。  ソースコードをコンパイルするにはDDK (Device driver Development Kit)に 含まれるヘッダファイル ntddcdrm.h ntdddisk.h ntddscsi.h ntddstor.h 等が必要です。  ソリュージョンdevtest.sln を開いてからビルドしてください。  ソースコードはLinux 用と共通になっています。Linux 環境でコンパイルする場合 にはMakefileを利用してください。  コンパイルおよび動作確認は、gcc 2.95.3と、Linux kernel 2.4.29 で行いまし た。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-3 Linux版について -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  Linux 版にいては最低限動く機能だけ移植しました。  Linux版にはデバイスをコマンドラインに必ずデバイスファイルを指定します。 デバイスを自動的に検索する機能はありませんが、コマンドラインには複数のデバ イスを指定できるのでシェルのパス名展開を使ってください。  例) devtest /dev/sg0 -d devtest /dev/hda -d devtest /dev/sr0 --benchmark  DevTest は基本的にはSCSIデバイス用ですのでsgデバイス(/dev/sg0等)を対象 に動作しますが、IDEハードディスク/ATAPI CD-ROM (/dev/hda等)でも動作しま す。  ただ、ベンチマーク テストについてはLinux のキャッシュが働くため、純粋に ドライブ性能を測るには向かないかもしれません。 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-4 参考資料 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=  DevTest を制作にするにあたって次の資料/書籍/ソフトウェアを参考にました。 参考にしたプログラム/資料 asbench (作者:橘家鶴蔵 氏) CQ出版社 SCSI-2詳細解説 (著者:菅谷誠一 氏) Linux UDF Filesystem Driver UDF & ECMA 167 資料 http://www.osta.org/ http://www.ecma.ch/ T10 Technical Committee http://www.t10.org/ smartmontools http://smartmontools.sourceforge.net/ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= §3-5 変更履歴 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ■ ver.1.01a #01 ・リリース ■ ver.1.02a #01 ・CHSパラメータの表示方法を変更 ・コマンド/オプション・パラメータの指定方法を変更 ・表面検査を追加。コマンドラインに--surfscan --retry --verify を追加。 ・Linux対応。--blockSizeオプションを追加 ・Linux ext2パーティションの情報表示を追加 ・K/M/Gの表示単位の指定オプション--210 --103を追加。 ■ ver.1.02a #02 ・拡張パーティションの情報表示の不都合を修正 ・Linuxブロック・デバイスのサポート方式を変更 ■ ver.1.02a #03 ・Get Configuration(46H)コマンド、DVD Structure(ADH)コマンドでの情報表 示を追加 ・CSV形式での結果を出力する --csvresult オプション追加 ・CPU使用率を表示する --cpuUsafe オプション追加 ・情報表示の誤りを修正 ■ ver.1.03a #01 ・--randomReadWriteオプション追加(一般公開用は使用不可) ランダム リード/ライト ベンチマーク ・--randomRWTimeオプション追加 ランダム リード/ライト ベンチマーク用のテスト時間 ・--blockcopyコマンド追加(一般公開用は使用不可) デバイス間でセクタ単位でコピーする ・--writeBlockコマンドを追加(一般公開用は使用不可) 任意のセクタにデータを書き込み ・--readBlockコマンド追加 任意のセクタのデータを読み取り ・--count,--file,--zeroFillオプション追加 --readBlock,--writeBlock用オプション ■ ver.1.03a #02 ・DVD+R Double Layer用Feature Code(003B), Profile Number(002B)の表示 をサポート ・CD1倍速を150kB/sから153.6kB/s(150KB/s)に修正 ■ ver.1.03a #03 ・--measureTimeオプション追加 ・readBlock/writeBlock時の計測不都合を修正 ■ ver.1.04a #01 ・SCSI INQUIRYデータ表示の不具合を修正 ・--benchmarkコマンドにテストモードを指定できるように仕様変更。 テストモードはall,command,seek,read,write,randomRW ・ファイルモードによる書き込みテストを追加 ・--testfileオプション, --testsizeオプションを追加 ・非同期モードをサポートする--async, --maxQueDepthオプションを追加。 ■ ver.1.04a #02 ・MD4Ramの署名ブロックを認識できるようにした。 ■ ver.1.05a #01 ・--ignoreErrorオプション追加(BlockCopy Read用:一般公開用では使用不可) ・--testsize オプションが機能しない不都合を修正 ・テストファイルの作成方法を変更(長時間無反応になる問題を修正) ・--medium コマンド追加 abort/eject/uneject, spindown/spinup/load/unload ・BD/HD DVD用 profile/feature 追加 ・--winfileオプションを廃止して、--scsiオプションを追加 ■ ver.1.05a #02 ・ベンチマークRead/Write関係のソースコードを整理 ・Mirosoft Visual Studio 2005/Visual C++ 2005用にソース、プロジェクトを修正 ・--verifyオプションが機能しない不都合を修正 ・--smart,--smart_attrオプションを追加。S.M.A.R.T.情報の取得・表示に対応