Linux cli 版SeaTools をx86_64 で使う
1つ前のエントリでSMART は見えたのですが,Linux 版SeaTools も気になるので試してみました.
#しかし,一寸嵌りました.
- SeaTools End User License Agreement
http://download.seagate.com/seatools/registration.nsf/eula/linux_cli
にアクセスして,Accept.次のページでメールアドレスなんかを記入してSubmit でseatools_cli.tar が入手できます.
入手したseatools_cli.tar を展開して実行してみます.
ディレクトリを作らずカレントに展開されるので注意して下さい.
$ mkdir seatools $ cd seatools $ tar xvf ../seatools_cli.tar $ sudo ./st -l sudo: unable to execute ./st: No such file or directory $ ls -l -rwxr-xr-x 1 mk mk 180149 2001-09-12 18:40 st -r--r--r-- 1 mk mk 49072 2001-09-12 18:40 sthelp.txt
?st ありますよ?
$ file ./st ./st: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped $ strings st | head /lib/ld-linux.so.2 __gmon_start__ libc.so.6 strcpy asctime ioctl getgid printf stdout random $ ls -l /lib/ld-linux.so.2 ls: cannot access /lib/ld-linux.so.2: No such file or directory
No such file or directory と言われているのはst ではなく/lib/ld-linux.so.2 の様ですね.
libc6-i386 を入れることで/lib/ld-linux.so.2 が入ります.
$ sudo apt-get install libc6-i386 $ ls -l /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 20 2009-01-22 19:28 /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2
この状態で実行すると動作しました.この辺りはシステムがx86_64 の所為かもしれません. > i686 マシンではこの作業は必要ありませんでした.
てことで本番.root 権限が必要です.
先ずは接続されているHDD を取得してみます.
$ sudo ./st -l Drive information: /dev/sg0 ATA ST3500320NS SN04 976773167 blocks /dev/sg1 ATA ST3500320NS SN04 976773167 blocks
見慣れない/dev/sg? というデバイスが表示されます.
Linux のデバイス名である/dev/sda とかを指定すると何も言われず終了してしまいます.
/dev/sg0 で情報を取得してみます.
$ sudo ./st -i /dev/sg0 /dev/sg0 Vendor = ATA Product = ST3500320NS Version = SN04 Serial Number = Copyright = SCSI Firmware = [ Servo RAM Release = ST35 Servo ROM Release = 00320NS Servo RAM Date = Servo ROM Date = SN04 Blocksize = 512, Highblock = 976773167, Capacity = 488387 MB -this is a Seagate drive -this drive does not support DST -Mode Page Settings [current value (default)]: -WCE bit = 1 (0) -RCD bit = 0 (0) -AWRE bit = 1 (0) -ARRE bit = 0 (0) -DExcpt bit = 0 (0) -Number of cache segments = 0 (0)
もちろんSTDOUT に実行結果が吐かれるんですが,stlog.txt というファイルがカレントに作られてコマンドの実行結果履歴が溜まっていってます.
Serial Number とか取れてないみたいです.タイムスタンプが2001-09-12 なので最近のDisk には対応してないのかもしれませんね?
hdparm では取れるんですけど.
$ sudo hdparm -i /dev/sda /dev/sda: Model=ST3500320NS , FwRev=SN04 , SerialNo= 5QM1BFWK Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=?16? CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-4,5,6 * signifies the current active mode
一緒にアーカイブされていたsthelp.txt に書いてあるオプションを眺めてみると他にもセルフテストやファームウェア書き込みも出来るみたいです.
しかし,SMART 有効無効のオプションらしい物はあるんですが,SMART の表示方法が解らないです….
ところで,HP ML115 G1 に付いていたDisk はSeagate なのに以下のように認識されませんでした.
$ sudo ./st -l Drive information: $ sudo ./st -i /dev/sg0 open error: No such file or directory
Seagate Barracuda 7200.10 ST380815AS だと思うのですが,hdparm ではFB080C4080 となります.
OEM 用に書き換えてあるんですかね.
$ sudo hdparm -i /dev/sda /dev/sda: Model=FB080C4080 , FwRev= HPF0, SerialNo=5RW20AEY Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16? CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=no WriteCache=disabled Drive conforms to: unknown: ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7 * signifies the current active mode