当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 【已重装】恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-02 4:11 

注册: 2013-04-27 19:26
帖子: 295
系统: ubuntu+win7
送出感谢: 21
接收感谢: 9
说来话长, 昨天晚上8.30左右, 一个不小心把/var/lib中的所有东西都给删除了......对, 没错, 大概一年多以前我还删除过/bin, 但是那个很简单, 因为每个系统的/bin都差不多.

/var/lib每个人差异都很大, 虽然我旁边就有一个同学和我用一样的系统, 但是这个真的不能从别的系统拷贝了, 拍了照片后(在删除/var/lib之前我ls -l了一下), 我就立刻关闭了电脑.

做了一个livecd进去使用ext4magic (根据官方文档http://ext4magic.sourceforge.net/howto_en.html)一步一步做, 恢复我的/var/lib, 真的恢复出来了(除了一些空文件夹, 我是对比我同学的系统看出来的, 从大小上看也没差很多文件)!!!
恢复出来的文件包括:
引用:
drwxr-xr-x 2 root root 4096 2月 2 04:27 alsa
drwxr-xr-x 5 root root 4096 2月 2 04:27 apt
drwxr-xr-x 2 root root 4096 2月 2 04:27 apt-xapian-index
drwxr-xr-x 3 root root 4096 2月 2 04:27 bluetooth
drwxr-xr-x 2 root root 4096 2月 2 04:27 colord
drwxr-xr-x 2 root root 4096 2月 2 04:27 dbus
drwxr-xr-x 2 root root 4096 2月 2 04:27 dhcp
drwxr-xr-x 3 root root 4096 2月 2 04:27 dkms
drwxr-xr-x 3 root root 4096 2月 2 04:27 doc-base
drwxr-xr-x 7 root root 4096 2月 2 04:27 dpkg
drwxr-xr-x 4 root root 4096 2月 2 04:27 emacsen-common
drwxr-xr-x 7 root root 4096 2月 2 04:27 lightdm
drwxr-xr-x 2 root root 4096 2月 2 04:27 lockdown
drwxr-xr-x 2 root root 4096 2月 2 04:27 logrotate
drwxr-xr-x 2 root root 4096 2月 2 04:27 mlocate
drwxr-xr-x 2 root root 4096 2月 2 04:27 msttcorefonts
drwxr-xr-x 2 root root 4096 2月 2 04:27 ni
drwxr-xr-x 2 root root 4096 2月 2 04:27 nssdb
drwxr-xr-x 2 root root 4096 2月 2 04:27 pam
drwxr-xr-x 2 root root 4096 2月 2 04:27 plymouth
lrwxrwxrwx 1 root root 18 2月 2 04:27 python-support -> /usr/lib/pymodules
drwxr-xr-x 2 root root 4096 2月 2 04:27 rfkill
drwxr-xr-x 2 root root 4096 2月 2 04:27 security
drwxr-xr-x 3 root root 4096 2月 2 04:27 sudo
drwxr-xr-x 4 root root 4096 2月 2 04:27 texmf
drwxr-xr-x 2 root root 4096 2月 2 04:27 ubiquity
drwxr-xr-x 2 root root 4096 2月 2 04:27 ubuntu-drivers-common
drwxr-xr-x 2 root root 4096 2月 2 04:27 ubuntu-release-upgrader
drwxr-xr-x 2 root root 4096 2月 2 04:27 udisks2
drwxr-xr-x 2 root root 4096 2月 2 04:27 update-manager
drwxr-xr-x 2 root root 4096 2月 2 04:27 update-notifier
drwxr-xr-x 2 root root 4096 2月 2 04:27 upower
drwxr-xr-x 2 root root 4096 2月 2 04:27 urandom
drwxr-xr-x 2 root root 4096 2月 2 04:27 ureadahead
drwxr-xr-x 2 root root 4096 2月 2 04:27 usbutils
drwxr-xr-x 2 root root 4096 2月 2 04:27 xkb
drwxr-xr-x 2 root root 4096 2月 2 04:27 xml-core


重新进入系统后, 其他一切正常, 只是(!!!)dpkg不能用了. 报错如下:
代码:
$ dpkg -l
dpkg-query: error: libsdl1.2debian:amd64 <none> (Multi-Arch: no) is not co-installable with libsdl1.2debian which has multiple installed instances

代码:
$ sudo dpkg --configure -a
dpkg: error: libsdl1.2debian:amd64 <none> (Multi-Arch: no) is not co-installable with libsdl1.2debian which has multiple installed instances

我从网站上下载了对应版本的dpkg_1.17.5ubuntu5.3_amd64.deb, 使用如下命令安装:
代码:
$ sudo ar x dpkg_1.17.5ubuntu5.3_amd64.deb
$ sudo cp data.tar.gz /
$ sudo tar zxvf data.tar.gz

无效, 报错依旧.
我从网站上下载了对应版本的libsdl1.2debian_1.2.15-8ubuntu1.1_amd64.deb, 使用上面的命令安装, 同样无效, 报错依旧.

---------------------------------------2015.02.02;08:56补充---------------------------------------
我的/var/lib/dpkg目录:
代码:
$ ls -l /var/lib/dpkg

引用:
total 19308
drwxr-xr-x 2 root root 4096 6月 10 2014 alternatives
-rwxr-xr-x 1 root root 11 2月 2 01:47 arch
-rwxr-xr-x 1 root root 3445189 2月 2 01:47 available
-rwxr-xr-x 1 root root 3445189 2月 2 01:47 available-new
-rwxr-xr-x 1 root root 3445189 2月 2 01:47 available-old
-rwxr-xr-x 1 root root 8 2月 2 01:47 cmethopt
-rwxr-xr-x 1 root root 1435 2月 2 01:47 diversions
-rwxr-xr-x 1 root root 1479 2月 2 01:47 diversions-old
drwxr-xr-x 2 root root 90112 6月 10 2014 info
-rwxr-xr-x 1 root root 0 2月 2 03:58 lock
drwxr-xr-x 2 root root 4096 6月 10 2014 parts
-rwxr-xr-x 1 root root 163 2月 2 01:47 statoverride
-rwxr-xr-x 1 root root 3093016 2月 2 01:47 status
-rwxr-xr-x 1 root root 3093016 2月 2 01:47 status-new
-rwxr-xr-x 1 root root 3098856 2月 2 01:47 status-old
drwxr-xr-x 2 root root 4096 2月 2 01:47 tmp.ci
drwxr-xr-x 2 root root 4096 2月 2 01:47 triggers
drwxr-xr-x 2 root root 4096 6月 10 2014 updates


---------------------------------------2015.02.02;11:09补充---------------------------------------
系统版本: Ubuntu14.04.1 LTS
内核版本: 3.13.0-32-generic
最后一次更新时间: 2月1日下午
真心不想重装. 请求哪位大神帮帮忙!

---------------------------------------2015.02.03;11:50补充---------------------------------------
由于是生产力工具, 不能耽误太多时间, 于是就重装了根目录, 感谢各位网友的热心帮助.

从这件事故中学会了两件事:
1) 在使用sudo rm 命令之前一定要注意所在目录, 也就是说一定要注意这个命令的作用对象, 使用通配符时一定要仔细确认;
2) ext4magic的使用, 大家可以去我上面提供的文档地址去看看. 能恢复出来一些文件真的感觉很神奇.


