Como adiciono swap após a instalação do sistema?

153

Não criei uma partição de swap durante a instalação do Ubuntu. Mais tarde, liberei espaço e fiz uma partição de troca. Agora, após cada inicialização, estou abrindo manualmente gpartedpara clicar com o botão direito do mouse na partição swap para ativar a opção 'swapon'.

Como posso ativar automaticamente a partição swap na inicialização?

Além disso, se eu não tivesse criado a partição swap, quais são minhas outras opções?

xiota
fonte

Respostas:

132

Você precisa editar /etc/fstabe adicionar a nova partição de troca.

sudo nano /etc/fstab

Você precisa adicionar uma linha que se parece com

UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none   swap    sw      0       0

e você obtém o UUID usando o comando

sudo blkid /dev/sda3

(substitua /dev/sda3pelo nome do dispositivo apropriado).

Relacionado:

user4124
fonte
Precisa de ajuda para / etc / fstan i ma obtenção de saída: - bash: / etc / fstab: Permissão negada
Ashu_FalcoN
Use sudo gedit / etc / fstab
3
Para encontrar o nome do dispositivo apropriado: sudo fdisk -l(em: askubuntu.com/questions/182446/… ) e procure por Tipo: Linux swap.
NumesSanguis
1
sudo blkid /dev/sda4não imprime nada para mim (o sda4 é uma partição recém-criada com o código 82h, o fdisk diz que é a partição "Linux swap / Solaris").
Egor Skriptunoff
1
@ elvis.dukaj é perfeitamente bom também usar o nome do dispositivo. Eles basicamente expressam duas coisas diferentes. Uma diz que usa o volume exatamente com esse UUID (algo que mudará com outra mkswapexecução) e a outra diz que usa a partição primária número 3 do disco /dev/sda. Alguns preferem UUIDs porque, mesmo que a atribuição de nomes de dispositivos seja alterada, os UUIDs permanecerão os mesmos. É por isso que a diferença importa. Mas se você tiver certeza de que não reparticionará a unidade, /dev/sda3deve ser igualmente seguro de usar.
0xC0000022L
106

Para criar uma partição de swap após a instalação, crie uma partição vazia. Não deve ter orifícios. Você pode formatar esta partição com:

sudo mkswap /dev/sdX

substituindo /dev/sdXpor sua partição. Monte esta partição como swap com

sudo swapon -U UUID

onde UUID é o seu /dev/sdXcomo lido a partir disso:

blkid /dev/sdX

Vincule seu novo swap /etc/fstabadicionando esta linha:

UUID=xxx    none    swap    sw      0   0

Se você quiser usar seu swap para hibernar, precisará atualizar o UUID /etc/initramfs-tools/conf.d/resumecom este conteúdo RESUME=UUID=xxx. Não esqueça $ sudo update-initramfs -u.

Para concluir: também é possível criar um arquivo de troca se você não tiver uma partição sobressalente. Esta resposta fornece uma idéia de como criar um arquivo de troca e ativá-lo na inicialização.

Takkat
fonte
A partir de agora, eu tenho um SSD com duas partições, mas gostaria de criar uma terceira. Se eu tenho uma partição ext4 primária que contém o sistema operacional e meus arquivos, posso usá-la para remover 2 GB dela em uma nova partição? Essa partição primária possui espaço livre mais que suficiente, portanto isso não deve ser um problema.
Dustin
2
Procure gpartedredimensionar sua partição.
precisa saber é o seguinte
54

