Cria uma partição a partir de um diretório

4

Eu tenho um sistema Linux com apenas uma partição /dev/sda1 no disco /dev/sda com / ponto de montagem. É possível criar partições após a instalação?

por exemplo. crie /dev/sda2 com o ponto de montagem /home/

Como posso consegui-lo a partir da linha de comando? Como isso é implementado fisicamente? (Se depois eu remover /dev/sda1 , removerei meu diretório /home/ porque é um subdiretório de / ? Eu gostaria que essa partição sobrevivesse e eu poderia instalar um novo sistema algum dia.

    
por xralf 08.12.2011 / 12:33

2 respostas

7

Para criar uma nova partição em um sistema já particionado, você deve começar com um livecd, então use gparted para diminuir a partição sda1 (que eu suponho que ocupe todo o espaço do disco, exclua a troca), então crie uma nova partição no espaço livre criado.

Isso pode ser feito na linha de comando, mas GParted cuida de muitos detalhes que são difíceis de rastrear.

Depois de criar a partição, você deve mover o conteúdo de sua home atual na nova partição e, em seguida, modificar /etc/fstab para montar a nova partição em /home .

Aqui está uma maneira de realmente mover os arquivos de sda1 para sda2. Tudo isso é feito como root:

  1. Faça um backup. Você já tentou restaurar seus backups? Eles não são backups até que você faça. E certifique-se de que estejam armazenados em uma máquina diferente (que não esteja montada) ou em uma unidade externa que esteja desanexada atualmente . O ponto é que rm -Rf / não deve excluí-los. Nem mkfs na partição errada.
  2. Leia todas as etapas e certifique-se de compreendê-las completamente antes de começar. Exceto para fazer um backup. Você deve fazer isso imediatamente se ainda não o fez.
  3. Crie um sistema de arquivos em sda2. Algo como mkfs.ext4 /dev/sda2 (supondo que você esteja bem com o ext4, que é provavelmente o que você está usando atualmente no sda1).
  4. Monte sda2 em algum lugar que não seja / home. Por exemplo, você poderia mkdir /mnt/new_home e, em seguida, mount -text4 /dev/sda2 /mnt/new_home
  5. Verifique se nenhum usuário está logado, caso contrário, eles podem estar tentando alterar seus arquivos enquanto você faz isso.
  6. Copie os arquivos. Primeiro, confirme que / home não tem nada oculto (somente as entradas de ponto devem ser . e .. ) fazendo ls -l /home . Em caso afirmativo, é necessário copiar o arquivo separadamente ( * não corresponderá a eles e .* não fará o que você deseja): cp -a /home/* /mnt/new_home/
  7. Pare agora se houver algum erro ao copiar.
  8. Desmontar sda2: umount /mnt/new_home . Faça isso agora para garantir que você não destrua acidentalmente a arma errada.
  9. Este é o ponto sem retorno. %código%. Absolutamente, positivamente, não tente rm -Rf /home/* aqui. Além disso, certifique-se de não adicionar acidentalmente um espaço nesse caminho. Você deve ter pelo menos um pouco de medo ao digitar este comando, é um comando assustador, e você deve verificar se você digitou corretamente (caso contrário, você precisará desse backup).
  10. Se houver arquivos de ponto ou pastas em / home, remova-os pelo nome. Lembre-se, você deve não executar /home/.* . Isso corresponderia a rm -Rf .* , que significa diretório-pai, levando a completa destruição do sistema de arquivos (embora algumas versões do .. possam se recusar a fazer isso, você não deve depender disso).
  11. Edite rm e adicione uma entrada para sua nova partição sda2, desta forma: /etc/fstab . Você pode usar bandeiras diferentes se quiser, essas são as que eu uso. Além disso, esse /dev/sda2 /home ext4 relatime,user_xattr,errors=remount-ro 0 2 number (2) assume que você só tem dois sistemas de arquivos em sda, o que parece muito provável, pois é sda2.
  12. Finalmente, monte sua nova casa pass . Isso deve ser executado sem erros e seus arquivos devem estar lá. Se você receber erros, verifique sua linha fstab. Se você receber um aviso sobre os arquivos no ponto de montagem que estão sendo ocultados, não excluiu tudo nas últimas etapas: desmonte mount /home e exclua o restante. Se os arquivos estiverem faltando, veja a primeira etapa.
por 08.12.2011 / 13:01
4

Cada partição é uma região separada do disco.

Se você deixou algum espaço não particionado, pode criar uma nova partição com fdisk , cfisk , parted ou qualquer outro gerenciador de partição. Caso contrário, você precisará reduzir seu sistema de arquivos existente para criar espaço para o novo. Os sistemas de arquivos atuais não suportam encolhimento durante a montagem ) Então, você precisará fazer isso durante a inicialização de um CD / USB ativo (como o CD ao vivo dividido ).

Depois de criar uma partição separada para /home :

  1. Crie um sistema de arquivos nele. Esta operação pode ser combinada com a criação da partição com algumas ferramentas.
  2. Monte o novo sistema de arquivos manualmente em um local que seja um diretório vazio, por exemplo, mount /dev/sda2 /media/new_home .
  3. Mova seus arquivos de /home para o novo sistema de arquivos:

    mv /home/* /media/new_home
    

    Você deve fazer isso enquanto não estiver conectado à sua conta: a partir de um prompt de login raiz no modo de texto ou ainda de um CD ativo.

  4. Desmonte o novo sistema de arquivos: umount /media/new_home
  5. Edite o arquivo /etc/fstab para adicionar uma entrada para a nova partição. Algo como (para ir abaixo da entrada para / ):

    /dev/sda2  /home  ext4  errors=remount-ro,acl  0 2
    

    Em vez de /dev/sda2 , que pode mudar se você adicionar um segundo disco, use um UUID ou um rótulo. Consulte O que acontece com os marcadores de partições após a remoção uma partição?

  6. Se estiver em um CD ao vivo, reinicie. Caso contrário, execute mount /home .

Quais pontos de montagem existem em um sistema Linux típico? pode ser um plano de fundo útil.

    
por 08.12.2011 / 21:54