最后由 恒河沙数1 编辑于 2015-02-03 11:54,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-02 8:37 

注册: 2009-08-04 16:33
帖子: 16882
送出感谢: 21
接收感谢: 1825
http://ubuntuforums.org/showthread.php? ... ost9818305
Accidently removed /var/lib

http://unix.stackexchange.com/questions ... en-desktop
Removed /var/lib. Can't open Desktop


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-02 10:23 

注册: 2013-04-27 19:26
帖子: 295
系统: ubuntu+win7
送出感谢: 21
接收感谢: 9
poloshiao 写道:
http://ubuntuforums.org/showthread.php?t=1260872&page=2&p=9818305#post9818305
Accidently removed /var/lib

http://unix.stackexchange.com/questions ... en-desktop
Removed /var/lib. Can't open Desktop

首先感谢您的回答!
与他们情况不同的是, 我在第一时间关机并且恢复了大部分丢失的文件, 比如/var/lib/dpkg/info中2000多个软件的信息都在. 而且我的系统可以进入桌面环境. 现在问题在于dpk这个软件不能使用了. 如果它能够恢复正常, 其他软件包遇到问题时我可以reinstall来解决.

请问有没有修好dpkg的方法?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-02 11:16 

注册: 2009-08-04 16:33
帖子: 16882
送出感谢: 21
接收感谢: 1825
引用:
我从网站上下载了对应版本的dpkg_1.17.5ubuntu5.3_amd64.deb, 使用如下命令安装:

1. http://packages.ubuntu.com/search?suite ... chon=names
dpkg_1.17.5ubuntu5.3 是 12.04 版本的套件
不支援 multiarch
(13.10 以後 才改為支援 multiarch)
引用:
dpkg: error: libsdl1.2debian:amd64 <none> (Multi-Arch: no) is not co-installable with libsdl1.2debian which has multiple installed instances

2. http://packages.ubuntu.com/search?suite ... chon=names
14.04
套件 libsdl1.2debian
版本 1.2.15-8ubuntu1
支援 multiarch

3. 猜測 是
dpkg_1.17.5ubuntu5.3_amd64.deb

14.04
套件 libsdl1.2debian
支援 multiarch 方面 不相容

4. 下載 ubuntu 14.04 的
http://packages.ubuntu.com/utopic/dpkg
dpkg (1.17.13ubuntu1)
http://packages.ubuntu.com/utopic/amd64/dpkg/download
dpkg_1.17.13ubuntu1_amd64.deb
來試試