Caso você não queira ou não tenha certeza de como criar uma partição de troca, é possível criar um arquivo de troca que funcionará da mesma maneira que a partição. Aqui estão as etapas (usando o terminal):

  1. Crie um arquivo vazio (1K * 4M = 4 GiB).

    sudo mkdir -v /var/cache/swap
    cd /var/cache/swap
    sudo dd if=/dev/zero of=swapfile bs=1K count=4M
    sudo chmod 600 swapfile
    
  2. Converta o arquivo recém-criado em um arquivo de espaço de troca.

    sudo mkswap swapfile
    
  3. Habilite o arquivo para paginação e troca.

    sudo swapon swapfile
    

    Verifique por: swapon -sou top:

    top -bn1 | grep -i swap
    

    Deve exibir linhas como: KiB Swap: 4194300 total, 4194300 free

    Para desativar, use o sudo swapoff swapfilecomando

  4. Adicione-o ao fstabarquivo para torná-lo persistente na próxima inicialização do sistema.

    echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    
  5. Teste novamente o arquivo de troca na inicialização:

    sudo swapoff swapfile
    sudo swapon -va
    

    Nota: Os comandos acima verificam novamente a sintaxe do fstabarquivo, caso contrário, o Linux não poderá ser inicializado corretamente.

kenorb
fonte
13
Obrigado pela única resposta que usa um arquivo de troca e não uma partição de troca. Nesse caso, não consegui criar uma partição. Os comandos funcionaram muito bem.
Sarel Botha
2
Para aqueles que precisam de espaço de troca de tamanho maior, aumente a contagem = 4M, para XM, para espaço de troca X GiB. Caso alguém perdesse.
Saurabheights
Não tenho certeza sobre a etapa 5. Por que desativar a troca para testar?
Raffi Khatchadourian
@RaffiKhatchadourian O novo teste no final ajuda a verificar novamente a sintaxe do fstabarquivo (em caso de erro de digitação); caso contrário, o Linux pode não inicializar corretamente, causando grandes problemas de inicialização, especialmente em servidores remotos.
kenorb
1
Ah eu entendo agora. Você precisa fazer isso antes de reiniciar. Fui surpreendido ao iniciar.
Raffi Khatchadourian
13

Existe uma maneira gráfica de fazer isso usando o gparted.

Execute o Gparted com:

sudo gparted

Se você não o instala, pode instalá-lo usando

sudo apt-get install gparted

Depois que o gparted estiver em execução:

  1. Aloque a partição como faria clicando com o botão direito do mouse em qualquer bloco não alocado e clicando em new
  2. Formate a partição como linux-swap
  3. Clique com o botão direito do mouse na partição e clique emswapon

Deve haver um ícone de chave ao lado do nome da sua partição quando terminar

Charles V
fonte
de longe a resposta mais simples
Shobi
1
Para torná-lo permanente, você ainda precisa editar o arquivo fstab como na resposta de @ user4124 #
Madura Pradeep
1
A pergunta já diz que eles fazem isso.
Chai T. Rex
1
Isso não responde à pergunta.
mook765
@ mook765, A pergunta é "Como adicionar swap após a instalação do sistema?". Isso responde perfeitamente a essa pergunta.
Tayler
3

do linux.com basta criar um arquivo de permuta, pois isso é mais flexível e você pode ajustar dinamicamente quantos e quantos armazenamentos de permuta grandes você possui. Isso também permite que você mova a partição swap do disco do sistema, tornando o sistema mais rápido. Além disso, se você usar vários espaços de troca, ajuste sua prioridade de uso para o mesmo valor, para que round-robin seja usado para escrever neles, permitindo que você obtenha ainda mais melhorias na velocidade.

ps eu usaria o UUID em vez do nome do dispositivo, porque é facilmente possível alterar a ordem do dispositivo se, por acidente, você deixar o armazenamento USB no slot USB e simplesmente remover e conectar os cabos sata - você não precisa se preocupar muito com o drive conectado Onde.

Osis
fonte
Essa foi a resposta mais útil, porque não requer a repartição da unidade. Pena que o Ubuntu não cria swap por padrão quando você o instala em uma nova máquina!
Ernie
2

Você precisa ter um sistema de arquivos swap definido em / etc / fstab. Deve conter uma linha semelhante a

UUID=67682d1b-a1d8-4377-a3dd-67340c141619 none            swap    sw              0       0

Claro que você precisa substituir o valor de UUID pelo identificador do seu dispositivo.

Adam Byrtek
fonte
Como posso conseguir?
3
Você pode usar o nome do dispositivo, como / dev / sda1 (sem o UUID).
Adam Byrtek
2

