AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1206157
Accepted
Pilot6
Pilot6
Asked: 2020-01-28 11:11:29 +0800 CST2020-01-28 11:11:29 +0800 CST 2020-01-28 11:11:29 +0800 CST

Posso ter um arquivo de troca no btrfs?

  • 772

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 btrfspartição, btrfso 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 btrfse quais são os possíveis problemas?

btrfs swap
  • 4 4 respostas
  • 23158 Views

4 respostas

  • Voted
  1. Best Answer
    Pilot6
    2020-01-28T11:28:06+08:002020-01-28T11:28:06+08:00

    É possível usar um arquivo de troca em btrfs, mas há algumas considerações que precisam ser observadas.

    btrfssistema 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/sda1e o Ubuntu está instalado /no @subvolume e /homeestá no @homesubvolume.

    1. Monte /dev/sda1para /mnt.

       sudo mount /dev/sda1 /mnt
      

    Se você executar ls /mnt, verá @, @homee outros subvolumes que podem estar lá.

    1. Crie um novo @swapsubvolume.

       sudo btrfs sub create /mnt/@swap
      
    2. Desmontar /dev/sda1de/mnt

       sudo umount /mnt
      
    3. Crie /swapo diretório onde planejamos montar o @swapsubvolume.

       sudo mkdir /swap
      
    4. Monte o @swapsubvolume em /swap.

       sudo mount -o subvol=@swap /dev/sda1 /swap
      
    5. Crie o arquivo de troca.

       sudo touch /swap/swapfile
      
    6. Defina 600 permissões para o arquivo.

       sudo chmod 600 /swap/swapfile
      
    7. Desabilite o COW para este arquivo.

       sudo chattr +C /swap/swapfile
      
    8. Defina o tamanho do arquivo de troca para 4G como exemplo.

       sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=4096
      
    9. Formate o arquivo de troca

      sudo mkswap /swap/swapfile
      
    10. Ative o arquivo de troca.

      sudo swapon /swap/swapfile
      

    Agora a nova troca deve estar funcionando.

    Você também precisa atualizar /etc/fstabpara montar tudo isso na inicialização. Adicione lá duas linhas:

    UUID=XXXXXXXXXXXXXXX /swap btrfs subvol=@swap 0 0
    /swap/swapfile none swap sw 0 0
    

    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.

    • 18
  2. zilexa
    2020-12-11T07:52:08+08:002020-12-11T07:52:08+08:00

    Observe que, para sistemas/laptops modernos com SSDs NVME, você tem /dev/nvme0n1p2em vez de /dev/sda1e 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:

    UUID=XXXXXXXXXXXXXXX /swap btrfs defaults,noatime,subvol=@swap 0 0
    /swap/swapfile none swap sw 0 0
    
    • 2
  3. Krazy ForthreeD
    2021-04-20T17:51:34+08:002021-04-20T17:51:34+08:00

    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.

    • 1
  4. Jorge Mendes
    2021-07-26T00:48:01+08:002021-07-26T00:48:01+08:00

    Se sua partição estiver criptografada (LUKS), o ponto de montagem está ativado, /dev/mapperpor exemplo:

    /dev/mapper/nvme0n1p5_crypt /swap btrfs defaults,noatime,subvol=@swap 0 0
    /swap/swapfile none swap sw 0 0 here
    

    Para obter o uuidsexecute o blkidcomando:

    /dev/mapper/nvme0n1p5_crypt: UUID="06c8c73c-1cc4-477b-a687-6c21697d645d"   UUID_SUB="7f884b26-d76e-49db-9959-311fa2a5dd20" TYPE="btrfs"
    /dev/nvme0n1p1: UUID="8090a824-63fa-4087-a948-89cca1a369cd" TYPE="ext2" PARTUUID="887ff27b-01"
    /dev/nvme0n1p5: UUID="46405308-2ed1-40f3-a86b-906f1118970b" TYPE="crypto_LUKS" PARTUUID="887ff27b-05"
    

    E, em seguida, substitua o mapperlocal pelo específicouuid

    UUID=06c8c73c-1cc4-477b-a687-6c21697d645d /swap btrfs   defaults,noatime,subvol=@swap 0 0 
    /swap/swapfile none swap sw 0 0
    
    • 0

relate perguntas

  • Como esvaziar a troca se houver RAM livre?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve