Redimensionando partições Linux, parte 2: Redimensionamento avançado

LVMs, resolução de problemas e alternativas

Sistemas Linux® são frequentemente instalados em várias partições, cada uma delas com tamanho fixo. À medida que suas necessidades mudam, no entanto, frequentemente é necessário redimensionar partições para atender a essas necessidades. Existem várias ferramentas para fazer isto no Linux, mas há uma série de armadilhas e restrições potenciais que podem tornar a tarefa mais difícil do que parece à primeira vista. Este artigo aborda questões de redimensionamento avançado de partições, incluindo o uso de recursos Logical Volume Management (LVM), resolução de problemas e alternativas ao redimensionamento de partição. A parte 1 desta série abordou o redimensionamento básico de partição.

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith é consultor e autor de dezenas de livros sobre UNIX e Linux, incluindo The Definitive Guide to Samba 3, Linux in a Windows World e Linux Professional Institute Certification Study Guide. Ele é autor do software de particionamento GPT fdisk. Atualmente, Roderick reside em Woonsocket, Rhode Island.



28/Out/2010

Operações simples de redimensionamento de partição, como aquelas descritas na Parte 1 desta série, normalmente são concluídas com sucesso. Algumas vezes, no entanto, é preciso fazer algo diferente ou solucionar problemas. Este artigo aborda algumas destas situações. O primeiro tópico é a configuração de LVM e como ela interage com o redimensionamento de partição. O segundo tópico aborda técnicas de resolução de problemas. Apesar de ser possível escrever um livro com uma descrição completa de todos os problemas que podem ocorrer ao redimensionar partições, alguns princípios básicos podem ajudá-lo a resolver muitos problemas comuns. Finalmente, este artigo descreve algumas alternativas ao redimensionamento de partição, caso os problemas que encontre sejam insuperáveis.

Redimensionando LVMs

LVM é uma técnica de alocação de disco que suplementa ou substitui partições tradicionais. Em uma configuração de LVM, uma ou mais partições, ou às vezes discos inteiros, são atribuídas como volumes físicos em um grupo de volumes que, por sua vez, é dividido em volumes lógicos. Sistemas de arquivo, então, são criados em volumes lógicos, que são tratados de forma parecida com partições em uma configuração convencional. Esta abordagem a alocação de disco adiciona complexidade, mas o benefício é flexibilidade. Uma configuração de LVM torna possível combinar espaço em disco de vários discos pequenos em um grande volume lógico. Mais importante para o tópico de redimensionamento de partição, volumes lógicos podem ser criados, excluídos e redimensionados da mesma forma que arquivos em um sistema de arquivos; não é preciso se preocupar com pontos de início da partição, somente com seu tamanho absoluto.

Nota: Não tento descrever como configurar um LVM neste artigo. Se você ainda não usa uma configuração LVM, poderá converter seu sistema para usá-la, mas deverá consultar outras documentações, como o Linux LVM HOWTO (consulte Recursos) para aprender como fazê-lo.

Redimensionando volumes físicos

Se você redimensionou partições não LVM, como descrito na Parte 1 desta série, e deseja adicionar o espaço à sua configuração de LVM, existem duas escolhas:

  • É possível criar uma nova partição no espaço vazio e adicionar a nova partição a seu LVM.
  • É possível redimensionar uma partição LVM existente, se for contígua ao novo espaço.

Infelizmente, a ferramenta GParted (também conhecido como Gnome Partition Editor), descrita na Parte 1 desta série, não suporta o redimensionamento de partições LVM. Portanto, a forma mais fácil de adicionar espaço a seu grupo de volumes é criar uma nova partição no espaço livre e adicioná-la como um novo volume físico a seu grupo de volumes existente.

Apesar de o GParted não poder criar diretamente uma partição LVM, é possível fazê-lo com uma das seguintes ferramentas:

  • parted (GNU Parted em modo texto)
  • fdisk para discos com Master Boot Record (MBR)
  • gdisk para discos com identificador global exclusivo(GUID) e Globally Partition Table (GPT)