(substitua o "x" no sdax pelo número da partição swap, por exemplo: sda5)

substitua "xxx" pelo número UUID, por exemplo: 67682d1b-a1d8-4377-a3dd-67340c141619)


su (dê a senha para obter permissão de root)

blkid / dev / sdax (obter UUID) mkswap / dev / sdax (partição de troca de formato) swapon -U xxx

nano / etc / fstab (editar fstab) UUID = xxx nenhum swap sw 0 0 (digite e salve este texto para tornar o swap permanente) (depois feche o fsantab)


nano /etc/initramfs-tools/conf.d/resume (crie o arquivo "resume" e salve este texto para usar o hibernate / resume) RESUME = UUID = xxx (ctrl + x para fechar o nano) -> (y para salvar)

reiniciar a máquina

faça o login e agora você pode testar a hibernação / retomar

wmameer
fonte
2

Este é um tutorial abrangente sobre como fazer um Ram Drive para Ubuntu. Infelizmente .. as capturas de tela não aparecem neste modo através de recortar e colar .. Mais tarde, adicionarei, mas elas não são necessárias.

A primeira coisa que você precisa fazer é criar espaço para o seu drive ram. Eu tenho um sistema de inicialização dupla com apenas um disco rígido de 32GB. Meu Ubuntu está realmente instalado em um cartão SD (sim, uma instalação real e não uma coisa do Live Casper). Minha troca também estava no SD e pode se desgastar rapidamente. Procurei como alterar a troca e encontrei este artigo e não gostei das respostas, então fiz um tutorial enquanto fazia a alteração.

Se você simplesmente deseja aumentar ou diminuir sua partição de Troca, você só precisa aumentar ou diminuir a partição através do seu gerenciador de partições favorito. O Ubuntu já sabe para onde ir e é independente do tamanho. Se você deseja alterar o local ou fazer uma nova troca, continue a ler. A primeira coisa que você precisará fazer é reduzir o disco rígido para fornecer espaço para uma troca. Se você está encolhendo um disco com o sistema Windows, é melhor usar o Windows para encolher o disco (ele conhece suas próprias coisas). Se você estiver em um ubuntu puro, tente redimensionar usando um Ubuntu USB ativo.

Instruções de redimensionamento do Windows:

  1. Faça backup do seu sistema e desfragmentar sua unidade.
  2. Clique com o botão direito na barra de início.
  3. Selecione Gerenciamento de disco
  4. Clique com o botão direito do mouse na UNIDADE CORRETA
  5. Selecione Encolher.
  6. Digite a quantidade correta.

Se você está no Ubuntu. Certifique-se de usar as ferramentas do Ubuntu. Para finalizar a alocação, usarei um Live USB inicializável do Ubuntu, que inclui o GParted. Um Live USB é a melhor maneira de usar o Gparted por qualquer motivo, e você deve ter um USB na sua primeira instalação ou fazer um para mantê-lo à mão.

Digitar em 2000 não era permitido, porque não havia espaço suficiente para isso, mesmo que eu tivesse "desfragmentado" a unidade (não acredito que o Windows tenha desfragmentado). Com algumas experiências, eu recebi 1000. Depois tentei 1000 novamente e funcionou. Eu deveria agradecer mais ao meu professor de matemática da escola primária do que aos programadores do MS Windows. Isso me deixou com 1,95 GB, o que é próximo o suficiente para a matemática da minha escola primária.

Formate a partição

Agora estou pronto para o gparted formatar esse espaço como uma unidade de troca adequada. Se você estiver no Windows e alternando entre o Ubuntu e o Windows, certifique-se de manter a tecla Shift pressionada ao clicar em "Ligar" e "Desligar". Isso é muito importante, especialmente quando você está mexendo com os detalhes da unidade "C" em outro sistema operacional. Se você estiver inicializando duas vezes, já deve saber que o Windows é encerrado de forma falsa em circunstâncias normais. Algumas pessoas desativaram a "Inicialização rápida". Não tenho essa opção no meu sistema (Windows 10) e devo usar a tecla Shift graças ao meu amigo Google. Se você inicializar com um USB ativo e não conseguir montar a unidade "C" (clicando nela), não desligou completamente. Recarregue as janelas e desligue novamente usando a tecla Shift.

