Adicionando um novo arquivo de troca. Como editar o fstab para ativar a troca após a reinicialização?

50

Excluí minha partição de swap existente devido a algum problema de particionamento. Agora não tenho um espaço de troca, por isso criei um arquivo de troca com:

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

Aqui está depois swapon -s:

/root/myswapfile    file    1048572    1320    -1

Agora eu quero editar o meu /etc/fstabpara ativar o arquivo de troca após a reinicialização.

jojo
fonte
1
A troca de SSD é perigosa, pois as unidades SSD têm baixa duração em operações de gravação intensas. Isso significa que você pode realmente consumir sua preciosa e cara unidade SSD assim.
2
Observe que bs=1G count=1daria o mesmo resultado, consulte a página de manual do dd para as outras unidades.
LiveWireBT

Respostas:

79

Estas são as etapas para criar uma troca em um arquivo:

Crie um arquivo grande, por exemplo, com

sudo mkdir -p /var/cache/swap/   # create a directory that holds the swap file
sudo dd if=/dev/zero of=/var/cache/swap/myswap bs=1M count=4096 # for 4 GByte

Obviamente, qualquer outro método para criar um arquivo de tamanho definido serviria.

Anunciar a troca no sistema

sudo chmod 0600 /var/cache/swap/myswap # only root should have access
sudo mkswap /var/cache/swap/myswap # format as swap
sudo swapon /var/cache/swap/myswap # announce to system

Insira a seguinte linha /etc/fstabpara troca a partir da próxima inicialização:

/var/cache/swap/myswap    none    swap    sw    0   0

Nota: Caso você possua os arquivos do sistema em um SSD, considere manter o arquivo de troca em um local no disco rígido.

Observe também: você não pode usar um arquivo de troca para hibernação (consulte Ubuntu SwapFaq )

Nota adicional para Ubuntu> = 17.04: Uma troca no arquivo /swapfileé criada por padrão em uma nova instalação (quando nenhuma partição de troca estava presente). Podemos criar manualmente uma partição de swap posteriormente, se preferirmos.

Caso desejemos substituir uma troca existente (por exemplo, partição) por outra troca (por exemplo, no arquivo), precisamos remover a troca antiga por

sudo swapoff -a  # for all

Em seguida, remova a entrada de troca /etc/fstabou substitua-a pela nova troca, respectivamente.

Takkat
fonte
1
Por que você não quer sua troca no SSD também?
Joseph Garvin
1
@ Joseph Garvin: como o desgaste provavelmente não é um problema, você ainda perde muito espaço em disco (caro) ao trocar de SSD. Dependendo da RAM do sistema, talvez você não precise trocar com muita frequência. askubuntu.com/questions/178661/do-i-need-swap-with-new-ssd
Takkat
1
Obrigado, como você verificaria /etc/fstabse montaria o arquivo de troca corretamente sem reiniciar? Eu não consigo ver o arquivo de troca, se o façomount -a && mount
Don Giulio
2
@ user72464 Para mostrar todos os swaps usados, podemos emitir swapon -s. A troca disponível também é exibida em free -h.
Takkat 16/10/2015
1
@ user72464 Simple .. domount -a
heemayl