Se usar parted, é possível usar o comando set para ligar o sinalizador lvm , como em set 1 lvm on para sinalizar a partição 1 como uma partição LVM. Usando fdisk, você deverá usar o comando t para definir o código do tipo da partição como 8e. O mesmo é feito com gdisk, exceto que seu código de tipo para partições LVM é 8e00.

Em qualquer um desses casos, é preciso usar o comando pvcreate para definir as estruturas de dados LVM básicas na partição e, a seguir, vgextend para adicionar a partição ao grupo de volumes. Por exemplo, para adicionar /dev/sda1 ao grupo de volumes MyGroup existente, digite os seguintes comandos:

pvcreate /dev/sda1
vgextend MyGroup /dev/sda1

Com estas alterações concluídas, será possível estender os volumes lógicos em seu grupo de volumes, como descrito em breve.

Redimensionando volumes lógicos

Para arquivos de sistemas, redimensionar volumes lógicos poderá ser mais simples do que redimensionar partições, porque o LVM remove a necessidade de separar conjuntos contíguos de setores numerados na forma de partições. Redimensionar o volume lógico em si é conseguido por meio do comando lvresize . Este comando tem uma série de opções (consulte sua página man para obter detalhes), mas a mais importante é -L, que toma um novo tamanho ou uma alteração de tamanho, uma alteração sendo denotada por um sinal de mais (+) ou de menos (-) à esquerda. Também é preciso oferecer um caminho para o volume lógico. Por exemplo, suponha que queira adicionar 5 gibibytes (GiB) ao tamanho do volume lógico usr no grupo MyGroup . Isto poderia ser feito da seguinte forma:

lvresize -L +5G /dev/mapper/MyGroup-usr

Este comando ajusta o tamanho do volume lógico especificado. Tenha em mente, no entanto, que esta mudança é muito parecida com uma mudança a uma só partição. Ou seja, o tamanho do sistema de arquivos contido no volume lógico não é alterado. Para ajustar o sistema de arquivos, é preciso usar uma ferramenta específica do sistema de arquivos, como resize2fs, resizereiserfs, xfs_growfs ou a opção de montagem resize ao montar o sistema de arquivos registrados (JFS). Quando usadas sem opções de tamanho, essas ferramentas redimensionam o sistema de arquivos para preencher o tamanho do novo volume lógico, o que é conveniente ao aumentar um volume lógico.

Se quiser diminuir um volume lógico, a tarefa é um pouco mais complexa. É preciso primeiro redimensionar o sistema de arquivos (usando resize2fs ou ferramentas similares) e, a seguir, diminuir o volume lógico para corresponder ao novo tamanho. Por causa do potencial para erros danosos, caso defina acidentalmente o tamanho do volume lógico como muito pequeno, recomendo primeiro diminuir o sistema de arquivos para algo significativamente menor do que seu tamanho alvo, em seguida redimensionar o volume lógico para o novo tamanho correto e, a seguir, redimensionar o sistema de arquivos para aumentar seu tamanho, baseando-se no recurso de redimensionamento automático para que o sistema de arquivos preencha exatamente o tamanho do novo volume lógico.

Lembre-se também de que, apesar de poder reduzir a maioria dos sistemas de arquivos nativos do Linux, não é possível reduzir XFS ou JFS. Se precisar reduzir um volume lógico contendo um desses sistemas de arquivos, talvez seja necessário criar um volume lógico menor, copiar o conteúdo do primeiro para o novo volume, alterar seus pontos de montagem e, a seguir, excluir o original. Se não tiver espaço livre suficiente para fazer isto, poderá ser forçado a usar um backup como etapa intermediária.

Usando ferramentas GUI LVM

Apesar de as ferramentas em modo texto descritas acima realizarem o trabalho, elas podem ser intimidadoras. Se preferir trabalhar com ferramentas de interface gráfica com o usuário (GUI), existem pelo menos duas disponíveis para operações com LVM:

  • kvpm—Esta é uma ferramenta que se integra com o K Desktop Environment (KDE) e fornece acesso a operações de LVM comuns, incluindo opções de redimensionamento de volume lógico.
  • system-config-lvm—Este programa é originário do Red Hat, mas está disponível em algumas outras distribuições. Ele é similar ao kvpm pelo fato de que fornece acesso apontar-e-clicar ao gerenciamento de LVM, incluindo operações de redimensionamento.