Agora você está no Ubuntu Live Mode e leia abaixo:

Se você é um Ubuntu puro e não encolheu no Windows. Você usará a opção Redimensionar em gParted. Se você já encolheu sua unidade, não execute a etapa de redimensionamento. Você pode digitar GParted na barra Dash e obter o aplicativo rapidamente. Clique com o botão direito do mouse na unidade que deseja redimensionar.

Agora vamos formatar o espaço não alocado como uma unidade particionada:

Antes:

Eu não sabia o que fazer, então olhei para o meu Ram Drive anterior no SD. É formatado como Linux Swap. Então, eu formatei minha nova alocação que também recentemente encolhi como Linux Swap.
Eu disse OK para a partição primária e o aviso de aviso e funcionou!

Formatando a partição

Após o formato e a nova partição

É uma coincidência que a antiga partição de swap no sdfoi chamada mmblk1p5e a nova também esteja p5à mmblk0frente. O seu pode ser p6 ou p7. Não se preocupe.

O mmblk0é o disco físico ep é a partição nesse disco físico. E mmblk01é outro disco físico, etc. (Esse é o meu SD). Antes que eu trabalhasse mais, abri o Windows novamente para garantir que o Windows ainda fosse inicializado. Você não precisa executar esta etapa se estiver com preguiça ou em uma máquina ubuntu pura. Se ele quebrasse o Windows, eu provavelmente limparia o Windows para fazer uma nova instalação do Ubuntu nesse disco (com uma troca também). Se eu quebrei meu sistema, não precisaria seguir mais nenhuma etapa porque posso alocar a troca na nova instalação. Tudo correu bem e o Windows foi inicializado. Agora você pode ver a nova partição no gerenciador de disco do Windows: (Clique com o botão direito do mouse na barra de início para obter o gerenciamento de disco)

Agora anexe o Swap à rotina de inicialização

As respostas anteriores a essa pergunta realmente tinham comandos swapon / off que não são necessários e podem ser complexos. Tudo o que você precisa fazer é encontrar o arquivo certo e apontar a troca para a nova partição. Novamente, se você redimensionou apenas a partição, não precisa fazer nada. Já está configurado para encontrar a partição. O tamanho é feito automaticamente.

Se você alterou a partição ou está fazendo uma primeira troca, leia abaixo:

Deixe-me dizer-lhe que, é a primeira vez que faço isso. Eu não sou um nerd do UNIX e prefiro ferramentas GUI. Estou aprendendo e cruzando os dedos enquanto faço este tutorial. Tudo correu bem até agora. Na raiz do seu sistema está um diretório chamado etc. Dentro desse diretório, há um arquivo chamado fstab(sem extensão). Você precisará editar este arquivo com direitos de superusuário "su". Antes de fazer isso, precisamos do UUID da nova Partição de Troca que você criou com o Live USB. Digite sudo su Agora você está no modo Superusuário. Você pode fazer qualquer coisa (incluindo limpar sua própria existência).

Digite blkide procure o uuid da nova partição de troca. Vi o meu abaixo e o destaquei:

Não preste atenção aos PartUID's.

Agora, as outras pessoas dirão tipo:

sudo gedit /etc/fstab

No entanto, eu tentei isso e ele não encontrou o arquivo certo (comentários, por favor).

Então, eu apenas digitei o gedit e abri-o da maneira GUI caprichosa (Sucesso!). Como eu já estava no modo Superusuário (sudo su), tenho permissão de root para fazer QUALQUER COISA no Gedit, incluindo salvar o arquivo depois de alterá-lo. Maravilhoso! Antes de alterar ou algo corrupto, salvar o fstab como backup chamado ... fstab.bak.

