有人告诉我,作为对我的问题内核无需文件系统的帮助就可以使用文件 - 一旦找到文件,内核只需使用其在磁盘上的位置。
示例是一个空的挂载点(目录),其中有一个文件,内核将其用作交换文件。一段时间后,外部硬盘驱动器被挂载到此挂载点。在此外部硬盘驱动器的根目录中还有一个交换文件。因此,两个文件具有相同的路径/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