Das duas, o system-config-lvm fornece uma interface com o usuário um pouco mais simples e mais amigável; no entanto, ambas farão o trabalho. A Figura 1 mostra o system-config-lvm em ação. Para redimensionar um volume lógico, clique em seu nome no painel esquerdo e, a seguir, clique no botão Edit Properties que aparece no painel central. É possível, então, usar uma régua de controle para ajustar o tamanho do volume.

Figura 1. Ferramentas GUI tornam o redimensionamento de volumes lógicos relativamente fácil
Ferramentas GUI tornam o redimensionamento de volumes lógicos relativamente fácil

Resolução de problemas

Infelizmente, algumas vezes as operações de redimensionamento de partições não funcionam da forma esperada. Mais comumente, o software de redimensionamento reporta um erro, frequentemente com uma mensagem misteriosa. Apesar de existirem várias causas possíveis para tais problemas, é possível superar muitas delas aplicando algumas alternativas simples, como corrigindo problemas de sistema de arquivos e detalhando uma operação de redimensionamento completa em várias partes.

Corrigindo problemas do sistema de arquivos

Uma causa comum de falhas no redimensionamento é um sistema de arquivos danificado. Todos os sistemas de arquivos de produção incluem ferramentas de recuperação do sistema de arquivos que permitem corrigir tais problemas, portanto executá-las em um sistema de arquivos antes de redimensioná-lo pode, frequentemente, resultar em uma operação de redimensionamento mais tranquila.

No Linux, a ferramenta de verificação do sistema de arquivos é chamada fsck e pode ser chamada passando a ela o nome de arquivo do dispositivo associado com o sistema de arquivos que deseja verificar, como em fsck /dev/sda1 para verificar /dev/sda1. O utilitário fsck , no entanto, é principalmente uma ferramenta específica de front-end para o sistema de arquivos, como e2fsck (para ext2fs, ext3fs e ext4fs). É possível frequentemente obter acesso a opções mais avançadas chamando a ferramenta específica do sistema de arquivos diretamente. A opção -f do e2fsck, por exemplo, força-o a verificar o dispositivo mesmo que o sistema de arquivos pareça estar limpo. Esta opção poderá ser necessária para descobrir danos que não sejam óbvios em um exame superficial. Verifique a documentação da ajuda específica para seu sistema de arquivos do fsck para aprender sobre estas opções.

Na maioria dos casos, é necessário executar fsck ou seu programa de ajuda em um sistema de arquivos não montado. Portanto, poderá ser preciso fazer isto a partir de um disco de boot de emergência, como descrito na Parte 1 desta série.

Se tiver problemas com um sistema de arquivos não Linux, poderá ser possível usar o fsck para verificá-lo. No entanto, também poderá ser preciso inicializar o sistema operacional original do sistema de arquivos para realizar a tarefa de forma apropriada. Em particular, o Microsoft® Windows® New Technology File System (NTFS) tem somente ferramentas de manutenção rudimentares no Linux. É preciso usar o utilitário do Windows CHKDSK para realizar uma tarefa apropriada de verificação do NTFS. Poderá ser preciso executar este utilitário várias vezes, até que não reporte mais problemas com o disco. O utilitário do Linux ntfsfix realiza as poucas verificações que são possíveis no Linux e, a seguir, sinaliza o sistema de arquivos para verificação automática na próxima vez que o Windows for inicializado.

Apesar de não ser um problema de integridade do sistema de arquivos em si, a fragmentação de disco é outro problema que poderá precisar de atenção. É possível, algumas vezes, eliminar problemas realizando uma operação de desfragmentação do disco antes de uma operação de redimensionamento. Esta tarefa é raramente necessária (e normalmente não é possível)O com sistemas de arquivo nativos do Linux; no entanto, poderá ajudar com partições File Allocation Table (FAT) ou NTFS.

