Filesystems
“fallocate”命令生成什麼樣的內容/數據?
何時執行
sudo fallocate -l 2G /swapfile
命令,然後創建 2 GB,但具有那種內容或數據?可以定制嗎?如果是的話如何?我確實做了一些研究,但沒有關於此的詳細資訊。我想知道是否可以很好地fallocate
用於swap file
目的。例如
sudo dd if=/dev/zero of=/swapfile bs=1024 count=N
創建用零填充的數據,不確定是否swap file
強制要求用零填充的數據 - 在swap file
教程中沒有提到這一點。
交換文件不需要充滿零。核心跟踪正在使用的塊。
但是,
man mkswap
可能會警告您不要使用fallocate
:請注意,交換文件不得包含任何漏洞。使用
cp(1)
創建文件是不可接受的。fallocate(1)
在支持預分配文件的文件系統(如 XFS 或 ext4)或寫時復製文件系統(如 btrfs)上也不使用。建議 在這些情況下使用dd(1)
和 。在將交換文件添加到寫時復製文件系統之前,/dev/zero
請閱讀注意事項。swapon(8)
(並非所有版本的手冊頁都包含該內容)
進一步
swapon
說:核心中的交換文件實現期望能夠直接寫入文件,而無需文件系統的幫助。這是
fallocate(1)
XFS 或 ext4 等文件系統上的預分配文件(例如 )和 btrfs 等寫時復製文件系統上的問題。手冊頁的另一個版本說
根據文件系統,由創建的預分配文件
fallocate(1)
也可能被解釋為帶有漏洞的文件。自 Linux 4.18 起,XFS 支持預分配的交換文件。所以關於你是否可以
fallocate
用來創建交換文件的問題很大程度上取決於你的核心和你的文件系統。相比之下,一個簡單的
dd
就行了。