Linux 更新错误fü;r OpenSuse 12.3中的;libsolv-tools-0.3.2-2.14.1;

Linux 更新错误fü;r OpenSuse 12.3中的;libsolv-tools-0.3.2-2.14.1;,linux,updates,opensuse,zypper,Linux,Updates,Opensuse,Zypper,我似乎破坏了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 f

我似乎破坏了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):
/usr/bin
中查找程序dumpsolv时,我得到以下结果:

# 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
和(当然)

我已经尝试了以下命令:

zypper ve
rpm --rebuilddb
这是:

以下是导致更新问题的工具:

还有我的uname

# 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工具,因为我遇到了与尝试升级时相同的错误。

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

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

# stat /usr/bin/* | grep "Input/output error"
而且有一大堆错误。因此,我知道这不是dumpsolv的问题,而是更具影响力的问题。这让我在网上搜索,我发现这实际上可能是文件系统中的一个错误。 要修复OpenSuse中的根文件系统,他们提供了一些非常好的建议:

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

# e2fsck /dev/sdb1
在这之后,我得到了一个很长的不同inode错误列表,我仔细阅读并修复了所有可以修复的错误(我想这就是一切)。在这之后,我从硬盘重新启动了我的系统,问题就解决了。我可以安装我的更新,现在一切正常

但是如果你试着这样做:要非常小心!你在这里搞乱了你的根分区,你应该阅读它告诉你的一切,并验证它。最好让第二台电脑运行,以防你对某些事情不确定。如果您得到一个坏的超级块(我没有),您可以使用
dumpe2fs
查看它是哪个块,然后使用
e2fsck-b
从备份中恢复文件系统

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

我真的希望这能帮助其他人

# e2fsck /dev/sdb1