Detalhando a operação em partes

Se você inserir uma série de operações de redimensionamento e movimentação no GParted e a operação falhar, é possível tentar inserir somente uma operação de cada vez e imediatamente clicar no botão Apply . Ainda poderão ocorrer problemas, mas pelo menos você será capaz de realizar outras operações que não sejam dependentes daquela que causou os problemas. Dependendo dos detalhes, poderá ser possível atingir pelo menos alguns de seus objetivos gerais ou encontrar outra forma de resolver o problema.

Em alguns casos, poderá ser possível dividir a operação de redimensionamento em vários utilitários. Por exemplo, poderá ser possível usar um utilitário Windows ou Mac OS X para redimensionar partições FAT, NTFS ou Hierarchical File System Plus (HFS+). Apesar de o GParted ser a forma mais amigável de redimensionar partições no Linux, se somente uma operação estiver causando problemas, usar um utilitário subjacente em modo texto, como resize2fs, poderá fornecer uma saída melhor para diagnóstico ou mesmo ter sucesso onde o GParted falhar. Tenha em mente, no entanto, que a maioria das ferramentas em modo de texto redimensiona partições ou sistemas de arquivos, mas não ambos; é preciso combinar ambos os tipos de ferramentas para redimensionar uma partição e seu sistema de arquivos. O utilitário GNU Parted é uma exceção a esta regra; como sua prima GUI, GParted, o Parted redimensiona partições e seus sistemas de arquivos contidos simultaneamente.


Usando o plano B

Algumas vezes, uma tentativa de redimensionar suas partições simplesmente não funciona. Talvez um sistema de arquivos tenha erros que não podem ser resolvidos facilmente, ou talvez seja necessário reduzir um sistema de arquivos (como XFS ou JFS) que não podem ser reduzidos. Neste casos, é preciso usar uma alternativa, como relocação de diretórios em sua estrutura de partição existente, realização de uma operação de backup-reparticionamento-restauração ou adição de mais espaço em disco.

Relocando diretórios sem reparticionar

Algumas vezes, é possível relocalizar diretórios sem reparticionar de fato o disco. O truque é usar links simbólicos para apontar de um local para o outro, mesmo entre partições. Por exemplo, suponha que esteja usando um sistema Gentoo, que pode consumir vastas quantidades de espaço em disco nos diretórios /usr/portage e /var/tmp/portage. Se não considerar estas necessidades ao configurar seu sistema, poderá ficar sem espaço. É possível, no entanto, ter espaço disponível em uma partição /home separada. Para usar este espaço para Portage, é possível criar um ou mais diretórios em /home, copiar o conteúdo de /usr/portage ou /var/tmp/portage para os novos diretórios, excluir os diretórios originais e criar links simbólicos no local dos originais que apontem para os novos subdiretórios de /home.

Esta abordagem pode ser efetiva e é conveniente em uma pequena escala; no entanto, ela cria um sistema relativamente não padrão e remove muitas das vantagens de usar partições separadas. Portanto, recomendo usar esta abordagem com cuidado e, preferivelmente, somente em curto prazo —por exemplo, como uma medida paliativa enquanto aguarda que chegue um novo disco rígido ou em um sistema que planeja aposentar em um ou dois meses.

Realizando backup, reparticionando e restaurando

Antes do desenvolvimento de ferramentas de redimensionamento de sistema de arquivos, a única maneira prática de reparticionar um disco era realizar backup de seu conteúdo, reparticionar (criar novos sistemas de arquivo vazios) e restaurar o backup no disco reparticionado. Esta abordagem continua a funcionar mas, é claro, é menos conveniente do que usar o GParted para reparticionar de forma não destrutiva. Por outro lado, por segurança, é melhor criar um backup antes de redimensionar partições. Portanto, para estar seguro, é preciso realizar metade desta tarefa de qualquer maneira.

No mundo de hoje, uma unidade de disco rígido externa é frequentemente usada como mídia de backup. É possível comprar discos externos de terabyte por menos de $100 e, depois de alterar as partições, poderá usá-los para realizar backup de seus arquivos importantes, para transferir grandes arquivos entre sistemas ou de outras formas. Alternativamente, poderá usar DVDs graváveis, unidades de fita ou servidores de rede como sistemas de backup.

