Pesquisa de site

Como mover o diretório inicial para uma nova partição ou disco no Linux


Em qualquer sistema Linux, um dos diretórios que certamente crescerá em tamanho será o diretório /home. Isso ocorre porque os diretórios das contas do sistema (usuários) residirão em /home, exceto a conta root – aqui os usuários armazenarão continuamente documentos e outros arquivos.

Outro diretório importante com o mesmo comportamento é /var, ele contém arquivos de log cujo tamanho aumentará gradualmente à medida que o sistema continua a funcionar, como arquivos de log, arquivos da web, arquivos de spool de impressão etc.

Quando esses diretórios ficam cheios, isso pode causar problemas críticos no sistema de arquivos raiz, resultando em falha na inicialização do sistema ou em alguns outros problemas relacionados. No entanto, às vezes você só pode perceber isso depois de instalar seu sistema e configurar todos os diretórios no sistema de arquivos/partição raiz.

Leitura sugerida: Estrutura de diretórios do Linux e caminhos de arquivos importantes explicados

Neste guia, mostraremos como mover o diretório inicial para uma partição dedicada, possivelmente em um novo disco de armazenamento no Linux.

Instalando e particionando um novo disco rígido no Linux

Antes de prosseguirmos, explicaremos brevemente como adicionar um novo disco rígido a um servidor Linux existente.

Nota: Se você já possui uma partição pronta para a operação, vá para a seção que explica as etapas para mover o diretório /home em um partição própria abaixo.

Presumiremos que você anexou o novo disco ao sistema. Num disco rígido, o número de partições a serem criadas, bem como a tabela de partições é normalmente determinada pelo tipo de etiqueta do disco e os primeiros bytes de espaço definirão o MBR (Master Boot Record ) que armazena a tabela de partições, bem como o carregador de boot (para discos inicializáveis).

Embora existam muitos tipos de rótulos, o Linux aceita apenas dois: MSDOS MBR (516 bytes de tamanho) ou GPT (tabela de partição GUID) MBR.

Vamos supor também que o novo disco rígido (/dev/sdb de tamanho 270 GB usado para o propósito deste guia, você provavelmente precisará de uma capacidade maior em um servidor para grande base de usuários.

Primeiro você precisa definir o tipo de rótulo do disco usando fdisk ou parted; usamos o nome do rótulo GPT neste exemplo.

parted /dev/sdb mklabel gpt

Nota: fdisk suporta apenas MSDOS MBR por enquanto e parted suporta ambos os rótulos.

Agora crie a primeira partição (/dev/sdb1) com tamanho 106GB. Reservamos 1024 MB de espaço para o MBR.

parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

Explicando o comando acima:

  • a – opção para especificar o alinhamento da partição.
  • mkpart – subcomando para criar a partição.
  • primária – define o tipo de partição como primária no disco rígido (outros valores são lógicos ou estendidos).
  • 1074MB – início da partição.
  • 107GB – fim da partição.

Agora verifique o espaço livre no disco da seguinte maneira.

parted /dev/sdb print free

Criaremos outra partição (/dev/sdb2) com tamanho 154GB.

parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

A seguir, vamos definir o tipo de sistema de arquivos em cada partição.

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

Para visualizar todos os dispositivos de armazenamento conectados ao sistema, digite.

parted -l

Movendo o diretório inicial para uma partição dedicada

Agora adicionamos o novo disco e criamos a partição necessária; agora é hora de mover a pasta home para uma das partições. Para usar um sistema de arquivos, ele deve ser montado no sistema de arquivos raiz em um ponto de montagem: o diretório de destino, como /home.

Primeiro liste o uso do sistema de arquivos usando o comando df no sistema.

df -l

Começaremos criando um novo diretório /srv/home onde podemos montar /dev/sdb1 por enquanto.

mkdir -p /srv/home
mount /dev/sdb1 /srv/home 

Em seguida, mova o conteúdo de /home para /srv/home (para que eles sejam praticamente armazenados em /dev/sdb1) usando o comando rsync ou comando cp.

rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/

Depois disso encontraremos a diferença entre os dois diretórios usando a ferramenta diff, se tudo estiver bem, passe para o próximo passo.

diff -r /home /srv/home

Depois, exclua todo o conteúdo antigo em /home da seguinte maneira.

rm -rf /home/*

Em seguida, desmonte /srv/home.

umount /srv/home

Finalmente, temos que montar o sistema de arquivos /dev/sdb1 em /home enquanto isso.

mount /dev/sdb1 /home
ls -l /home

As alterações acima durarão apenas durante a inicialização atual. Adicione a linha abaixo em /etc/fstab para tornar as alterações permanentes.

Use o seguinte comando para obter a partição UUID.

blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Depois de saber o UUID da partição, abra o arquivo /etc/fstab e adicione a seguinte linha.

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

Explicando o campo na linha acima:

  • UUID – especifica o dispositivo de bloco, você pode alternativamente usar o arquivo de dispositivo /dev/sdb1.
  • /home – este é o ponto de montagem.
  • etx4 – descreve o tipo de sistema de arquivos no dispositivo/partição.
  • defaults – opções de montagem (aqui este valor significa rw, suid, dev, exec, auto, nouser e async).
  • 0 – usado pela ferramenta de despejo, 0 significa não despejar se o sistema de arquivos não estiver presente.
  • 2 – usado pela ferramenta fsck para descobrir a ordem de verificação do sistema de arquivos, este valor significa verificar este dispositivo após o sistema de arquivos raiz.

Salve o arquivo e reinicie o sistema.

Você pode executar o seguinte comando para ver se o diretório /home foi movido com sucesso para uma partição dedicada.

df -hl

É isso por enquanto! Para entender mais sobre o sistema de arquivos Linux, leia estes guias relacionados ao gerenciamento de sistemas de arquivos no Linux.

  1. Como excluir contas de usuário com diretório inicial no Linux
  2. O que é Ext2, Ext3 e Ext4 e como criar e converter sistemas de arquivos Linux
  3. 7 maneiras de determinar o tipo de sistema de arquivos no Linux (Ext2, Ext3 ou Ext4)
  4. Como montar um sistema de arquivos ou diretório Linux remoto usando SSHFS sobre SSH

Neste guia, explicamos como mover o diretório /home para uma partição dedicada no Linux. Você pode compartilhar qualquer opinião sobre este artigo por meio do formulário de comentários abaixo.