"fallocate"コマンドはどのようなコンテンツ/データを生成しますか?

命令を実行するとsudo fallocate -l 2G /swapfile2GBが生成されますが、その中にはどのような内容やデータが含まれていますか?カスタマイズできますか?それではどうでしょうか?いくつかの調査をしてみましたが、これについての詳細はありません。これfallocateに良い用途があるのか​​気になりますswap file

たとえば、sudo dd if=/dev/zero of=/swapfile bs=1024 count=Nゼロで埋められたデータを生成する場合、swap fileゼロで埋められたデータが必須かどうかはわかりません。swap fileこれはチュートリアルでは言及されていません。

ベストアンサー1

スワップファイルがすべてゼロである必要はありません。カーネルはどのブロックが使用中かを追跡します。

ただし、以下man mkswapを使用しないように警告することがありますfallocate

スワップファイルには脆弱性を含めないでください。ファイル生成の使用はcp(1)許可されません。また、fallocate(1)事前に割り当てられたファイル(XFSやext4など)、または書き込み時にコピーファイルシステム(btrfsなど)をサポートするファイルシステムでは使用できません。そのような場合は、およびを使用することをお勧めします dd(1)。書き込み時にコピーファイルシステムにスワップファイルを追加する前に、説明をお読みください/dev/zeroswapon(8)

(この内容はマンページのすべてのバージョンに含まれていない可能性があります)

さらにswapon:

カーネルのスワップファイル実装は、ファイルシステムの助けを借りずにファイルに直接書き込むことができると予想します。これはfallocate(1)、XFSやext4などのファイルシステム、およびbtrfsなどの書き込み中にコピーファイルシステムから事前に割り当てられたファイル(たとえば)に問題があります。

マニュアルページの他のバージョンでは、次のように言います。

生成された事前割り当てファイルは、fallocate(1)ファイルシステムによっては脆弱なファイルとして解釈されることがあります。 Linux 4.18以降、XFSは事前に割り当てられたスワップファイルをサポートしています。

したがって、それを使用fallocateしてスワップファイルを生成できるかどうかは、カーネルとファイルシステムによって大きく異なります。

それに比べて単純なdd方が良いです。

おすすめ記事