磁盘相关

磁盘空间不足

/空间不足

SUSE用了一段时间,确实是十分人性化而且提示清晰的一款操作系统,让用惯了win/ubuntu的我,也没有什么太大的不适应,先赞一个。
今天从休眠模式解锁时看到一个提示,/空间可能不足,不明白,/有10G左右的空间,平时的操作也完全不放到/下,那么为什么空间会用掉呢?是不是误报?

1. 首先,检查一下磁盘空间,df -h

binresist@binresist:/> df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        7.7G     0  7.7G    0% /dev
tmpfs           7.7G   71M  7.7G    1% /dev/shm
tmpfs           7.7G  2.5M  7.7G    1% /run
tmpfs           7.7G     0  7.7G    0% /sys/fs/cgroup
/dev/sda2        10G  9.1G  707M   93% /
/dev/sda2        10G  9.1G  707M   93% /.snapshots
/dev/sda8        16G   76M   15G    1% /usr/local
/dev/sda3        10G  687M  9.4G    7% /var
/dev/sda2        10G  9.1G  707M   93% /srv
/dev/sda7        30G   17M   30G    1% /tmp
/dev/sda6        30G   17M   30G    1% /opt
/dev/sda1       1.8G  227M  1.5G   14% /boot
/dev/sdb1       932G  103G  828G   12% /home
tmpfs           1.6G   24K  1.6G    1% /run/user/1000

2. 看起来,磁盘空间果然所剩无几,有一点需要注意的是,/.snapshots /srv和/挂载的是同一个分区,共用10G的存储。

3. /srv和/.snapshots,还是其他的磁盘空间占用过多?sudo du -h --max-depth=1 /

28M /etc
83G /.snapshots
516K    /srv
225M    /boot
98G /home
0   /opt
68K /tmp
5.9G    /usr
653M    /var
208K    /dev
0   /proc
0   /sys
2.3M    /run
549M    /lib
11M /sbin
5.2M    /bin
19M /lib64
0   /mnt
4.6M    /root
0   /selinux

4. 可以看到,/srv只有500多k,/.snapshots却已经超过了总大小。这是为什么?实际的文件大小为什么会超过磁盘总空间?这不可能啊!检查一下!

cd /.snapshots
ls -l

