如何告诉内核交换文件系统中不再可见的文件?

如何告诉内核交换文件系统中不再可见的文件?

有人告诉我,作为对我的问题内核无需文件系统的帮助就可以使用文件 - 一旦找到文件,内核只需使用其在磁盘上的位置。

示例是一个空的挂载点(目录),其中有一个文件,内核将其用作交换文件。一段时间后,外部硬盘驱动器被挂载到此挂载点。在此外部硬盘驱动器的根目录中还有一个交换文件。因此,两个文件具有相同的路径/mountpoint/swapfile

我的问题是如何swapoff /file 第一个文件。再次明确一点:swapoff /mountpoint/swapfile不会起作用,因为这是第二个文件(挂载后),内核此时未使用该文件。至少我对此表示怀疑。

我想要swapoff一个在我的文件系统中不可见的文件。

(是的,可能还有其他解决方案,但我对此很好奇。)

答案1

您可以通过交换区域 UUID 来识别要禁用的交换设备/文件。

首先列出所有交换区域的 UUID:

$sudo swapon --show=SIZE,NAME,UUID -v
 SIZE NAME          UUID
1023M /dev/sda5     af72b528-c4fe-4dfe-8a1b-82e4d2d46d2a
1020K /tmp/testswap 32149ab7-bc18-4aef-872c-7b70ce144572

然后找到您想要的文件(在我的情况下是 testswap)并按如下方式禁用它:

$sudo swapoff UUID=32149ab7-bc18-4aef-872c-7b70ce144572

验证它是否不再处于活动状态:

$ sudo swapon --show=SIZE,NAME,UUID -v
 SIZE NAME      UUID
1023M /dev/sda5 af72b528-c4fe-4dfe-8a1b-82e4d2d46d2a

相关内容