分页: 1 / 1

[问题]让我把Var删除了,无法启动图形界面

发表于 : 2007-04-24 12:55
coloor
问题如题,应该怎么办?

发表于 : 2007-04-24 12:57
coloor
把Var下的文件全删掉啦,嘿嘿。怎么办?
只能启动到命令行下

发表于 : 2007-04-24 13:16
coandco
我有这样一个想法,不知道可行否:
进你的LiveCD,COPY VAR那个目录,打包它。在放到网上(或者放到第二台机器的FTP/WWW)上。然后再开你那个系统,下载,解压……

发表于 : 2007-04-24 13:20
BigSnake.NET
重装

发表于 : 2007-04-24 13:26
coloor
删之前我看了一下,足有400多M。
估计得重装了,可怜我刚玩Ubuntu,什么也不会,连条命令都不会

发表于 : 2007-04-24 13:42
zmcbb30
coloor 写了:删之前我看了一下,足有400多M。
估计得重装了,可怜我刚Ubuntu,什么也不会,连条命令都不会
记得补习功课

发表于 : 2007-04-24 16:13
依寻依然
可以试试这个:
/var 误删抢险记

那天正在研究rsync,照着某网站的说明做了。其中有一个--delete的参数,我当时并没有注意,照抄了下来。另外该说明把备份信息放在/tmp,我本人并不喜欢/tmp,所以自己换成了/var。等我一回车,恐怖的事情发生了。

--delete的作用,据后来我得知,是把服务端已经不存在的目录删去。于是可以知道后果。当它在删一大堆文件的时候,并未引起我的注意。等我反应过来,/var里面已经基本没什么东西了。

经验一:任何带有del关键字的命令务必再三检验。

痛苦。懊悔。

上irc.debian.org去问了,他们告诉我可以用ext2的undel工具,比如e2undel。不过你现在得立即umount这个分区。由于当初我只分了一个区,且硬盘上仅这一个区(其实即使分了多个区,/var也是没有办法umount的),于是我决定使用knoppix。

knoppix启动,里面是没有类似的恢复工具的。取得root权限,肯定是不能马上apt-get的。先来一下update,发现 /var/lib/apt、/var/lib/dpkg、/var/cache/apt等目录都是链接,链接到光盘的目录,所以无法写入。于是把链接删掉,自己新建目录,就可以update了。等install的时候,提示/lib目录无法写入。一看,/lib目录也是链接,于是想也没想,删!等到删了以后,发现,没了/lib,基本没有什么命令可以执行了,包括ls、mv等命令。而且在图形界面上也是不能把其他目录重命名为/lib的。考虑到即使装了也未必能恢复所有的文件,而且我的/var里面没有什么重要的东西,于是放弃undelete的念头。

经验二:knoppix可以安装新的软件包,不过得把一些链接换成空的目录。至于安装重要库到/lib,还是免了吧。

系统还是可以启动的,不过启动的时候有很多服务不能正常打开。这无关紧要,只要重装一下服务就可以了。重要的在于/var/lib/dpkg/info/ 下面的软件包安装信息也被删得差不多了,更由于/var/lib/dpkg/status文件丢失,apt乱七八糟。遂决定重新安装所有的软件包。

重新安装可不是一件简单事。幸好在/var/backups/里面找到了status的备份,拷到/var/lib/dpkg/。不过要是没有找到的话, debian-reference上面也有一个链接,最基本的/var,可以找来用。dselect,除了base以外全部remove(之所以不 purge,我是怕它把我的配置删了),不过系统会让你确认,因为有五个包:shellutils、fileutils、textutils、apt、 original-awk也是必需的,还得加上。

选完以后,开始Install。系统发现emacsen-common包有问题,有文件都是,并且牵扯出一大堆包。用了--force-all也没有用,于是执行
dpkg --get-selections 取得清单,把emacsen-common的状态改成purge,然后
dpkg --set-selections 再写入,
于是emacsen-common没有问题了,其他一些相关包的问题,大都是prerm、postinst脚本的问题,到/var/lib/dpkg/info/下面修改具体脚本就可以了。

经验三:对于--force-all也没用的包,可以尝试get-selections然后set-selections。

终于可以开始remove了。过程中还会出现不少问题,如法炮制就是了。每删一个软件包都会出现一大堆软件包信息丢失的警告,不过看着它们越来越少,知道离问题解决也不远了。等到这些包全部删完,剩下的警告也就不多了,大约还有十多个。手动把这些包reinstall就可以了。不过在此之前,我还把 /var彻底清理了一下,把一些没什么用处的东西索性全删了。

然后就不用我教了吧?重新安装所有的软件包,软件包会在/var里面写入各种信息的。在此期间如果要重新启动的话,记得把devfs=mount去掉,如果你安装了devfsd的话。

好了,应该没什么问题了。现在发现kde安装似乎有一点问题,不能切换到中文桌面。另外软件包的dependence也常有点问题。知道是不是这个原因。

本文只适用于/var被误删。如果其他目录,如/etc、/usr等目录的话,劝你还是老实一点重装吧。

发表于 : 2007-04-24 18:24
stlxv
coandco 写了:我有这样一个想法,不知道可行否:
进你的LiveCD,COPY VAR那个目录,打包它。在放到网上(或者放到第二台机器的FTP/WWW)上。然后再开你那个系统,下载,解压……
不妥,/var的内容和结构取决于你所使用的系统,是别人无法替代的。如果没有备份过,那么要恢复/var必须原先对自己的系统有很深的了解,显然lz无法满足这个条件。

重装吧