总用量 4
drwxr-xr-x 1 root root  32 3月  30 06:26 1
drwxr-xr-x 1 root root  32 3月  30 06:40 2
drwxr-xr-x 1 root root  32 4月   5 09:55 77
drwxr-xr-x 1 root root  62 4月   5 09:55 78
drwxr-xr-x 1 root root  32 4月   6 09:32 79
drwxr-xr-x 1 root root  62 4月   6 09:44 80
drwxr-xr-x 1 root root  32 4月  10 10:00 81
drwxr-xr-x 1 root root  62 4月  10 10:00 82
drwxr-xr-x 1 root root  32 5月   5 15:23 83
drwxr-xr-x 1 root root  62 5月   5 15:23 84
drwxr-xr-x 1 root root  32 5月   8 09:31 85
drwxr-xr-x 1 root root  62 5月   8 09:31 86
drwxr-xr-x 1 root root  32 5月   9 15:09 87
drwxr-xr-x 1 root root  62 5月   9 15:09 88
-rw-r----- 1 root root 184 5月   9 15:09 grub-snapshot.cfg
4.1 随便找一个文件夹进去看一下:cd 1 ls -l 可以看到里面依然是snapshots
binresist:/.snapshots/1 # ls -l
总用量 4
-rw------- 1 root root 168 3月  30 06:26 info.xml
drwxr-xr-x 1 root root 156 3月  30 06:26 snapshot
4.2 继续深入:cd snapshots ls -l
binresist:/.snapshots/1/snapshot # ls -l
总用量 0
drwxr-xr-x 1 root root 1760 5月   5 15:18 bin
drwxr-xr-x 1 root root    0 3月  30 06:26 boot
drwxr-xr-x 1 root root    0 3月  30 06:26 dev
drwxr-xr-x 1 root root 5274 5月  11 10:08 etc
drwxr-xr-x 1 root root    0 3月  30 06:26 home
drwxr-xr-x 1 root root 2546 4月   5 09:53 lib
drwxr-xr-x 1 root root 5178 5月   5 15:18 lib64
drwxr-xr-x 1 root root    6 3月  30 11:25 mnt
drwxr-xr-x 1 root root    0 3月  30 06:26 opt
drwxr-xr-x 1 root root    0 3月  30 06:26 proc
drwx------ 1 root root  382 5月  12 10:09 root
drwxr-xr-x 1 root root    0 3月  30 06:26 run
drwxr-xr-x 1 root root 4686 5月   5 15:22 sbin
drwxr-xr-x 1 root root    0 10月  7 2016 selinux
drwxr-xr-x 1 root root    0 5月  11 10:08 .snapshots
drwxr-xr-x 1 root root    0 3月  30 06:26 srv
drwxr-xr-x 1 root root    0 3月  30 06:26 sys
drwxr-xr-x 1 root root    0 3月  30 06:26 tmp
drwxr-xr-x 1 root root  130 3月  30 06:26 usr
drwxr-xr-x 1 root root    0 3月  30 06:26 var
4.3 继续深入cd bin ls -l
binresist:/.snapshots/1/snapshot/bin # ls -l
总用量 5280
lrwxrwxrwx 1 root root      13 3月  30 06:28 arch -> /usr/bin/arch
lrwxrwxrwx 1 root root      21 3月  30 06:28 awk -> /etc/alternatives/awk
lrwxrwxrwx 1 root root      17 3月  30 06:28 basename -> /usr/bin/basename
-rwxr-xr-x 1 root root  697816 10月 18 2016 bash
lrwxrwxrwx 1 root root      12 3月  30 06:28 cat -> /usr/bin/cat
lrwxrwxrwx 1 root root      14 3月  30 06:28 chgrp -> /usr/bin/chgrp
lrwxrwxrwx 1 root root      14 3月  30 06:28 chmod -> /usr/bin/chmod
lrwxrwxrwx 1 root root      14 3月  30 06:28 chown -> /usr/bin/chown
lrwxrwxrwx 1 root root      13 3月  30 06:28 chvt -> /usr/bin/chvt
lrwxrwxrwx 1 root root      18 3月  30 06:28 clrunimap -> /usr/bin/clrunimap
lrwxrwxrwx 1 root root      11 3月  30 06:28 cp -> /usr/bin/cp
lrwxrwxrwx 1 root root      13 5月   5 15:18 cpio -> /usr/bin/cpio
lrwxrwxrwx 1 root root       4 3月  30 06:28 csh -> tcsh
lrwxrwxrwx 1 root root      13 3月  30 06:28 date -> /usr/bin/date
-rwxr-xr-x 1 root root   10640 3月  15 19:13 dbus-cleanup-sockets
-rwxr-xr-x 1 root root  426616 3月  15 19:13 dbus-daemon
-rwxr-xr-x 1 root root   18944 3月  15 19:13 dbus-monitor
-rwxr-xr-x 1 root root   23176 3月  15 19:13 dbus-send
-rwxr-xr-x 1 root root   10560 3月  15 19:13 dbus-uuidgen
lrwxrwxrwx 1 root root      11 3月  30 06:28 dd -> /usr/bin/dd
lrwxrwxrwx 1 root root      18 3月  30 06:28 deallocvt -> /usr/bin/deallocvt
lrwxrwxrwx 1 root root      11 3月  30 06:28 df -> /usr/bin/df
lrwxrwxrwx 1 root root      14 3月  30 06:29 dmesg -> /usr/bin/dmesg

可以看到,显然,这是因为软链接的指向,使du对空间进行了重复计算。打开其他的2, 77等,也是这样。

5. snapshots是什么?

回归到问题本质,那么,这个.snapshots是什么呢?现象上,可以看到,每个snapshots中实际上是/下一些命令的软链接。那么,这种软链接有什么作用呢?是为了某些程序的调用方便?还是为了备份或者其他目的?

6. snapper/btrfs

经过网上资料的搜索和总结,发现这实际上是因为该分区采用了一种btrfs的文件系统,这种文件系统采用B-Tree来管理元数据,而不是向ext2/ext3那样采用线形表,对于文件数量较多时,能够有更好的查找、插入、删除性能。使用snapper则可以对使用btrfs的文件系统进行快照的管理。而在suse上,默认情况下,snapper服务于yast和zypper所作的修改,便于回滚。

注:关于btrfs和snapper,这里有几篇简单的概述性说明。
btrfs百度百科
snapper
使用df -Th来查看分区类型。

