问题描述
今天,我在尝试编译程序时磁盘空间不足。当我运行df -h时,我注意到分区很奇怪。 df -h产量
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 4.6G 4.4G 0 100% /
udev 32G 4.0K 32G 1% /dev
tmpfs 13G 724K 13G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 32G 0 32G 0% /run/shm
我对此输出有一些疑问。
-
为什么所有空间都分配给了udev?用户在安装过程中犯的只是一个错误,还是有原因?
-
如果我重新分区,我应该删除udev还是只是缩小它?
最佳解决办法
udev
不是永久硬盘驱动器上的分区。它是RAM disk。这样,它不会消耗永久硬盘驱动器的任何容量(当系统内存不足时,交换的一部分除外)。
Linux中的RAM磁盘和/dev
与许多现代Linux发行版一样,Ubuntu对/dev
目录使用devtmpfs
文件系统。该目录包含special (device) files,它们只是设备驱动程序的接口。 devtmpfs
是tmpfs
的一个特殊实例。 /dev
目录是Unix-like目录结构的重要组成部分。如果删除它,系统将停止运行。
您会注意到,在Ubuntu中,tmpfs
也已挂载在/run
及其子目录上。在其他一些系统上,也可以将其安装在/tmp
上。
你的问题
-
空间分配是默认设置。默认情况下,
tmpfs
文件系统被限制为RAM容量的50%。 (您是否有64 GB的RAM?)该数目实际上只是一个限制,因为tmpfs
文件系统确实仅占用了存储文件所需的空间,而对于/dev
目录,所需空间非常小。您(我)的情况下占用的容量为几KB。 -
您无法通过分区影响
tmpfs
大小,因为它们没有存储在物理驱动器上。如果不对系统进行实质性更改,则根本无法删除它。您可以将大小限制降低:sudo mount -o remount,size=1G /dev
,但这只会更改限制,而不会更改实际占用的RAM空间。
解决您的问题
您的解决方案是对驱动器进行重新分区,使/dev/sda1
更大(如果可以进行重新分区,则更容易),或者添加新分区,然后将它们安装到适当的目录中,然后将现有文件移动到该目录中,以释放根(/
)文件系统。