Mkfs 錯誤未定義符號:ext2fs_numeric_progress_ops
我在 Hyper-V 下執行 Oracle Linux 6.4。我必須添加一個磁碟。所以我在Hyper-V中添加了它,Linux在我執行時看到它
fdisk -l
並且我可以看到它。所以我做了一個fdisk /dev/sdb
然後我創建了一個擴展分區,從 1 開始並讓其他參數作為預設值。然後我想執行a
mkfs.ext3 /dev/sdb1
或ext4(因為我不記得區別,我認為選擇一個或另一個沒有問題)。但是
mkfs.ext3
ormk2efs
ormkfs -t ext3 /dev/sdb1
輸出這個錯誤:error symbol lookup : undefined symbol: ext2fs_numeric_progress_ops
我google了一下,完全沒有答案。它以前從未發生在我身上。
任何幫助將不勝感激。
UPDATE1:這是輸出
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
問題似乎是
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)
根據海報,
我使用他們提供的 install.sh 安裝了 Dell AppAssure(備份軟體)。
在我的 Debian 系統上
e2fslibs
提供libext2fs.so.2
,它也是 Priority: required。當我嘗試刪除時,e2fslibs
我得到:警告:以下基本軟體包將被刪除。除非您確切知道自己在做什麼,否則不應這樣做!
所以問題是為什麼某些備份軟體要在 RHEL 派生系統上安裝重要的軟體。無論如何,這顯然是問題所在。
建議:閱讀文件和/或詢問 Dell AppAssure 的供應商這裡發生了什麼。如果這是由備份軟體安裝的,它可能會破壞該軟體,因此刪除它或(重新)安裝系統可能不是一個好主意
e2fslibs
。也有可能係統
e2fslibs
仍然安裝並且連結器忽略它。檢查例如rpm -ql | grep e2fs
和/或文件位置
/lib64/libext2fs.so.2
。可能有更好的方法來做到這一點。我不使用 RH 派生系統。