As versões modernas do Ubuntu estão usando um arquivo de troca em vez de uma partição de troca por padrão.
Antes do kernel Linux 5.0 não era possível colocar um arquivo de troca em uma btrfs
partição, btrfs
o sistema de arquivos poderia ser danificado.
Agora os kernels suportam arquivos de troca em partições btrfs. Posso usar um arquivo de troca no Ubuntu instalado btrfs
e quais são os possíveis problemas?
É possível usar um arquivo de troca em
btrfs
, mas há algumas considerações que precisam ser observadas.btrfs
sistema de arquivos não permite criar instantâneos se houver um arquivo de troca de trabalho no subvolume. Isso significa que é altamente recomendável colocar um arquivo de troca em um subvolume separado.Vamos supor que a troca atual já está desativada,
/
está ligada/dev/sda1
e o Ubuntu está instalado/
no@
subvolume e/home
está no@home
subvolume.Monte
/dev/sda1
para/mnt
.Se você executar
ls /mnt
, verá@
,@home
e outros subvolumes que podem estar lá.Crie um novo
@swap
subvolume.Desmontar
/dev/sda1
de/mnt
Crie
/swap
o diretório onde planejamos montar o@swap
subvolume.Monte o
@swap
subvolume em/swap
.Crie o arquivo de troca.
Defina 600 permissões para o arquivo.
Desabilite o COW para este arquivo.
Defina o tamanho do arquivo de troca para 4G como exemplo.
Formate o arquivo de troca
Ative o arquivo de troca.
Agora a nova troca deve estar funcionando.
Você também precisa atualizar
/etc/fstab
para montar tudo isso na inicialização. Adicione lá duas linhas:O
UUID
é o seu/dev/sda1
.O arquivo de troca não pode ser localizado em um ataque btrfs de qualquer tipo.
Comentários e sugestões são bem-vindos.
Observe que, para sistemas/laptops modernos com SSDs NVME, você tem
/dev/nvme0n1p2
em vez de/dev/sda1
e deve ignorar /dev/nvme0n1p1 porque esse é o disco de inicialização efi que seu sistema operacional criou quando você o instalou.Além disso, deve ser recomendado adicionar duas opções de montagem 'defaults' e 'noatime'. Os padrões carregarão automaticamente as opções de montagem para a unidade (SSD, HDD). O Noatime impedirá que os arquivos sejam gravados se apenas forem abertos:
A resposta popular está correta, exceto que você não deve usar fallocate(1) para alocar espaço para o arquivo de troca. Ele pode criar 'buracos' no sistema de arquivos que são incompatíveis com o uso de arquivos de troca (swap precisa de 100% de espaço contíguo, pois um sistema de arquivos não é usado dentro do espaço de troca). Você deve usar 'dd if=/dev/zero ...' em vez disso. Veja a resposta neste tópico: fallocate vs dd para swapfile? As páginas de manual mkswap(8) e swapon(8) desencorajam explicitamente o uso de fallocate(1) para instanciar um arquivo de troca no sistema de arquivos.
Se sua partição estiver criptografada (LUKS), o ponto de montagem está ativado,
/dev/mapper
por exemplo:Para obter o
uuids
execute oblkid
comando:E, em seguida, substitua o
mapper
local pelo específicouuid