HP Microserver N54L – Rocky Linux 8 のeSATAドライブが認識しない

0. 目次

  1. 環境
  2. 事象
  3. 原因
  4. 解決法

1. 環境

  • ハードウェア:HP Microserver N54L
  • OS:Rocky Linux 8.6
    • Kernel Version:4.18.0-372.26.1.el8_6.x86_64

2. 事象

HP Microserver N54LにCentOS 7 を入れて使用していたが、Rocky Linux 8 に移行した。
元々eSATAを利用してバックアップを取得していたが、同様に接続をしてもHDDが認識されなかった。

3. 原因

Redhat系は古いハードウェアのドライバが削除されているみたいです。
RHEL 8で削除されたドライバの一覧はこちら

HP Microserver N54LはODD用のSATAポートとeSATAポートのAHCIは無効化されているらしく、つまりIDEの古い規格の接続であり、古いドライバが削除されているため認識されていないのだと考え、そのあたりで色々と調べたところ以下のページを見つけた。

https://bugs.centos.org/view.php?id=16898

このページで記載されているlshw -class disk -class storageコマンドを実行したところIDEのコントローラーに「UNCLAIMED」と記載されており、ドライバが存在しないことが原因だった。

# lshw -class storage
  *-sata
       description: SATA controller
       product: SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 11
       bus info: pci@0000:00:11.0
       logical name: scsi0
       logical name: scsi1
       logical name: scsi2
       logical name: scsi3
       version: 40
       width: 32 bits
       clock: 66MHz
       capabilities: sata msi ahci_1.0 bus_master cap_list emulated
       configuration: driver=ahci latency=64
       resources: irq:25 ioport:d000(size=8) ioport:c000(size=4) ioport:b000(size=8) ioport:a000(size=4) ioport:9000(size=16) memory:fe6ffc00-fe6fffff
  *-ide UNCLAIMED
       description: IDE interface
       product: SB7x0/SB8x0/SB9x0 IDE Controller
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 14.1
       bus info: pci@0000:00:14.1
       version: 40
       width: 32 bits
       clock: 66MHz
       capabilities: ide isa_compat_mode pci_native_mode bus_master
       configuration: latency=0
       resources: ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:ff00(size=16)

4. 解決法

ELRepoで古いドライバを提供してくれているため、それを利用して解決した。

以下のページに記載されている手順で、必要なファイルを特定しインストールを実施。

http://elrepoproject.blogspot.com/2019/08/rhel-80-and-support-for-removed-adapters.html

4-1. 手順

  1. ELRepoでドライバが提供されているか確認
    どのドライバを導入すればよいかの確認にもなる。
    3のlshw -class storageで「UNCLAIMED」となっていたproduct名を使用してデバイスIDを調べる。
    以下の結果から [1002:439c]とわかる。

    # lspci -nn | grep "SB7x0/SB8x0/SB9x0 IDE Controller"
    00:14.1 IDE interface [0101]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller [1002:439c] (rev 40)

    このページでデバイスIDを検索して存在すれば提供されており、今回の場合「pata_atiixp.ko」を導入すればよいことがわかる。

  2. ドライバのダウンロード
    以下のURLから1の手順で特定した「pata_atiixp」のものをダウンロードする。
    https://elrepo.org/linux/dud/el8/x86_64/
  3. ドライバのインストール
    2のドライバはISO形式で提供されているので、以下のコマンドでマウントする。
    mount -t iso9660 ./dd-pata_atiixp-0.4.6-3.el8_6.elrepo.iso /mnt/iso/
    マウントした場所から「rpms/x86_64」に移動すると「kmod-pata_atiixp-0.4.6-3.el8_6.elrepo.x86_64.rpm」というファイルが存在するのでこれをインストールする。
    # dnf localinstall kmod-pata_atiixp-0.4.6-3.el8_6.elrepo.x86_64.rpm
  4. カーネルモジュール読み込み
    以下のコマンドを実行し、カーネルモジュールを読み込む
    modprobe pata_atiixp
    読み込んだ後にlshw -class storageコマンドを実行すると以下のように「UNCLAIMED」が消えコントローラが利用できるようになった。

    # lshw -class storage
      *-sata
           description: SATA controller
           product: SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
           vendor: Advanced Micro Devices, Inc. [AMD/ATI]
           physical id: 11
           bus info: pci@0000:00:11.0
           logical name: scsi0
           logical name: scsi1
           logical name: scsi2
           logical name: scsi3
           version: 40
           width: 32 bits
           clock: 66MHz
           capabilities: sata msi ahci_1.0 bus_master cap_list emulated
           configuration: driver=ahci latency=64
           resources: irq:25 ioport:d000(size=8) ioport:c000(size=4) ioport:b000(size=8) ioport:a000(size=4) ioport:9000(size=16) memory:fe6ffc00-fe6fffff
      *-ide
           description: IDE interface
           product: SB7x0/SB8x0/SB9x0 IDE Controller
           vendor: Advanced Micro Devices, Inc. [AMD/ATI]
           physical id: 14.1
           bus info: pci@0000:00:14.1
           version: 40
           width: 32 bits
           clock: 66MHz
           capabilities: ide isa_compat_mode pci_native_mode bus_master
           configuration: driver=pata_atiixp latency=64
           resources: irq:17 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:ff00(size=16)
  5. 自動読み込み
    4の手順を再起動しても不要にするため設定ファイルを作成する。
    「/etc/modules-load.d/」以下に任意のファイル名.confで「pata_atiixp」の一行を記載したものを配置する。

    echo pata_atiixp > /etc/modules-load.d/ide.conf
  6. 【任意】起動イメージへ適用(起動ディスクに使用する場合などに必要と思われる)
    現在読み込んでるカーネルのバージョンを調べ、dracutコマンドを使用して起動イメージ(initramfs)を再作成する。
    この手順は、カーネルアップデートする際に適用される。

    # uname -r
    4.18.0-372.26.1.el8_6.x86_64
    
    # mv /boot/initramfs-4.18.0-372.26.1.el8_6.x86_64.img /boot/initramfs-4.18.0-372.26.1.el8_6.x86_64.img.bak
    
    # dracut /boot/initramfs-4.18.0-372.26.1.el8_6.x86_64.img 4.18.0-372.26.1.el8_6.x86_64

     

HP Microserver N54L – Rocky Linux 8 のeSATAドライブが認識しない」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください