我正在 Hyper-V 下运行 Oracle Linux 6.4。我必须添加一个磁盘。所以我把它添加到Hyper-V中,Linux运行时fdisk -l
就可以看到它。所以我做了一个fdisk /dev/sdb
然后我创建了一个扩展分区,从1开始,让其他参数默认。
然后我想运行amkfs.ext3 /dev/sdb1
或ext4(因为我不记得区别了,而且我认为选择一个或另一个没有问题)。
但mkfs.ext3
或mk2efs
或mkfs -t ext3 /dev/sdb1
输出此错误:
error symbol lookup : undefined symbol: ext2fs_numeric_progress_ops
我用谷歌搜索了一下,根本没有答案。我以前从未发生过这种情况。
任何帮助将不胜感激。
更新1:这是输出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
答案1
问题似乎是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 衍生系统。