![解压 tar 存档时“设备上没有剩余空间”](https://linux22.com/image/149442/%E8%A7%A3%E5%8E%8B%20tar%20%E5%AD%98%E6%A1%A3%E6%97%B6%E2%80%9C%E8%AE%BE%E5%A4%87%E4%B8%8A%E6%B2%A1%E6%9C%89%E5%89%A9%E4%BD%99%E7%A9%BA%E9%97%B4%E2%80%9D.png)
我正在尝试使用tar xvzf ZAP_2.7.0_Linux.tar.gz
here is the file 解压缩一个tar 文件。可能是什么问题呢?
-rw-r--r-- 1 root root 32165888 Mar 6 12:06 ZAP_2.7.0_Linux.tar.gz
-rwxrwxrwx 1 root root 0 Mar 6 12:47 ZAP_2_7_0_unix.sh
当我尝试这个[root@localhost ~]# tar xvzf ZAP_2.7.0_Linux.tar.gz
我收到以下错误。
tar: ZAP_2.7.0/plugin/diff-beta-8.zap: Cannot open: No space left on device
ZAP_2.7.0/plugin/directorylistv1-release-3.zap
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
看起来我有足够的磁盘空间。我在这里读错了什么吗?抱歉,如果这是一个基本问题。为什么 root 将“Use%”显示为 100%?
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 6981632 6981080 552 100% /
devtmpfs 1426928 0 1426928 0% /dev
tmpfs 1442256 84 1442172 1% /dev/shm
tmpfs 1442256 8892 1433364 1% /run
tmpfs 1442256 0 1442256 0% /sys/fs/cgroup
/dev/sda1 508588 160004 348584 32% /boot
tmpfs 288452 16 288436 1% /run/user/42
tmpfs 288452 0 288452 0% /run/user/0
[root@localhost ~]#
可能是什么问题呢?
[root@localhost ~]# df /dev/sda
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1426928 0 1426928 0% /dev
答案1
您似乎遇到两个问题:
- 文件系统已满
- tar.gz 文件被截断,即根据错误不完整
gzip: stdin: unexpected end of file
第二个问题可能是由于第一个问题造成的:下载时(或获取文件的任何其他方式)时没有空间来保存完整的 tar.gz 文件。
您写“看起来我有足够的磁盘空间”。是什么让您得出这个结论,正如您在同一段中所写的那样:“为什么 root 将 'Use%' 显示为 100%?”,这意味着文件系统已满......有几个块空闲,但是例如,可能是由于某些守护程序删除了临时文件。
您的df /dev/sda
指示df
显示存储指定文件的文件系统;它不会显示该设备上有多少空间。
简而言之,您的文件系统已满,您要么需要删除不需要的文件,要么需要增加文件系统的大小。
您的根文件系统位于 LVM(逻辑卷管理器)上。卷组中可能存在未使用的可用空间。检查与
# vgdisplay
将会有一行Free PE / Size
,如果它不为零,那么您可以将该空间分配给根文件系统。如果要分配所有可用空间,请使用:
# lvresize --extents +100%FREE /dev/mapper/centos-root
设备大小增加后,文件系统本身需要增长以使用额外的空间。这里我假设文件系统是ext4
,首先检查mount
并查看列出的类型。
# resize2fs /dev/mapper/centos-root
这将使用文件系统的所有可用空间。
编辑/额外信息:
显示为空闲的 40MB 可能太小而无法添加,但是 LVM 需要写入其配置来执行其任务,而没有空间……所以首先您必须以某种方式释放一些空间,/var/log/
在这种情况下,我通常会去那里删除旧的日志文件。