修复ubuntu系统崩溃——硬盘空间剩余0字节和误删除当前(所有)内核

时间:2016-06-18 19:58:47   收藏:0   阅读:1868

现象及背景


 

提示硬盘空间剩余0字节,没有当回事选择忽略,并希望通过重启解决“故障”。然而,“重启”却没能启动成功。有个背景是提示系统更新的时候,我选择全部更新,也就是将内核升级到3.19*61,原来是3.19*25;还有就是破解sony的双目摄像机ps4eye的驱动,可能与“bug”(剩余0字节)有关。

修复中产生新问题——删除当前内核


由于提示硬盘空间剩余0字节,同时注意到升级了内存导致此次故障,首先想到了删除多余的内核,“系统不允许删除当前内核”其实只是会提醒,因为获取了权限,所以很奇葩的我把所有的内核都删除了。此时,最好是不重启立马重新装内核,然而,我重启以为能恢复,结果自然悲剧。

boot-repair,修复启动项


 

在系统无法启动的情况下,首先想到的是修复启动项,其实犯了个错误,因为,此时启动项没问题,只是由于硬盘没有空间无法进入系统。但boot-repair这个工具还是很有用的,也让我更清楚的掌握出现的问题。

参考:http://jingyan.baidu.com/article/5553fa82cd48a765a23934ae.html

具体:

U盘启动盘打开电脑:

sudo -i

add-apt-repository ppa:yannubuntu/boot-repair && apt-get update

apt-get install -y boot-repair && boot-repair

技术分享

 

点击第一个选项Recommended repair,剩下的软件会自己操作,不需要人为干预 视电脑配置,花费的时间不等。

对我而言,boot-repair成功修复了启动项,但是系统还是无法启动,因为可用空间还是为零,其实这也导致了卸载内核时空间不足无法展开的问题。修复成功后提示我空间不足,让删除一些文件,我获取权限删除了*.log(大于160G)的文件,但是还是报警剩余空间为零。

解决1:


查找占满整个硬盘空间的罪魁祸首:

linux下查找大文件的方法(http://www.2cto.com/os/201412/358960.html)

1.找磁盘使用率较高的目录,du命令

du -sh /*

列出根目录下,所有目录的大小

然后在去目录下,慢慢分析吧

2.找文件大小,find命令

例如:

查找磁盘上大于20MB的文件

find / -size +20000k -exec ls -lh {} \;

查找磁盘上大于400MB的文件,直接删除,一般都是日志文件

find / -size +400000k -exec rm -rf {} \;

其它有用的命令还有:

df -h

(发现了var/log下有个uv*.log(可能是sony camera ps4eye破解导致)160G以上,在U盘启动盘下,删除之,但还是报警硬盘空间不足。

解决思路:备份下载的数据集,删除后空出30G左右的空间,重装内核。

解决2:重装内核(删除当前内核情况下重装内核)


 

参考链接:

http://blog.sina.com.cn/s/blog_77bd35590102we6b.html

http://www.laifuying.com/archives/521

http://www.blogjava.net/stone2083/archive/2011/06/18/352551.html

http://blog.csdn.net/ad4546/article/details/7292554

http://www.cnblogs.com/xiangzi888/p/3675725.html

(1)将U盘中的文件 /media/cdrom/casper/vmlinuz.efi 和   /media/cdrom/casper/initrd.lz 文件复制到 /media/xxx/boot/ 目录(原系统的boot下)

(2)

sudo mount /dev/sda7 /mnt
chroot /mnt
dpkg --get-selections | grep linux

发现确实是删除了内核,只好重装linux kernel 了。

挂载必要的东东(root 分区上面已经挂载到/mnt):
exit #退出chroot

 

sudo mount --bind /proc /mnt/proc #绑定当前进程到/mnt下的proc
sudo mount --bind /dev /mnt/dev #绑定设备文件到/mnt下的dev
sudo chroot /mnt

安装 linux kernel

apt-get install linux-image-3.***-generic
这里,我查看了U盘启动盘里boot里的东西,挨个在原系统(chroot)boot下安装了一边,重启之后成功了。

重启系统,恢复正常。

安装完内核如果有问题,还可以使用root-repair解决。

解决3:真正删除占满硬盘的文件


 

定位大文件:sudo find / -size +20000k -exec ls -lh {} \;

cd 到相应的目录(/.Trash)
rm 对应的文件
则真正的删除了bug文件。



其它参考:
1,将文件从/etc/aaa.gz拷贝到/tmp/目录下:
cp /etc/aaa.gz /tmp/
将文件从/etc/aaa.gz拷贝到/tmp/目录下,并给它命名为bbb.gz
cp /etc/aaa.gz /tmp/bbb.gz
将目录/etc/fold/拷贝到/tmp/目录下
cp -rf /etc/fold /tmp/
注:-r 用来拷贝文件夹,-f 用来强制拷贝不提示确认

后记


 

写的比较啰嗦,主要是因为新手一个,找了很多方法,可能都对最后问题的解决有影响,就都写出来参考吧。

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!