Como alocar mais espaço para trocar e aumentar seu tamanho maior que Ram?

8

Situação: aumentar tamanho de swap ( /dev/sda3 ) maior que Ram (8 GB) quando HD 128 GB
Motivação: 8 GB de RAM é muito pouco; 30 GB de espaço livre no meu SSD; Eu quero transformar 20 GB para swap SSD
Características do sistema

  • Trocar não imutável / alterável. Não consigo encontrar nenhuma evidência porque /mnt/.swapfile deve ser imutável, então você não precisa alterar os atributos de arquivo do swapfile

    sudo lsattr /mnt/.swapfile 
    -------------e-- /mnt/.swapfile
    
  • Comando sudo fdisk -lu /dev/sda

    Disk /dev/sda: 113 GiB, 121332826112 bytes, 236978176 sectors 
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: 082F85CA-EE3E-479C-8244-858B196FA5BA
    
    Device         Start       End   Sectors   Size Type
    /dev/sda1       2048      4095      2048     1M BIOS boot
    /dev/sda2       4096 220323839 220319744 105.1G Linux filesystem
    /dev/sda3  220323840 236976127  16652288     8G Linux swap
    
  • Comando df -h

    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.9G     0  3.9G   0% /dev
    tmpfs           793M  9.4M  784M   2% /run
    /dev/sda2       104G   74G   25G  75% /
    tmpfs           3.9G   54M  3.9G   2% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    tmpfs           793M   64K  793M   1% /run/user/1000
    
  • Aloque mais espaço em disco para Trocar em /dev/sda3 .

Meu fluxo de trabalho malsucedido para a tarefa quando HD e Swap na mesma partição, /dev/sda3

masi@masi:~$ sudo -i

root@masi:~# swapoff /dev/sda3

root@masi:~# swapon
[blank]    

root@masi:~# dd if=/dev/zero of=/dev/sda3 bs=20480 count=1M
dd: error writing '/dev/sda3': No space left on device
416308+0 records in
416307+0 records out
8525971456 bytes (8.5 GB, 7.9 GiB) copied, 18.7633 s, 454 MB/s

root@masi:~# mkswap /dev/sda3
Setting up swapspace version 1, size = 8 GiB (8525967360 bytes)
no label, UUID=245cb42c-1d4e-4e21-b544-16b64af962d6

root@masi:~# swapon -p 99 /dev/sda3

root@masi:~# swapon
NAME       TYPE      SIZE USED PRIO
/dev/sda3  partition   8G   0B   99

root@masi:~# vi /etc/fstab 
...

HD e Swap na mesma partição - Fluxo de trabalho atual [Ijaz, cas, FarazX]

Fusão. Use fallocate no início em vez de dd porque não há necessidade de colocar zeros

masi@masi:~$ sudo fallocate -l 20G /mnt/.swapfile

masi@masi:~$ sudo mkswap /mnt/.swapfile 
Setting up swapspace version 1, size = 20 GiB (21474832384 bytes)
no label, UUID=45df9e48-1760-47e8-84d7-7a14f56bbd72

masi@masi:~$ sudo swapon /mnt/.swapfile
swapon: /mnt/.swapfile: insecure permissions 0644, 0600 suggested.

masi@masi:~$ sudo chmod 600 /mnt/.swapfile

masi@masi:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7925        1494         175         196        6255        5892
Swap:         28610           0       28610

Adicione a seguinte linha no seu /etc/fstab , que é melhor do que adicionar a coisa aos seus runlevels ( /etc/rc.local ), onde eu coloco o swapfile no /mnt/.swapfile para manter a filosofia Linux / Unix e manter a integridade do meu scripts de backup do sistema; Se estiver trocando para um SSD, use a opção discard para que os blocos sejam aparados a cada reinicialização, portanto, não sw

# http://unix.stackexchange.com/a/298212/16920
# http://unix.stackexchange.com/a/298543/16920

# If swap is on SSD, trim blocks each time at startup.
/mnt/.swapfile  none    swap    defaults,discard      0        0

# If swap on External HDD, just use sw.
#/media/masi/SamiWeek/.swapfile  none    swap    sw      0        0

Fontes

  1. Como aumentar o espaço de troca? link Discussão geral sobre o aumento do espaço de troca para iniciantes.
  2. Linux Partition HOWTO para HDDs, não SSDs: 4. Requisitos de particionamento. link Portanto, não coloque seu swap em faixas externas em SSDs, mas use defaults,discard options para aparar seus blocos como proposto por @cas.

