我是靠谱客的博主 烂漫御姐,最近开发中收集的这篇文章主要介绍SUSE常见问题解决办法磁盘相关,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

磁盘相关

磁盘空间不足

/空间不足

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 330 06:26 1
drwxr-xr-x 1 root root
32 330 06:40 2
drwxr-xr-x 1 root root
32 45 09:55 77
drwxr-xr-x 1 root root
62 45 09:55 78
drwxr-xr-x 1 root root
32 46 09:32 79
drwxr-xr-x 1 root root
62 46 09:44 80
drwxr-xr-x 1 root root
32 410 10:00 81
drwxr-xr-x 1 root root
62 410 10:00 82
drwxr-xr-x 1 root root
32 55 15:23 83
drwxr-xr-x 1 root root
62 55 15:23 84
drwxr-xr-x 1 root root
32 58 09:31 85
drwxr-xr-x 1 root root
62 58 09:31 86
drwxr-xr-x 1 root root
32 59 15:09 87
drwxr-xr-x 1 root root
62 59 15:09 88
-rw-r----- 1 root root 184 59 15:09 grub-snapshot.cfg
4.1 随便找一个文件夹进去看一下:cd 1 ls -l 可以看到里面依然是snapshots
binresist:/.snapshots/1 # ls -l
总用量 4
-rw------- 1 root root 168 330 06:26 info.xml
drwxr-xr-x 1 root root 156 330 06:26 snapshot
4.2 继续深入:cd snapshots ls -l
binresist:/.snapshots/1/snapshot # ls -l
总用量 0
drwxr-xr-x 1 root root 1760 55 15:18 bin
drwxr-xr-x 1 root root
0 330 06:26 boot
drwxr-xr-x 1 root root
0 330 06:26 dev
drwxr-xr-x 1 root root 5274 511 10:08 etc
drwxr-xr-x 1 root root
0 330 06:26 home
drwxr-xr-x 1 root root 2546 45 09:53 lib
drwxr-xr-x 1 root root 5178 55 15:18 lib64
drwxr-xr-x 1 root root
6 330 11:25 mnt
drwxr-xr-x 1 root root
0 330 06:26 opt
drwxr-xr-x 1 root root
0 330 06:26 proc
drwx------ 1 root root
382 512 10:09 root
drwxr-xr-x 1 root root
0 330 06:26 run
drwxr-xr-x 1 root root 4686 55 15:22 sbin
drwxr-xr-x 1 root root
0 107 2016 selinux
drwxr-xr-x 1 root root
0 511 10:08 .snapshots
drwxr-xr-x 1 root root
0 330 06:26 srv
drwxr-xr-x 1 root root
0 330 06:26 sys
drwxr-xr-x 1 root root
0 330 06:26 tmp
drwxr-xr-x 1 root root
130 330 06:26 usr
drwxr-xr-x 1 root root
0 330 06:26 var
4.3 继续深入cd bin ls -l
binresist:/.snapshots/1/snapshot/bin # ls -l
总用量 5280
lrwxrwxrwx 1 root root
13 330 06:28 arch -> /usr/bin/arch
lrwxrwxrwx 1 root root
21 330 06:28 awk -> /etc/alternatives/awk
lrwxrwxrwx 1 root root
17 330 06:28 basename -> /usr/bin/basename
-rwxr-xr-x 1 root root
697816 1018 2016 bash
lrwxrwxrwx 1 root root
12 330 06:28 cat -> /usr/bin/cat
lrwxrwxrwx 1 root root
14 330 06:28 chgrp -> /usr/bin/chgrp
lrwxrwxrwx 1 root root
14 330 06:28 chmod -> /usr/bin/chmod
lrwxrwxrwx 1 root root
14 330 06:28 chown -> /usr/bin/chown
lrwxrwxrwx 1 root root
13 330 06:28 chvt -> /usr/bin/chvt
lrwxrwxrwx 1 root root
18 330 06:28 clrunimap -> /usr/bin/clrunimap
lrwxrwxrwx 1 root root
11 330 06:28 cp -> /usr/bin/cp
lrwxrwxrwx 1 root root
13 55 15:18 cpio -> /usr/bin/cpio
lrwxrwxrwx 1 root root
4 330 06:28 csh -> tcsh
lrwxrwxrwx 1 root root
13 330 06:28 date -> /usr/bin/date
-rwxr-xr-x 1 root root
10640 315 19:13 dbus-cleanup-sockets
-rwxr-xr-x 1 root root
426616 315 19:13 dbus-daemon
-rwxr-xr-x 1 root root
18944 315 19:13 dbus-monitor
-rwxr-xr-x 1 root root
23176 315 19:13 dbus-send
-rwxr-xr-x 1 root root
10560 315 19:13 dbus-uuidgen
lrwxrwxrwx 1 root root
11 330 06:28 dd -> /usr/bin/dd
lrwxrwxrwx 1 root root
18 330 06:28 deallocvt -> /usr/bin/deallocvt
lrwxrwxrwx 1 root root
11 330 06:28 df -> /usr/bin/df
lrwxrwxrwx 1 root root
14 330 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
|
| 20170330日 星期四 062627秒 | root
|
| first root filesystem |
single | 2
|
| 20170330日 星期四 064054秒 | root
| number | after installation
| important=yes
pre
| 77 |
| 20170405日 星期三 095216秒 | root
| number | zypp(packagekitd)
| important=yes
post
| 78 | 77
| 20170405日 星期三 095512秒 | root
| number |
| important=yes
pre
| 79 |
| 20170406日 星期四 093224秒 | root
| number | yast sw_single
|
post
| 80 | 79
| 20170406日 星期四 094420秒 | root
| number |
|
pre
| 81 |
| 20170410日 星期一 100026秒 | root
| number | zypp(packagekitd)
| important=no
post
| 82 | 81
| 20170410日 星期一 100031秒 | root
| number |
| important=no
pre
| 83 |
| 20170505日 星期五 151818秒 | root
| number | zypp(packagekitd)
| important=yes
post
| 84 | 83
| 20170505日 星期五 152333秒 | root
| number |
| important=yes
pre
| 85 |
| 20170508日 星期一 093134秒 | root
| number | zypp(packagekitd)
| important=no
post
| 86 | 85
| 20170508日 星期一 093144秒 | root
| number |
| important=no
pre
| 87 |
| 20170509日 星期二 150932秒 | root
| number | zypp(packagekitd)
| important=no
post
| 88 | 87
| 20170509日 星期二 150940秒 | 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常见问题解决办法磁盘相关的全部内容,希望文章能够帮你解决SUSE常见问题解决办法磁盘相关所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部