Como altero a partição swap no Linux?

12

Como altero a partição swap no Linux? Se atualmente eu uso / dev / hda3 para swap, e gostaria de usar / dev / hda4, quais etapas devo seguir?

Martin Bøgelund
fonte
1
provavelmente vale a pena criar uma partição lógica / dev / hda5 na partição primária / dev / hda4 e usá-la para troca. Desta forma, você não tem que gastar todo o / dev / hda4 para swap, e pode criar outras partições lógicas nele
dmityugov

Respostas:

25

Faça como root:

swapoff /dev/hda3
mkswap /dev/hda4
swapon /dev/hda4

e edite a entrada de swap no / etc / fstab

mateusza
fonte
13

Se você tiver uma quantidade razoável de RAM e seus aplicativos não consumirem muita memória, considere usar um arquivo separado como troca, em vez de toda a partição. Dessa forma, você pode selecionar facilmente a quantidade de espaço de troca usada, adicionando mais arquivos de troca ou redimensionando os existentes.

Digamos que seu arquivo de swap residirá no diretório raiz como /swapfilee terá tamanho 512 MB. Para criá-lo, emita comandos como root:

$ dd if=/dev/zero of=/swapfile bs=1M count=512
$ mkswap /swapfile
$ swapon /swapfile

Para usá-lo automaticamente após a reinicialização, insira /etc/fstab:

/swapfile    none    swap    defaults    0 0

Adicionar mais arquivos de troca é tão simples quanto criar mais arquivos ( /swapfile1, /swapfileX), formatá-los usando mkswape ativando o uso swapon. Se você quiser desativar um arquivo de swap, você pode usar o comando swapoff /swapfile.

Quanto ao desempenho entre a versão do disco e do arquivo, não é tão diferente assim. Você pode até usar o swapfile como disco de hibernação em laptops (embora eu sempre use partições separadas para isso).

drybjed
fonte
swapfile não é uma boa ideia, porque ext4 é super SLOW un SSD para procedimentos de gravação freqüentes. É por isso que, por padrão, o Linux swap tem um sistema de arquivos diferente. A maneira correta seria redimensionar a tabela de partição para criar uma partição de troca maior.
Evalds Urtans 01/07/19
9

No vôo:

sudo swapoff /dev/hda3
sudo mkswap /dev/hda4
sudo swapon /dev/hda4

Para o bootime, depois de executar o mkswap, edite o arquivo / etc / fstab e altere a linha / dev / hda3 de acordo.

Kyle Brandt
fonte
4

Você precisará formatar / dev / hda4 como swap, o que acho que exclui as tabelas do sistema de arquivos, edite o arquivo / etc / fstab e aponte a troca para / dev / hda4. Em seguida, reinicie e você deve ser bom. Escusado será dizer que você perderá todos os dados em / dev / hda4. Você pode usar o gparted como uma GUI para a formatação.

skitzot33
fonte
1
Você não precisa reiniciar o Linux 2.6.x depois de formatar uma partição, nem mesmo depois de alterar a tabela de partições do disco.
drybjed
Bom ponto, mas eu estava seguindo a filosofia do KISS.
Skitzot33 #
@ skitzot33 A inicialização não é mais simples que a inicialização ?
glglgl
2

A solução do mateusza está ok, mas o estado pode não ser recuperado ao se recuperar da hibernação. Algumas operações adicionais são necessárias:

# prepare your partitions
swapoff /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

# find swap uuid
sudo blkid | grep swap
# OR
sudo echo ls -l /dev/disk/by-uuid | grep sda3 |  cut -d' '  -f8 >> /etc/fstab

# edit swap entry in /etc/fstab
gksu gedit /etc/fstab

# edit the uuid line in /etc/initramfs-tools/conf.d/resume
gksu gedit /etc/initramfs-tools/conf.d/resume

# In terminal, execute this command
sudo update-initramfs -u

você pode testar sua hibernação aqui, se não funcionar:

# check your /etc/default/grub file
gksu gedit /etc/default/grub

# Depending on your version : if a line looks like
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<old_swap_partition_uuid>"
# then modify it accordingly; otherwise that's all, you're done

# execute in terminal
sudo update-grub

retirado do askubuntu

fkk
fonte