Faça o backup usando a maneira GUI caprichosa, escolha o familiar “Salvar como” e adicione "bak" ao arquivo fstab.bak. Verifique se existe uma extensão .bak. Os geeks dirão para você usar o comando terminal cp, mas nós, novatos, não conseguimos encontrar o arquivo no terminal para chegar tão longe em primeiro lugar. Assim como qualquer processador de texto, após o comando "salvar como", seu arquivo atual é agora o fstab.bak. Abra o real que você tinha antes e feche o arquivo de backup. Verifique novamente se você está editando o real fstabsem extensão. Se você editar o arquivo de backup, nada acontecerá quando você reiniciar, além de sua cópia de backup não será um backup real do original.

Meu fstabarquivo original é assim:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation
UUID=8fb20159-62e4-41a3-8550-791c7a66c328 none            swap    sw              0       0

A última linha (fiz o vermelho para você), tem as informações de troca originais usadas provavelmente no momento da inicialização. No comando blkid anterior, pude ver minha nova unidade UUID. Copie essa frase destacando o texto no terminal e clique com o botão direito do mouse e escolha copiar. Cole essa frase em outro editor separado, sem sudireitos como bloco de notas (você pode usar o Libre Office e os geeks nano). Esta etapa ajuda a obter o texto certo facilmente sem as aspas, para que você possa colar facilmente no fstabarquivo. Você deseja alterar este arquivo o menos possível.

New UUID
UUID="709ea197-e6fb-428b-9c1f-4b258452b10c"

Portanto, meu novo UUID está listado em vermelho acima. Tudo o que preciso fazer é mudar o uuid para a troca. Se você não possui uma unidade de troca, copie minha linha no arquivo fstab acima e adicione o uuid apropriado do comando blkid anterior. (escolha o uuid certo, por favor!)
Se esta é sua primeira linha de swap, inclua a linha completa com o material extra

none            swap    sw              0       0

Não se preocupe tanto com o espaçamento exato.

Meu novo arquivo se parece com o seguinte: Observe que também adicionei um comentário acima da minha alteração. O #caractere significa que é um comentário.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation  NOW changed to mmcblk0p5
UUID= 709ea197-e6fb-428b-9c1f-4b258452b10c  none            swap    sw              0       0

Não cole as aspas. Não tem espaços após o =sinal.

Salve seu arquivo.

Abra-o novamente, apenas para garantir que suas alterações foram salvas. Feche o gedit e o terminal com sudireitos perigosos que os nerds o repreenderão por fazer (porque é fácil trabalhar com ... e fácil destruir as coisas também).

Reinicie ee cruze os dedos!

Reiniciei e verifiquei se minha troca estava funcionando, olhando para o aplicativo de desempenho do sistema. Eu ainda tinha uma unidade de swap! Mas era o novo ou o antigo? Não foi possível verificar se minha nova unidade estava realmente carregada porque a nova unidade tem o mesmo tamanho da unidade antiga. Portanto, digitei: swapon(NÃO TIPO DE MAIS QUE SWAPON e ela listará apenas a troca para você: safe). Agora vejo minha nova unidade, mmblk0p5que corresponde ao trabalho de UUID em que fiz fstab. Minha unidade principal fina de 32GB entrou em vigor:


Isso conclui este tutorial de um usuário iniciante que nunca fez isso antes. Metade da razão pela qual fiz este tutorial foi para que os geeks que nos ajudam (e obrigado) possam ver como ajudar os usuários iniciantes. Suspeitei que as respostas anteriores fossem enganosas e decidi fazer um tutorial ao realizar meu trabalho ... Ao adivinhar pelas outras respostas que eram úteis, concluí que tudo o que precisava fazer era editar o fstabarquivo e reiniciar. Tudo funcionou bem e eu ainda tenho o Windows 10 e ainda não limpei meu sistema. Se alguém souber compartilhar um Windows pagefile.syscomo um arquivo de troca Linux, eu estaria interessado, pois são necessários 2 GB para isso no Windows e o espaço em hd é muito caro na minha máquina de 32 GB.

Bhikkhu Subhuti
fonte