Isso não é tanto uma resposta quanto uma série de dicas. Primeiro de tudo, esta página menciona que executar o comando dd
em uma partição NTFS pode danificar a partição. Não faço ideia do porquê e não faço ideia se é verdade mas achei que vale a pena mencionar:
if /mnt/home is an NTFS drive, do not use dd (writing to your NTFS drive can corrupt the file system)
Quaisquer que sejam os detalhes, a criação de um arquivo de permuta em uma partição NTFS parece realmente problemática:
$ 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.
O mesmo processo executado em uma partição ext4 não causa erros e parece funcionar perfeitamente, indicando que o problema é a unidade NTFS. Além disso, mover o arquivo que funcionou da partição ext4 para o NTFS e executar swapon
fornece o mesmo erro "file has holes". Então, realmente não é o arquivo, mas a partição.
Isso pode ser um problema causado pela fragmentação da minha unidade, mas por um usuário em este fórum postou que ele obtém o mesmo problema em uma unidade recém-formatada que contém apenas 2 arquivos, então parece que a fragmentação não é um problema.
Por um lado, o ntfs-3G
(que é o módulo usado pelo kernel para montar e acessar partições NTFS) FAQ afirma:
Can I use swap file safely, deadlock free on NTFS?
Yes, this is possible if it’s properly setup. Below is the example how to create, initialize and turn on a 2 GB swap file safely, deadlock free:
dd if=/dev/zero of=swapfile bs=1M count=2000 mkswap swapfile swapon swapfile
You must turn off the swap file with ‘swapoff’ before you would be able to unmount NTFS. Please also note that other solutions, for example using swap on a loop device, are not safe and can cause deadlock!
Então eles parecem pensar que deveria funcionar. Por outro lado, quando executo os comandos acima, recebo o mesmo erro "file has holes".
Portanto, embora não consiga encontrar nenhuma informação conclusiva, não posso fazê-lo funcionar em NTFS. Eu encontrei vários posts que sugerem o uso de uma partição NTFS para um swapfile é uma má idéia ou que descrevem vários problemas que os usuários tiveram ao tentar o mesmo. Em conclusão, se você tem alguma maneira de evitar o NTFS, provavelmente é uma boa idéia.