zoukankan      html  css  js  c++  java
  • 修复ubuntu系统崩溃——硬盘空间剩余0字节和误删除当前(所有)内核

    1  现象及背景

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


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

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


    3  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)的文件,但是还是报警剩余空间为零。


    4  解决1——定位bug文件

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

    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左右的空间,重装内核。


    5  解决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解决。


    6  解决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 用来强制拷贝不提示确认

     

    7  后记

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

    又出现新情况:

    3个参考链接:

    https://askubuntu.com/questions/94542/how-can-i-repair-my-installation

    https://help.ubuntu.com/community/LiveCdRecovery

    https://askubuntu.com/questions/595485/ubuntu-14-04-how-can-i-reinstall-ubuntu-desktop-with-a-live-cd

  • 相关阅读:
    Anaconda和Miniconda的安装
    并联谐振电路频率阻抗及计算曲线带宽案例摘要
    TEM波
    Android Studio实现简单考试应用程序
    android studio实现简单考试应用程序
    Android Studio的简易计算器界面设计
    时谐变换
    简要理解什么是趋肤效应
    c盘清理
    如何把Visual Studio完全安装在其他磁盘
  • 原文地址:https://www.cnblogs.com/huicanlin/p/5596716.html
Copyright © 2011-2022 走看看