解压 tar 存档时“设备上没有剩余空间”

解压 tar 存档时“设备上没有剩余空间”

我正在尝试使用tar xvzf ZAP_2.7.0_Linux.tar.gzhere 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/在这种情况下,我通常会去那里删除旧的日志文件。

相关内容