1

我似乎在 OpenSuSe 12.3 上破坏了我的更新系统。每当我尝试更新时,我都会收到以下消息:

( 1/23) Installing: libsolv-tools-0.3.2-2.14.1 .....................................[error]
Installation of libsolv-tools-0.3.2-2.14.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/bin/dumpsolv: cpio: rename failed - Input/output error
error: libsolv-tools-0.3.2-2.14.1.x86_64: install failed
error: libsolv-tools-0.3.2-2.10.1.x86_64: erase skipped


Abort, retry, ignore? [a/r/i] (a):

在查看程序 dumpsolv 时/usr/bin,我得到以下信息:

# ls | grep "dumpsolv"
dumpsolv
dumpsolv;528134c9
dumpsolv;528134d2
dumpsolv;528134da
dumpsolv;528134ec
dumpsolv;5281350e
dumpsolv;52813523
dumpsolv;52828c89
dumpsolv;52880d1a
dumpsolv;52880d44...

其次是更多这样的行。每安装一次失败libsolv-tools-0.3.2-2.14.1

在查看 dumpsolv 时,我收到以下错误:

# stat /usr/bin/dumpsolv
stat: cannot stat ‘/usr/bin/dumpsolv’: Input/output error

和(原因)

# lsattr /usr/bin/dumpsolv
lsattr: Input/output error while trying to stat /usr/bin/dumpsolv

我已经尝试过以下命令:

zypper ve
rpm --rebuilddb

而这个: https ://joshua.hoblitt.com/rtfm/2013/05/dealing_with_rpm_cpio_rename_package_installupdate_errors/

这是导致更新问题的工具: http ://rpmfind.net//linux/RPM/opensuse/updates/12.3/x86_64/libsolv-tools-0.3.2-2.14.1.x86_64.html

还有我的名字

# uname -a
Linux linux-3hbw.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux

我在这里真的很茫然。我已经在那里发帖了,但没有运气,他们似乎和我一样困惑:

此外,我无法重新安装当前安装的libsolv-tools,因为我在尝试升级时遇到了同样的错误。

4

1 回答 1

0

好的,我修复了它,这是我的文件系统的问题。这是我所做的:

首先我看到它stat返回了一个输入/输出错误。这对我来说似乎很奇怪,所以我检查了整个目录:

# stat /usr/bin/* | grep "Input/output error"

并得到了一个完整的错误列表。因此,我知道这不是 dumpsolv 的问题,而是影响更大的问题。这导致我搜索网络,我发现它实际上可能是文件系统中的错误。为了修复 OpenSuse 中的根文件系统,他们提供了一些非常好的建议: http ://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch12s05.html

因此,我启动了安装 DVD,取消了安装以将我的命令提示符作为 root 并e2fsck在我的 root 分区上使用,/dev/sdb1如下所示:

# e2fsck /dev/sdb1

在这之后,我得到了一长串不同的 inode 错误,我仔细阅读并修复了所有可以修复的内容(我猜这就是一切)。在此之后,我从硬盘驱动器重新启动了我的系统,问题就解决了。我可以安装我的更新,现在一切都运行良好。

但如果你尝试这个:要非常小心!你在这里弄乱了你的根分区,你应该阅读它告诉你的所有内容并验证它。最好有第二台计算机运行以检查以防您不确定某事。如果您得到一个坏的超级块(我没有),您可以使用dumpe2fs <partition>它来查看它是哪个块,然后用于e2fsck -b <block> <partition>从备份中恢复文件系统。

我在上面发布的链接中对所有内容都进行了很好的解释,并且互联网上有很多网站包含有关使用的信息e2fsckdumpe2fs,如果您有任何疑问,请先查阅这些信息。

我确实希望这可以帮助其他人。

于 2013-11-21T18:55:52.683 回答