binresist@binresist:~/文档/notes/md> df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
devtmpfs       devtmpfs  7.7G     0  7.7G    0% /dev
tmpfs          tmpfs     7.7G  179M  7.6G    3% /dev/shm
tmpfs          tmpfs     7.7G  2.6M  7.7G    1% /run
tmpfs          tmpfs     7.7G     0  7.7G    0% /sys/fs/cgroup
/dev/sda2      btrfs      10G  9.1G  707M   93% /
/dev/sda2      btrfs      10G  9.1G  707M   93% /.snapshots
/dev/sda8      xfs        16G   76M   15G    1% /usr/local
/dev/sda3      xfs        10G  689M  9.4G    7% /var
/dev/sda2      btrfs      10G  9.1G  707M   93% /srv
/dev/sda7      btrfs      30G   17M   30G    1% /tmp
/dev/sda6      btrfs      30G   17M   30G    1% /opt
/dev/sda1      ext4      1.8G  227M  1.5G   14% /boot
/dev/sdb1      btrfs     932G  105G  827G   12% /home
tmpfs          tmpfs     1.6G   56K  1.6G    1% /run/user/1000
tmpfs          tmpfs     1.6G   20K  1.6G    1% /run/user/479

7. snapper用法

知道了这些,那么只需要知道snapper的用法,修改快照的频率,或者修改快照的位置即可。毕竟/home还有很大的空间。
sudo snapper --help输出结果很多,这里就不再列出了,

8. 查看当前有多少个快照

sudo snapper list

binresist@binresist:~/文档/notes/md> sudo snapper list
类型 | #  | 前期 # | 日期                                      | 用户 | 清空 | 描述                | 用户数据
-------+----+----------+---------------------------------------------+--------+--------+-----------------------+--------------
single | 0  |          |                                             | root   |        | current               |
single | 1  |          | 2017年03月30日 星期四 06时26分27秒 | root   |        | first root filesystem |
single | 2  |          | 2017年03月30日 星期四 06时40分54秒 | root   | number | after installation    | important=yes
pre    | 77 |          | 2017年04月05日 星期三 09时52分16秒 | root   | number | zypp(packagekitd)     | important=yes
post   | 78 | 77       | 2017年04月05日 星期三 09时55分12秒 | root   | number |                       | important=yes
pre    | 79 |          | 2017年04月06日 星期四 09时32分24秒 | root   | number | yast sw_single        |
post   | 80 | 79       | 2017年04月06日 星期四 09时44分20秒 | root   | number |                       |
pre    | 81 |          | 2017年04月10日 星期一 10时00分26秒 | root   | number | zypp(packagekitd)     | important=no
post   | 82 | 81       | 2017年04月10日 星期一 10时00分31秒 | root   | number |                       | important=no
pre    | 83 |          | 2017年05月05日 星期五 15时18分18秒 | root   | number | zypp(packagekitd)     | important=yes
post   | 84 | 83       | 2017年05月05日 星期五 15时23分33秒 | root   | number |                       | important=yes
pre    | 85 |          | 2017年05月08日 星期一 09时31分34秒 | root   | number | zypp(packagekitd)     | important=no
post   | 86 | 85       | 2017年05月08日 星期一 09时31分44秒 | root   | number |                       | important=no
pre    | 87 |          | 2017年05月09日 星期二 15时09分32秒 | root   | number | zypp(packagekitd)     | important=no
post   | 88 | 87       | 2017年05月09日 星期二 15时09分40秒 | root   | number |                       | important=no 

9. 删除快照恢复空间

sudo snapper delete n

binresist@binresist:~/Blog/binresist.github.io/_posts/software_error> sudo snapper list
root's password:
类型 | # | 前期 # | 日期                                      | 用户 | 清空 | 描述                | 用户数据
-------+---+----------+---------------------------------------------+--------+--------+-----------------------+-------------
single | 0 |          |                                             | root   |        | current               |
single | 1 |          | 2017年03月30日 星期四 06时26分27秒 | root   |        | first root filesystem |             

注:n指代的是序号

10. 修改配置文件,减少个人操作

vim /etc/snapper/configs/root
注:这里的配置文件名叫root,请根据个人实际情况来调整。