5. 你的 Ubuntu 版本
12.04 ?
14.04 ?
5-1. 如果是 14.04 試試
sudo apt-get update
sudo apt-get install --reinstall dpkg
看看 行不行
5-2. 如果是 12.04 試試
sudo apt-get update
sudo apt-get install --reinstall libsdl1.2debian
sudo apt-get install --reinstall dpkg
看看 行不行


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-02 13:22 
头像

注册: 2010-04-10 16:14
帖子: 2903
系统: Arch Linux
送出感谢: 8
接收感谢: 69
看起来像是恢复了多余的内容,你看下 /var/lib/dpkg/info 下,
是否同时有 libsdl1.2debian:amd64. 和 libsdl1.2debian. 开头的内容,
引用:
ls /var/lib/dpkg/info/libsdl1.2debian{:amd64,}.*

如果有,猜测旧版 libsdl1.2debian. 形式的包升级为 libsdl1.2debian:amd64. 形式的包之后保存的文件变了,
旧版的文件应该是删掉了的,但被你误恢复了,dpkg 认为你同时安装了两种形式的包,于是就冲突了。
解决方法是删掉旧版的包的相关信息。
以上基于猜测,记得先备份。
引用:
cp -a /var/lib/dpkg/info /var/lib/dpkg/info.bakup
rm -rf /var/lib/dpkg/info/libsdl1.2debian.*

如果还有同样问题但报出来的包名不一样了那就是还有其他包冲突,同样处理即可。


_________________
dz,U,EIS. cies.
dz-cies@github
小香猪杀手@cc98.org


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-03 11:45 

注册: 2013-04-27 19:26
帖子: 295
系统: ubuntu+win7
送出感谢: 21
接收感谢: 9
poloshiao 写道:
引用:
我从网站上下载了对应版本的dpkg_1.17.5ubuntu5.3_amd64.deb, 使用如下命令安装:

1. http://packages.ubuntu.com/search?suite ... chon=names
dpkg_1.17.5ubuntu5.3 是 12.04 版本的套件
不支援 multiarch
(13.10 以後 才改為支援 multiarch)
引用:
dpkg: error: libsdl1.2debian:amd64 <none> (Multi-Arch: no) is not co-installable with libsdl1.2debian which has multiple installed instances

2. http://packages.ubuntu.com/search?suite ... chon=names
14.04
套件 libsdl1.2debian
版本 1.2.15-8ubuntu1
支援 multiarch

3. 猜測 是
dpkg_1.17.5ubuntu5.3_amd64.deb

14.04
套件 libsdl1.2debian
支援 multiarch 方面 不相容

4. 下載 ubuntu 14.04 的
http://packages.ubuntu.com/utopic/dpkg
dpkg (1.17.13ubuntu1)
http://packages.ubuntu.com/utopic/amd64/dpkg/download
dpkg_1.17.13ubuntu1_amd64.deb
來試試

5. 你的 Ubuntu 版本
12.04 ?
14.04 ?
5-1. 如果是 14.04 試試
sudo apt-get update
sudo apt-get install --reinstall dpkg
看看 行不行
5-2. 如果是 12.04 試試
sudo apt-get update
sudo apt-get install --reinstall libsdl1.2debian
sudo apt-get install --reinstall dpkg
看看 行不行

您好, 再次感谢您的回复. 关于那个包的问题我是仔细查看了我同伴的系统中该软件包的版本. 他和我一样使用的是14.04. 由于dpkg损坏, 因此无法使用apt-get 前端来进行软件包的重新安装. 我已经重新安装了系统, 谢谢您的关注.


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 恢复/var/lib后dpkg不能工作
帖子发表于 : 2015-02-03 11:49 

注册: 2013-04-27 19:26
帖子: 295
系统: ubuntu+win7
送出感谢: 21
接收感谢: 9
susbarbatus 写道:
看起来像是恢复了多余的内容,你看下 /var/lib/dpkg/info 下,
是否同时有 libsdl1.2debian:amd64. 和 libsdl1.2debian. 开头的内容,
引用:
ls /var/lib/dpkg/info/libsdl1.2debian{:amd64,}.*

如果有,猜测旧版 libsdl1.2debian. 形式的包升级为 libsdl1.2debian:amd64. 形式的包之后保存的文件变了,
旧版的文件应该是删掉了的,但被你误恢复了,dpkg 认为你同时安装了两种形式的包,于是就冲突了。
解决方法是删掉旧版的包的相关信息。
以上基于猜测,记得先备份。
引用:
cp -a /var/lib/dpkg/info /var/lib/dpkg/info.bakup
rm -rf /var/lib/dpkg/info/libsdl1.2debian.*

如果还有同样问题但报出来的包名不一样了那就是还有其他包冲突,同样处理即可。

您好, 感谢您的回复. 我已经重装了系统, 不过原系统的镜像依旧保留着, 我挂载后查找了一下, 在/var/lib/dpkg/info/文件夹下并没有包含libsdl1.2debian的文件.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译