お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-10-15 12:09:17

marimari0530
新しいメンバ
登録日: 2009-10-15

HDDがUDMA5に変更できない

はじめまして
過去ログを探してみましたが解決方法がわからなかったので教えてください

rootにてhdparmを使用して、udma2からudma6に変更しようと下記のコマンドを発行するとエラーになってしまいます

# hdparm -X udma6 /dev/sda1

/dev/sda1:
setting xfermode to 70 (UltraDMA mode6)
SG_IO: bad/missing ATA_16 sense data::  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_DRIVE_CMD(setxfermode) failed: Input/output error


udma1に変更しようとしてもだめで、結局、まったく変更が聞かない状態なのですが、
どこが問題なのでしょうか?

関係があるかどうかわかりませんが、
make menuconfig で
<M>     VIA82CXXX chipset support
となっています


<----以下ハードウエア情報ーーーーー>
Ubuntu 8.04.2, kernel 2.6.24-19-server

# hdparm -I /dev/sda1

/dev/sda1:

ATA device, with non-removable media
        Model Number:       Maxtor 4R080L0
        Serial Number:      R2A6VVAE
        Firmware Revision:  RAMC1TU0
Standards:
        Used: ATA/ATAPI-7 T13 1532D revision 0
        Supported: 7 6 5 4
