でスワップファイルを作成しました
dd if=/dev/zero of=swap.img bs=1024k count=4k
mkswap swap.img
swapon swap.img
これは機能しますが、swapon
コマンドが完了するまでに数年(約10分)かかります。 /etc/fstab
でスワップファイルを有効にすると、起動プロセスが数分間停止します。
ブロックサイズを大きくすると(前に1024と1で試した)、ddコマンドの実行時間が短くなることに気づきました。これはswapon
にも影響しますか?
swapon
はスパースファイルを処理しますか?以前は正常に試しましたが、再起動後に「スワップファイルに穴があります」というメッセージが表示されたため、完全なファイルに切り替えました。
いくつかの詳細情報:
dd
の出力は
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB) copied, 73,9629 s, 58,1 MB/s
Mkswapの出力は
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=108b2e2d-e00a-40d0-8e28-c0b72003e63e
swapon
は出力を生成しませんでしたが、その後dmesg
は次のことを示しました。
Adding 4194272k swap on /Host/personal/swap.img. Priority:-1 extents:9 across:4335880k
妥当な時間でマウントするスワップファイル(2倍のサイズでもよい)を作成する方法はありますか?
これは一連のヒントほどの答えではありません。まず、 このページ は、NTFSパーティションでdd
コマンドを実行するとパーティションに害を及ぼす可能性があると述べています。理由も、それが真実かどうかもわかりませんが、言及する価値があると思いました。
/ mnt/homeがNTFSドライブの場合は、ddを使用しないでください(NTFSドライブに書き込むと、ファイルシステムが破損する可能性があります)
詳細がどうであれ、NTFSパーティションにスワップファイルを作成することは確かに問題があるようです。
$ dd if=/dev/zero of=swap.img bs=1024k count=4k
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 122.731 s, 35.0 MB/s
$ mkswap swap.img
$ Sudo swapon swap.img
swapon: /winblows/swap.img: skipping - it appears to have holes.
Ext4パーティションで実行されたまったく同じプロセスはエラーを発生せず、完全に機能しているように見えます。これは、問題がNTFSドライブにあることを示しています。さらに、動作したファイルをext4パーティションからNTFSパーティションに移動し、その上でswapon
を実行すると、同じ「ファイルに穴があります」というエラーが発生します。つまり、実際にはファイルではなくパーティションです。
これは私のドライブの断片化によって引き起こされた問題かもしれませんが、 このフォーラム のユーザーは、2つのファイルしか含まない新しくフォーマットされたドライブでも同じ問題が発生するため、断片化は問題。
一方では、ntfs-3G
(つまり、カーネルがNTFSパーティションをマウントしてアクセスするために使用するモジュール) [〜#〜] faq [〜#〜] 状態:
NTFSでデッドロックのないスワップファイルを安全に使用できますか?
はい、これは適切に設定されていれば可能です。以下は、デッドロックのない2 GBのスワップファイルを安全に作成、初期化、およびオンにする方法の例です。
dd if=/dev/zero of=swapfile bs=1M count=2000 mkswap swapfile swapon swapfile
NTFSをアンマウントする前に、「swapoff」を使用してスワップファイルをオフにする必要があります。ループデバイスでスワップを使用するなど、他のソリューションは安全ではなく、デッドロックを引き起こす可能性があることにも注意してください。
だから彼らはそれがうまくいくはずだと思っているようです。一方、上記のコマンドを実行すると、同じ「ファイルに穴があります」というエラーが発生します。
そのため、決定的な情報は見つかりませんが、NTFSで機能させることはできません。スワップファイルにNTFSパーティションを使用することは悪い考えであると示唆している、またはユーザーが同じことを試みたときに遭遇したさまざまな問題を説明しているさまざまな投稿を見つけました。結論として、NTFSを回避する方法がある場合は、おそらくそれは良い考えです。