O software de backup poderá incluir utilitários antigos, como tar , ou ferramentas novas, como Clonezilla. Detalhes operacionais variam dependendo do software e da mídia de backup, portanto consulte a documentação do software de backup para obter detalhes.

Se for necessário modificar sua partição de boot do Linux ou qualquer partição que seja necessária para acesso básico de root (superusuário), será preciso realizar essas operações a partir de um sistema de inicialização de emergência. A Parte 1 desta série descreveu tais sistemas.

Adicionando espaço em disco

Adicionar um disco poderá ser uma alternativa viável para o reparticionamento e, em alguns casos, adicionar espaço em disco poderá ser preferível. As capacidades de disco continuam a crescer e um disco mais novo provavelmente será mais confiável do que um disco de vários anos.

Se escolher substituir um disco existente por um mais novo, você deverá ser capaz de transferir seu sistema existente para o novo disco com uma ferramenta como Clonezilla ou usando ferramentas mais antigas, como fdisk e tar. Poderá ser preciso reinstalar seu loader de boot e, para esta tarefa, um boot usando uma ferramenta como Super Grub Disk poderá ser útil. É possível inicializar seu sistema usando este loader de boot com base em CD e, a seguir, usar o grub-install ou uma ferramenta similar para reinstalar o GRand Unified Bootloader (GRUB) em seu novo disco rígido.

Se comprar um novo disco para suplementar, em vez de substituir, seu disco existente, é preciso decidir quais são os dados, se houver, que serão transferidos para o novo disco. Você deverá particionar o novo disco usando fdisk, GParted ou alguma outra ferramenta, transferir arquivos para as novas partições e, a seguir, montar permanentemente as partições do novo disco em sua árvore de diretório existente editando /etc/fstab apropriadamente. Lembre-se de excluir quaisquer arquivos que transferir do disco antigo para o disco novo. Se não o fizer, eles continuarão a consumir espaço no disco antigo, mesmo se você montar o novo disco para substituir os diretórios dos arquivos originais.


Resumo

Seja lá como fizer, alterar a alocação em disco de um sistema em funcionamento poderá ser uma tarefa que gere ansiedade e com bom motivo: muitas coisas podem sair erradas. No entanto, se tais mudanças forem necessárias, você descobrirá que seu sistema será mais usável depois de fazer as mudanças. Com risco reduzido de um disco cheio de erros, é possível continuar usando seu sistema para a tarefa a que se destina. O processo de redimensionamento de suas partições também poderá ajudá-lo a se familiarizar com o GParted e outros utilitários de disco, bem como com os tamanhos ideais para as várias partições. Tudo isto pode ser conhecimento útil da próxima vez que instalar um novo sistema Linux.

Recursos

Aprender

Obter produtos e tecnologias

  • Faça o download do PartedMagic a partir de seu site da web.
  • Faça o download do SystemRescueCd a partir de seu site da web.
  • A ferramenta de redimensionamento de partição Linux mais flexível é o GParted, que está incluído no PartedMagic, SystemRescueCd e na maioria das distribuições Linux.
  • O GParted é baseado no libparted, que é parte do pacote em modo de texto do GNU Parted.
  • Clonezilla é uma ferramenta para clonagem de partições de disco rígido ou de discos rígidos inteiros.
  • O Super GRUB Disk é uma ferramenta para inicializar um sistema Linux que não inicializa por causa de um loader de boot danificado ou ausente.
  • Avalie produtos IBM da forma que melhor lhe convier: faça o download para uma avaliação, experimente-os on-line, use-os em um ambiente de nuvem ou passe algumas horas no SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de forma eficiente.

Discutir

  • Participe da comunidade My developerWorks. Conecte-se a outros usuários do developerWorks enquanto explora blogs, fóruns, grupos e wikis orientadas a desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=549475
ArticleTitle=Redimensionando partições Linux, parte 2: Redimensionamento avançado
publish-date=10282010