web-dev-qa-db-ja.com

Mkfsエラー未定義シンボル:ext2fs_numeric_progress_ops

Hyper-VでOracleLinux6.4を実行しています。ディスクを追加する必要があります。だから私はそれをHyper-Vに追加し、Linuxはfdisk -lを実行するとそれを認識し、それを見ることができます。そこで、fdisk /dev/sdbを実行してから、拡張パーティションを作成し、1から開始して、他のパラメーターをデフォルトとして使用しました。

次に、mkfs.ext3 /dev/sdb1またはext4を実行します(違いを覚えていないため、どちらを選択しても問題はないと思います)。

しかし、mkfs.ext3またはmk2efsまたはmkfs -t ext3 /dev/sdb1はこのエラーを出力します。

 error symbol lookup : undefined symbol: ext2fs_numeric_progress_ops

私はそれをググった、まったく答えがない。それは私には今まで一度も起こりませんでした。

どんな助けでも大歓迎です。

PDATE1:これはldd /sbin/mkfs.ext3の出力です

linux-vdso.so.1 =>  (0x00007fff907fd000)
libext2fs.so.2 => /opt/appassure/lib64/libext2fs.so.2 (0x00007f7c126fc000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003290800000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x0000003290c00000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003291800000)
libe2p.so.2 => /lib64/libe2p.so.2 (0x0000003291000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003368e00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003369200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003368600000)`

そして、e2fsck /dev/sdb1を実行すると、これが出力になります。

Error : ext2fs library is outdated !
        e2fsck 1.43-WIP (20-Jun-2013)
        Using library EXT2FS version 1.42.6, 21-Sept-2012
2
Nico

問題は、_e2fslibs_( e2fsprogs の一部)が壊れていることのようです。 /sbin/mkfs.ext3のリンカー出力を見ると、次のようになります。

_ldd /sbin/mkfs.ext3

linux-vdso.so.1 =>  (0x00007fff907fd000)
libext2fs.so.2 => /opt/appassure/lib64/libext2fs.so.2 (0x00007f7c126fc000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003290800000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x0000003290c00000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003291800000)
libe2p.so.2 => /lib64/libe2p.so.2 (0x0000003291000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003368e00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003369200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003368600000)`
_

libext2fs.so.2 => /opt/appassure/lib64/libext2fs.so.2 (0x00007f7c126fc000)行は明らかに間違っています。比較として、これが私のシステムが返すものです。

_    linux-vdso.so.1 =>  (0x00007ffff2a00000)
    libext2fs.so.2 => /lib/x86_64-linux-gnu/libext2fs.so.2 (0x00007f4060158000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f405ff50000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f405fd28000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f405fb20000)
    libe2p.so.2 => /lib/x86_64-linux-gnu/libe2p.so.2 (0x00007f405f918000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f405f588000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f405f368000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f40603d0000)
_

ポスターによると、

Dell AppAssure(バックアップソフトウェア)を、提供されているinstall.shとともにインストールしました。

私のDebianシステムでは、_e2fslibs_は_libext2fs.so.2_を提供し、これも優先度:必須です。 _e2fslibs_を削除しようとすると、次のようになります。

警告:次の重要なパッケージは削除されます。自分が何をしているのかを正確に理解していない限り、これを行うべきではありません。

したがって、問題は、なぜ一部のバックアップソフトウェアがRHEL派生システムに重要なソフトウェアをインストールしているのかということです。いずれにせよ、それは明らかに問題です。

推奨事項:ドキュメントを読むか、DellAppAssureのベンダーにここで何が起こっているかを尋ねてください。これがバックアップソフトウェアによってインストールされた場合、そのソフトウェアが破損する可能性があるため、それを削除するか、システムを(再)インストールすることはお勧めできません_e2fslibs_。

システム_e2fslibs_がまだインストールされていて、リンカがそれを無視している可能性もあります。たとえば確認してください

_rpm -ql | grep e2fs
_

および/またはファイルの場所_/lib64/libext2fs.so.2_。

それを行うにはおそらくもっと良い方法があります。 RH派生システムは使用していません。

2
Faheem Mitha