Configuration:
        Logical         max     current
        cylinders       16383   4047
        heads           16      16
        sectors/track   63      255
        --
        CHS current addressable sectors:   16511760
        LBA    user addressable sectors:  160086528
        LBA48  user addressable sectors:  160086528
        device size with M = 1024*1024:       78167 MBytes
        device size with M = 1000*1000:       81964 MBytes (81 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Advanced power management level: disabled
        Recommended acoustic management value: 192, current value: 192
        DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 udma6
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
                SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_VERIFY command
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    NOP cmd
           *    DOWNLOAD_MICROCODE
                Advanced Power Management feature set
                SET_MAX security extension
           *    Automatic Acoustic Management feature set
           *    48-bit Address feature set
           *    Device Configuration Overlay feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
        not     supported: enhanced erase
HW reset results:
        CBLID- below Vih
        Device num = 0 determined by CSEL
Checksum: correct


#lshw
        *-ide
             description: IDE interface
             product: VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE
             vendor: VIA Technologies, Inc.
             physical id: 11.1
             bus info: pci@0000:00:11.1
             logical name: scsi0
             logical name: scsi1
             version: 06
             width: 32 bits
             clock: 33MHz
             capabilities: ide pm bus_master cap_list emulated
             configuration: driver=pata_via latency=32 module=pata_via
           *-disk:0
                description: ATA Disk
                product: Maxtor 4R080L0
                vendor: Maxtor
                physical id: 0
                bus info: scsi@0:0.0.0
                logical name: /dev/sda
                version: RAMC
                serial: R2A6VVAE
                size: 76GiB (81GB)
                capabilities: partitioned partitioned:dos
                configuration: ansiversion=5 signature=46ba31df
              *-volume:0
                   description: EXT3 volume
                   vendor: Linux
                   physical id: 1
                   bus info: scsi@0:0.0.0,1
                   logical name: /dev/sda1
                   logical name: /
                   logical name: /dev/.static/dev
                   version: 1.0
                   serial: 9b733c1b-91a1-4028-91af-2a9310b3c9cc
                   size: 74GiB
                   capacity: 74GiB
                   capabilities: primary bootable journaled extended_attributes large_files huge_files recover ext3 ext2 initialized
                   configuration: created=2008-07-28 05:17:40 filesystem=ext3 modified=2009-10-15 11:13:22 mount.fstype=ext3 mount.options=rw,relatime,errors=remount-ro,data=ordered mounted=2009-10-15 11:13:22 state=mounted

<-----ハードウエア情報はここまでーーーーー>

オフライン

 

#2 2009-10-18 14:21:54

hmatsue
アドバイザ
登録日: 2009-03-10

Re: HDDがUDMA5に変更できない

hdparmの対象はドライブ単位のはずなので、/dev/sda1ではなく、/dev/sdaではないでしょうか。
また、明確にそうと判る文書が見つけられなかったのですが、なんとなくmountしているHDDの状態を変えることはできないような気がします。
hdparm -X
するときドライブはマウントされていますでしょうか。
基本的にはPCのBIOSで設定しておけば問題無いような気がしますが、hdparmで設定する必要がありましたら、上記のあたりを確認してみて下さい。

オフライン

 

#3 2009-10-20 09:33:22

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

回答ありがとうございます
BIOSの起動画面を確認したら、
/dev/sdaはUDMA2
/dev/sdbはUDMA5
と表示されていました
BIOSの設定項目ではDMAのモードを指定できないため、UDMA2をUDMA5に変更することはできないのかな。

でも、
UDMA2からUDMA1へ変更できないし、
/dev/sdbはUDMA5と表示されていたのにもかかわらず、hdparmではudma2に*が付いていました
なぜ、遅い速度に変更できないのか、また、UDMA5で認識されていたのにUDMA2なのかがよくわかりません

モード変更出来そうな/dev/sdbをアンマウントしてhdparmを実施してみましたが、なぜか変更できませんでした
/dev/sdaは/に割り当てていますが、こちらの設定に引きずられるのでしょうか?



<-----以下、/dev/sdbへのhdparm実行ログ------->
root@neptune:~# df
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3     75G   29G   42G  41% /
varrun       tmpfs    252M  896K  251M   1% /var/run
varlock      tmpfs    252M     0  252M   0% /var/lock
udev         tmpfs    252M   52K  252M   1% /dev
devshm       tmpfs    252M     0  252M   0% /dev/shm
/dev/sdb1     ext3     74G   29G   42G  41% /backup
/dev/sdc1     ext3    232G   64G  156G  30% /mnt/USBHD

root@neptune:~# umount /dev/sdb1
root@neptune:~# df
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3     75G   29G   42G  41% /
varrun       tmpfs    252M  896K  251M   1% /var/run
varlock      tmpfs    252M     0  252M   0% /var/lock
udev         tmpfs    252M   52K  252M   1% /dev
devshm       tmpfs    252M     0  252M   0% /dev/shm
/dev/sdc1     ext3    232G   64G  156G  30% /mnt/USBHD
root@neptune:~# hdparm -X udma5 /dev/sdb

/dev/sdb:
setting xfermode to 69 (UltraDMA mode5)
SG_IO: bad/missing ATA_16 sense data::  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_DRIVE_CMD(setxfermode) failed: Input/output error

オフライン

 

#4 2009-10-20 09:58:51

hito
管理者
登録日: 2007-03-18

Re: HDDがUDMA5に変更できない

ドライバというか、SATAコントローラの仕様によっては動的なUMDAモードの変更がきかないことがしばしばあるのですが、

 ・hdparm -t したら遅かったのでUDMAモードを上位のものにしたい
 ・なんとなく気分が悪いのでUDMAモードを切り替えたい

のどちらでしょうか。前者であれば、先にBIOSアップデートやHDDのジャンパピンの確認をしてみた方がいいと思います。運が良ければそれだけで正しく機能するようになると思います。後者であれば、ハードウェアベンダを呪いながら新しいハードウェアに買い換えることをお勧めします(非道)。

ただ、4R080L0はコントローラのPHYによっては相性らしき何かがあり、何をどうやってもUDMA2から上げられないという症状があったような記憶があります。きわめて個人的な見解としては、「そろそろそのHDDは寿命が近いハズなので(3年は使っている筈です)、素直に交換してしまいましょう」というのが推奨コースです。

オフライン

 

#5 2009-10-20 10:13:59

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

回答ありがとうございます
モードを変更したい理由は、UDMA5をサポートしているHDDなのにUDMA2で利用しているのはもったいないし、体感的にも遅いからです
あと、SATAではなく昔のIDE接続(パラレルケーブル)のHDDです
HDDには、DMAモードを変更するジャンパはありませんでした。プライマリ、セカンダリ、CableSelectを切り替えるジャンパのみです
BIOSが初期バージョンでしたので、最新に変更してテストしてみたいと思います

BIOSはギガバイトの7VTXE+です
http://www.gigabyte.co.jp/Support/Motherboard/BIOS_Model.aspx?ProductID=1311


BIOSアップデート後に結果をリプライさせていただきます

オフライン

 

#6 2009-10-20 14:10:15

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

お世話になっています
BIOSを最新にしてテストしましたので報告させていただきます

結論からいいますとダメでした
BIOSにはDMAの選択肢が増えてATA66/100を選択できるようになったのですが、
これを選択すると、HDD(/dev/sda)は認識しませんでした
/dev/sdbは認識したのですが、
hdparm -iの結果は相変わらずudma2のままで、
hdaprm -X udma5で変更しようとしても今までと同様のエラーが出て変更はできませんでした

/etc/hdparm.confをいじる必要はあるのでしょうか?
dma = on
transfer_mode = 69
にはなっているのですが・・・


HDDのスピードを測ってみました
UDMA5ならもっと速くなりますよね?

/dev/sda:
Timing buffered disk reads:   86 MB in  3.05 seconds =  28.23 MB/sec
root@neptune:/etc# hdparm -t /dev/sdb

/dev/sdb:
Timing buffered disk reads:   88 MB in  3.02 seconds =  29.15 MB/sec

オフライン

 

#7 2009-10-20 15:36:18

GHO
メンバ
From: 東京郊外
登録日: 2008-05-07

Re: HDDがUDMA5に変更できない

マザボやBIOSが対応していても、IDEケーブルが対応していないとダメという罠があったように記憶していますが、そのあたりは大丈夫なのでしょうか。

オフライン

 

#8 2009-10-20 20:14:40

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

GHOさん、回答ありがとうございます

IDEケーブルにそんな違いがあるとは知りませんでした
Wikipediaをみると、UDMA4以降は端が青いケーブルのようですね
現在、使用しているケーブルは黒です
そして、/dev/sdaはケーブルの端に接続しているため、スレーブのコネクタ部分にマスターとして作動させるつもりのHDDをつなげている状態です
だから、BIOSでATA66/100を強制させると認識しなかったかな
/dev/sdbはCDROMとHDDを同時に接続しており、認識できたのかな
現在、青のケーブルがありませんので、明日にでも購入してテストしてリプライします

オフライン

 

#9 2009-10-20 20:41:28

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

お世話になっています

ケーブル探したらありましたので、テスト結果をお伝えします

結論から申し上げますと、
/dev/sdaはudma6
/dev/sdbはudma2
になりました

/dev/sdaはケーブルを交換したらBIOSでATA66/100を選択してもHDDを認識できるようになりました
/dev/sdbはケーブルを交換してもudma2からかわらずでした
たぶん、CDROMも同じケーブルにつなげているので、遅い方になっちゃうのかな

だけど、udma6になったのに、転送速度がまったく向上しないのはなぜでしょうか?


<------以下ログ------>
/dev/sda:

Model=Maxtor 4R080L0                          , FwRev=RAMC1TU0, SerialNo=R2A6VVAE       
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=?16?
CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=160086528
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=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 0:  ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode

root@neptune:~# hdparm -i /dev/sdb

/dev/sdb:

Model=Maxtor 6L080P0                          , FwRev=BAH41G10, SerialNo=L20CT3RG       
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
CurCHS=4047/16/255, CurSects=16511760, 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=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 0:  ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode

root@neptune:~# hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads:   92 MB in  3.03 seconds =  30.35 MB/sec
root@neptune:~# hdparm -t /dev/sdb

/dev/sdb:
Timing buffered disk reads:   88 MB in  3.04 seconds =  28.99 MB/sec

オフライン

 

#10 2009-10-20 21:24:58

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

お世話になっています

CDROMをケーブルから外してテストしてみました

/dev/sdbはudma5になりました
でも、スピードはudma2と変わりませんでした

下記のサイトを見るとudma5だと、
Timing buffered disk reads: 174 MB in 3.02 seconds = 57.62 MB/sec
約58MB/sec出ているので、なぜ30MBで頭打ちになるのでしょうか?
http://d.hatena.ne.jp/tnh/20040111

ひとつ気になるのが、hdparmの中で
MaxMultSect=16, MultSect=?16?
とありますが、これって普通は32なのかな?

それともdriverを変更する必要があるのでしょうか?

あと、今の状態でも
hdparm -X
でいずれの転送速度にも変更することはできない状態です
もちろん、umountしてから実行しています

<-----以下ログ------>
root@neptune:~# hdparm -i /dev/sdb

/dev/sdb:

Model=Maxtor 6L080P0                          , FwRev=BAH41G10, SerialNo=L20CT3RG       
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
CurCHS=4047/16/255, CurSects=16511760, 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=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 0:  ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode

root@neptune:~# hdparm -t /dev/sdb

/dev/sdb:
Timing buffered disk reads:   90 MB in  3.02 seconds =  29.78 MB/sec
root@neptune:~# hdparm -t /dev/sda

オフライン

 

#11 2009-10-21 01:48:40

yama
メンバ
登録日: 2006-10-23

Re: HDDがUDMA5に変更できない

いやそのHDDの速度がそんなものかと・・・

オフライン

 

#12 2009-10-21 09:51:12

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

お世話になっています

HDDの転送速度が期待値になりましたので報告させていただきます

ドライバー周りを調べていたら、
kernelのmenuconfig内の
generic/default IDE chipset support
がロードされていませんでした
これをロードするよう変更してkernelをリコンパイルしたところ
/dev/sda,/dev/sdb共に、60MB/sec出るようになりました
※ついでにkernelのバージョンを2.4.24から.2.4.28へ変更
ただし、コマンドラインからhdparmにて動的にdmaモードを変更することはやはりできませんでした


IDE接続のHDDはスピードを上げることができたのですが
USB2で接続しているHDD(/dev/sdc)がとても遅い状態であることが判明しました
ehci_hcdはロードされているのですが...


root@neptune:~# hdparm -t /dev/sdc
/dev/sdc:
Timing buffered disk reads:   30 MB in  3.05 seconds =   9.83 MB/sec




<--------以下ログ---------->
/dev/sda:
Timing buffered disk reads:  136 MB in  3.01 seconds =  45.15 MB/sec
root@neptune:/boot/grub# hdparm -t /dev/sdb

/dev/sdb:
Timing buffered disk reads:  182 MB in  3.01 seconds =  60.40 MB/sec
root@neptune:/boot/grub# hdparm -t /dev/sdc

オフライン

 

#13 2009-10-22 10:51:25

marimari0530
新しいメンバ
登録日: 2009-10-15

Re: HDDがUDMA5に変更できない

お世話になっています
ようやくhdparmで動的にDMAモードを変更できるようになりましたので報告します

変更点はkernelコンパイル時に
Generic PCI IDE Chipset Support
を有効にしました

これによって、HDDがそれぞれ
/dev/sda --> /dev/hda
/dev/sdb -->  /dev/hdc
と表示されるようになり、
hdparm -X udma? で好きなDMAモードにできるようになりました

速度に変化はありませんでした
/dev/hda:
Timing buffered disk reads:  136 MB in  3.02 seconds =  44.97 MB/sec
/dev/hdc:
Timing buffered disk reads:  184 MB in  3.01 seconds =  61.15 MB/sec

hdparmで変更できなかったのは、EIDEドライブをSCSIドライブとしてエミュレーションしていたからかな。今時はSATAが当たり前ですしね

root@neptune:~# hdparm -X udma5 /dev/hdc
/dev/hdc:
setting xfermode to 69 (UltraDMA mode5)


あと、USBのHDDですが、最初の1回目はなぜか遅いですが、
理由は解りませんが、2回目以降は期待通りのスピードが出ていました

1回目
/dev/sda:
Timing buffered disk reads:   28 MB in  3.06 seconds =   9.15 MB/sec
root@neptune:~# hdparm -t  /dev/sda

2回目
/dev/sda:
Timing buffered disk reads:   78 MB in  3.04 seconds =  25.65 MB/sec

もしかしたら、 kernelのProcessor type and featureの設定で
Timer frequencyをいじって
OSの割り込み周期を短くすると少しは速くなるのかも・・・

<<<<<============= まとめ ==============>>>>>
・IDEケーブルをudma2((端のコネクタがスレーブで途中のコネクタがマスタ))からudma6対応(端のコネクタがマスタで途中のコネクタがスレーブ)のものに変更した
・kernelのバージョンを2.6.24から2.6.28へ変更した(必要ないかもしれない)
・kernelの設定で「ATA/ATAPI/MFM/RLL support --> generic ATA/ATAPI disk support」を有効にした
・kernelの設定で「ATA/ATAPI/MFM/RLL support --> Generic PCI IDE Chipset Support」を有効にした
・CDROMドライブとHDDドライブが同一ケーブル上に接続してあったので、CDROMを外した

最後になりましたが、
アドバイスいただいた方々ありがとうございました

オフライン

 

Board footer

Powered by FluxBB