Sistema: Linux Ubuntu 16.04 64 bit
Kernel do Linux: 4,6
Módulos Linux: wl
Equipamento: Macbook Air 2013-mid
Ram: 8 GB
SSD: 128 GB

    
por Léo Léopold Hertz 준영 23.07.2016 / 11:33

3 respostas

3

Você só quer aumentar o tamanho do swap em seu sistema usando o espaço de sda2 . Seu sda2

/dev/sda2       104G   74G   25G  75%  / 

Você pode adicionar espaço de troca adicional ao seu sistema usando o arquivo de permuta criado em / que utilizará seu sda2 . Apenas faça:

dd if=/dev/zero of=/swapfile bs=20480 count=1M

e faça:

sudo mkswap /swapfile  
sudo swapon /swapfile 

e verifique se o espaço de troca aumentará nesse valor usando free -m

e sim, para ativá-lo no momento da inicialização, adicione a entrada em /etc/fstab

 /swapfile     none     swap     sw     0     0
    
por 25.07.2016 / 19:19
3
  1. Gerenciamento de memória

    • Para exibir o resumo de uso de troca pelo seu dispositivo:

      $ swapon -s
      
    • Para exibir a quantidade de sua memória física e swap gratuita e usada:

      $ free -h
      
    • Para pré-alocar espaço para / swapfile, você pode usar a linha abaixo:

      $ fallocate -l 20G /swapfile
      % OR
      $ dd if=/dev/zero of=/swapfile bs=20480 count=1M
      
  2. Mude a permissão e crie / ative a troca

    $ chmod 600 /swapfile
    
    $ mkswap /swapfile
    
    $ swapon /swapfile
    

    Você também pode melhorar a segurança do seu arquivo, alterando o arquivo attributes usando chattr . Eu recomendo que você leia sua página de manual, ou leia este guia no site da Tecmint .

  3. Verifique se está ativado exibindo a saída do comando cat /proc/swaps , use o comando free ou

    $ swapon -s
    
  4. Para ativá-lo no momento da inicialização , edite /etc/fstab (informações estáticas sobre o sistema de arquivos) para incluir o seguinte, onde os campos são fs_spec , fs_file , fs_vfstype , fs_mntops , fs_freq e fs_passno , sobre as quais você pode ler por man 5 fstab :

    $ vi /etc/fstab
    
    /swapfile     none     swap     defaults,discard     0     0
    
    • No parâmetro fourt fs_mntops , não use apenas sw ao trocar para um SSD, mas defaults,discard de forma que os blocos de memória sejam aparados a cada inicialização, veja a resposta aqui sobre Como fazer a interceptação de erro e o Swapoff se houver erro / aviso? A opção discard definitivamente funciona em partições.
por 25.07.2016 / 20:42
2

Você pergunta: "Como alocar mais espaço para trocar e aumentar seu tamanho maior que o Ram?", não diz nada sobre mudar a maneira como seu sistema é configurado.

Seu fdisk e saída livre nos dizem:

  • Você tem uma partição (/ dev / sda3) dedicada à troca. Se você acabou de redimensionar essa partição você não deve precisar mudar nada em seu sistema para usar o espaço extra. (/ etc / fstab).
  • Você tem uma partição (/ dev / sda2) que tem o sistema operacional nela. este partição tem 26G de espaço livre. Se você diminuir essa partição por 20G O SO terá 5G para crescer e usar.

A partição de troca não é uma partição estendida, o que torna um pouco mais fácil aumentar o tamanho.

Ferramentas necessárias:

  • SO inicializável com o gparted

Procure aqui um local da última versão gratuita de Parted Magic

Instrução para redimensionar partições com o gparted

  1. inicialize em outro sistema operacional que tenha a ferramenta gparted
  2. no gparted; Redimensionar partição do SO (/ dev / sda2). Encolher em quantidade para doe para trocar espaço. Isso pode levar muito tempo, pois todos os dados que estão no espaço sendo liberado precisarão ser movidos pelo gparted.
  3. no gparted; Redimensione a partição swap (/ dev / sda3). Mova e estenda para incluir todo o espaço livre.
  4. reinicialize no sistema operacional sda2.
  5. verifique se a partição de troca (/ dev / sda3) está sendo usada.

Lembre-se de que você está alterando seu disco e partições em um nível baixo e que quaisquer erros ou falhas podem danificar seus dados.

Faça o backup dos seus dados primeiro.

    
por 28.07.2016 / 15:34