为什么我的 /dev/loop0 显示已满?

为什么我的 /dev/loop0 显示已满?

我有足够的内存,但不知何故,我的/dev/loop0使用量显示为 9 GB,这是我的df-h

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       12G   10G  1.4G  88% /
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           785M  904K  784M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G  1.9M  2.0G   1% /run/shm
/dev/sda6        20G   14G  6.4G  68% /host
/dev/sdb1       400M  4.5M  395M   2% /media/LABEL1
/dev/sdb2       3.3G  1.9G  1.2G  62% /media/LABEL2
/dev/sda5       175G  142G   33G  82% /media/DATA

我尝试检查其中的内容。但这只会导致终端上打印出大量乱码,随后我的系统崩溃了。

任何帮助,将不胜感激。

答案1

此循环设备不占用任何空间。可以将映像和 ISO 文件安装到此虚拟设备。由于 /dev/loop0 安装在 / 上,我猜这是一个 Wubi 系统?如果是这样,则有其他东西在使用您的空间。如果这是一个 Wubi 系统,/dev/loop0 将显示物理硬盘上虚拟硬盘映像的剩余空间和已用空间。

您可以使用“du”命令来找出占用空间的真正文件。

答案2

由于我的声誉较低,我无法对上述答案发表评论,因此我在这里添加了一个新的“答案”(实际上不是)。根据 Devyn Collier Johnson 的说法,我们可以使用“du”。它没有给我带来任何结果:

du /dev/loop0
0   /dev/loop0

我仍然不知道为什么/在哪里/如何使用了几乎所有的空间。我也尝试过调整它的大小。由于我没有实时 CD/USB,我尝试了“实时调整大小”(https://help.ubuntu.com/community/ResizeWubiDisk),但是在执行时:

sudo losetup -c /dev/loop0/
loop: can't set capacity on device /dev/loop0/: Not a directory

总结:无论哪种方式我都无法做到。我既不能删除未使用/不需要的东西,也不能扩大 /dev/loop0/。希望有人能帮忙!

更新:我尝试再次执行“实时调整大小”,但不知道为什么这次执行“sudo losetup -c /dev/loop0/”只会挂起计算机。我尝试跳过该步骤,结果成功了。现在我增加了 /dev/loop0 的大小。但是,我仍然不知道我在哪里/如何使用磁盘空间......

答案3

嗯,我不能告诉你原因,但我可以告诉你如何解决这个问题。只需按照https://help.ubuntu.com/community/ResizeandDuplicateWubiDisk如果您在 Windows 操作系统上使用 wubi.exe 安装了 Ubuntu,请扩展您的 Ubuntu 磁盘分区。此外,以下终端(可以通过 ctrl+alt+T 打开)命令可能会(也可能不会,不幸的是,根据我掌握的信息,我不知道)释放一些磁盘空间:

sudo apt-get autoremove

然后通过将以下命令复制并粘贴到终端来删除所有未使用的内核。

uname -r

记下所有未使用的内核。(最新的内核(即编号最大的内核)将是您当前正在使用的内核)然后,当您确定要删除哪个内核时,请输入以下内容:

sudo apt-get purge linux-image-x.x.x.x-generic

其中 xxxx 指的是您要删除的 Linux 内核。

答案4

以下是您需要执行的操作来查看 /dev/loop0 上的内容。

sudo mkdir /mnt/loop0
sudo mount /dev/loop0 /mnt/loop0
cd /mnt/loop0
ls -la

这将允许您将文件移动到机器外的其他位置,并且一旦文件被移动,我将删除设备,因为您拥有数据,如果由于存储量的增加仍然需要删除设备。

我建议你做一些类似的事情,然后sudo nautilus选择全部复制并将文件粘贴到其他位置,例如 Google Drive 或具有可增长的大存储空间的位置。因为这些循环文件一旦提取出来,大小就会很大。

另外需要注意的是,已分配编号的 /dev/loop 是 snap 应用程序的块设备。您的 /dev/loop0 已满,因为您继续使用与块设备关联的应用程序,并且无论该应用程序是什么,都会根据使用情况创建或增加块设备的大小,如果它已满,那么您需要卸载该应用程序或将应用程序安装位置移动到其他驱动器。

以下是判断哪个应用程序正在使用 /dev/loop0 并填充驱动器空间的方法。

在管理 shell 中执行以下命令。

losetup

它应该输出这样一个例子。

NAME        SIZELIMIT OFFSET AUTOCLEAR RO      BACK-FILE                                 
/dev/loop0          0      0         1  1 /var/lib/snapd/snaps/bare_5.snap

所以我们现在清楚地知道,块设备上的 bare_5.snap 应用程序和进程已经填满了其分配的大小限制。

有关块设备管理以及文件系统如何压缩的进一步说明,请参考以下链接。 系统将 /dev/loop0 安装在 /snap/core/3604 上,并且它已 100% 满,它是从哪里来的?

相关内容