SUSE常见问题解决办法相关推荐

  1. 计算机常发故障英语,vipkid英语常见问题解决办法

    大家使用vipkid英语学习时,可能会遇到各种问题,下面分享一下vipkid英语常见问题解决办法,希望可以帮到大家. vipkid英语常见问题解决办法 一.浏览器问题 建议使用的浏览器: 谷歌浏览器 ...

  2. Starling常见问题解决办法

    Starling常见问题解决办法 来自:智慧 + 毅力 = 无所不能 1.Android设备上阻止用户按下后退后的行为 侦听按键事件 //阻止后退行为 view.stage.addEventListe ...

  3. Jlink在ADS下的配置说明及常见问题解决办法 (转载)

    **原文地址:[Jlink在ADS下的配置说明及常见问题解决办法] (http://www.360doc.com/content/13/1124/23/6844270_331917942.shtml) ...

  4. Jlink在ADS下的配置说明及常见问题解决办法

    阅读1087次 2013/4/2 21:04:37 Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档: *1.TQ2440开发板使用手册V3.2_20121203.pdf 2.J ...

  5. 【原创】Jlink在ADS下的配置说明及常见问题解决办法

    Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档: *1.TQ2440开发板使用手册V3.2_20121203.pdf 2.JLINK ADS 2440.pdf 注:1.本说明是 ...

  6. 猎杀对决与服务器连接中断,猎杀对决游戏常见问题汇总_猎杀对决游戏常见问题解决办法...

    猎杀对决游戏相信大家应该已经不陌生了,对于这款游戏还不好玩小编已经不用给大家介绍大家也知道了,今天小编给大家带来猎杀对决游戏常见问题解决办法. 猎杀对决游戏常见问题解决办法 猎杀对决提示EasyAnt ...

  7. 教师资格证笔试报名信息内部服务器错误,教师资格考试报名常见问题解决办法(2017年)...

    出国留学网教师资格证考试栏目为大家分享"教师资格考试报名常见问题解决办法(2017年)",希望能帮到大家.想了解更多关于教师资格证考试的讯息,请继续关注我们网站的更新. 教师资格考 ...

  8. 联想黑苹果找不到触摸板_联想V330-15IKB完美黑苹果,和笔记本各类常见问题解决办法...

    本帖最后由 rclhxm 于 2020-9-17 20:31 编辑 前言 最近用了一周的时间把我的联想V330-15IKB给装上了10.15.6的黑苹果,并完美驱动(完善程度90%以上,因为可能有些领 ...

  9. PSCAD快速上手和常见问题解决办法

    PSCAD快速上手和常见问题解决办法 PSCAD文件 编译过程 如何新建一个项目? 如何添加元件到case里? 如何新建元件? PSCAD模型常见问题及解决办法 1. 缺少Gfortran编译器 2. ...

  10. QQ直播使用常见问题解决办法(转)

    QQ直播使用常见问题解决办法(转) 问:使用直播的系统最低配置 答:使用QQ直播的最低标准配置为1.CPU工作频率PIII 800M,内存128M.2 Windows 98及其以上的Windows操作 ...

最新文章

  1. python装饰器学习
  2. Java基础(十一) Stream I/O and Files
  3. IT人 不要一辈子靠技术生存(转)
  4. 如何改变本地git的根目录
  5. jersey客户端_每个客户使用Jersey处理的Cookie
  6. Servlet规范中定义的过滤器
  7. C++语言基础 —— STL —— 容器与迭代器 —— bitset
  8. 为eclipse安装python、shell开发环境和SVN插件
  9. OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
  10. 如何写期刊论文的文献综述
  11. 防火门可以根据EN 1634-1 标准测试吗?
  12. Redis常见面试题整理
  13. 精读Tree Energy Loss: Towards Sparsely Annotated Semantic Segmentation
  14. 统计试验设计的常用模型
  15. OOM-Java内存不足排查与分析
  16. 聊聊保证线程安全的10个小技巧
  17. hdu 4394 Digital Square【标准DFS】
  18. 数据结构相关重点(个人总结)
  19. win8找到程序员计算器
  20. kewail邮件短信平台

热门文章

  1. 汇编语言、寄存器分类及程序计数器
  2. 树莓派开发板截屏软件下载
  3. Oralce性能优化-绑定变量窥视
  4. 江苏科技大学计算机学院院长高尚,江苏科技大学计算机科学与工程学院导师介绍...
  5. 实验六、contentprovider实验+SQLite数据库的实现
  6. 某摄像头的游戏的总结
  7. 浅析deep深度选择器
  8. iOS pch文件配置
  9. mysql2008连接不上_sql server连接不上怎么办 SQL Server2008R无法登录的解决方案(1814\18456)...
  10. Solidity 投票案例