Como redimensionar partições usando a linha de comando sem usar uma GUI em um servidor?
45
Eu só tenho acesso ao servidor através de um terminal e não posso usar ferramentas gráficas como o GParted!
Eu quero criar uma nova partição a partir de uma parte da raiz (cerca de 768mb) para troca.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 20G 1.3G 18G 7% /
udev 10M 0 10M 0% /dev
tmpfs 199M 4.9M 194M 3% /run
tmpfs 100M 12K 100M 1% /run/user
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
Você não pode reduzir / editar uma partição se alguma da partição no dispositivo de armazenamento estiver montada. Portanto, para desmontar e editar o sistema de arquivos raiz, o sistema operacional precisa ser desligado. Em seguida, inicialize em um sistema ativo e edite a partição conforme descrito em outras respostas.
Solução alternativa: arquivo de troca
Como alternativa à criação de uma partição inteira, um arquivo de troca oferece a capacidade de variar seu tamanho on-the-fly e é mais facilmente removido por completo. O arquivo de troca pode ser plugável a quente . ou seja, pode ser adicionado e removido sem desmontar / desligar o SO.
Crie um arquivo de 512 MB chamado /swapfile. Este será o nosso arquivo de troca.
fallocate -l 512M /swapfile
OU
dd if=/dev/zero of=/swapfile bs=1M count=512
Defina as permissões corretas (porque um arquivo de troca legível por mundo é uma enorme vulnerabilidade local):
chmod 600 /swapfile
Após criar o arquivo de tamanho correto, formate-o para trocar:
mkswap /swapfile
Ative o arquivo de troca:
swapon /swapfile
Edite /etc/fstabe adicione uma entrada para o arquivo de troca:
Eu acho que essa é a resposta mais fácil e eficiente =)! Existem implicações no uso de um arquivo em vez de uma partição?
Alaa Ali
2
Desempenho ligeiramente baixo se o arquivo estiver fragmentado. Não há vantagem de desempenho para um arquivo de troca contíguo ou uma partição, ambos são tratados da mesma maneira.
totti 28/07
1
Eu acho que essa é a melhor solução. Como você não está formatando, diminuindo ou alterando a partição (tabelas), não há risco de perda de dados.
R110 31/07
28
Antes de tudo, é importante saber que você não pode redimensionar para reduzir sua partição raiz se a estiver usando (isso é chamado de redução online). Você só pode cultivá-lo online. Isso é suportado pelo resize2fscomando Vou assumir o seguinte:
Você não deseja perder suas informações na partição raiz.
Você não tem acesso físico ao disco rígido para usar um LiveCD. Isso pode se aplicar a um ambiente virtual ou remoto. No caso de um virtual, você ainda poderá inicializar a partir de um LiveCD se configurar a VM para inicializar a partir de um LiveCD. Isso pressupõe que a VM suporta a saída da GUI da área de trabalho de onde você executaria o aplicativo Gparted para redimensionar facilmente. Mas como isso é menos provável, presumo que você não possa.
Existem 2 tipos de partições que você pode redimensionar, as partições LVM ou as partições do Logical Volume Manager que oferecem suporte ao redimensionamento on-line (encolhimento / crescimento) desde a criação da galáxia e das partições padrão que a maioria de nós usa. No momento, o único que tem quase 100% de suporte ao redimensionamento on-line completo (Shrink / Grow) é o sistema de arquivos btrfs (que ainda está em desenvolvimento). Vou explicar como fazer as partições normais que a maioria de nós usa no sistema de arquivos ext4.
Redimensionando (Crescendo) a Partição
Para aumentar sua partição, você pode fazê-lo com a raiz montada. Para fazer isso simplesmente faça:
sudo resize2fs /dev/sda1
Desde que você já tenha o espaço vazio pronto para ser mesclado. Depois, recomendo a reinicialização para que as alterações entrem em vigor corretamente. O comando acima seria redimensionado para o máximo permitido. Se você deseja redimensionar para um tamanho específico, basta adicionar o tamanho no final:
sudo resize2fs /dev/sda1 25G
Observe que se você quiser especificar 25,4 GB, não poderá usar o ".". você precisaria descer uma unidade de medida. Nesse caso, de GB para MB, seria assim:
sudo resize2fs /dev/sda1 25400M
Dessa forma, você terá uma partição de 25.4G
Redimensionando (encolhendo) a partição
Reduzir a partição é um processo de duas etapas que envolve:
Reduzindo o tamanho do sistema de arquivos pela quantidade necessária.
Reduzir o tamanho do dispositivo de bloco subjacente para corresponder ao do sistema de arquivos.
Antes de reduzir a capacidade de um sistema de arquivos, você precisa reduzir o tamanho do dispositivo de bloco (que pode ser uma partição ou um volume lógico). Como isso não está disponível para nenhum sistema de arquivos ext *, você não poderá reduzi-lo de 20 GB para 19,5 GB para criar o swap de 500 MB.
Mesmo o Ext4 não suporta encolhimento online. Se você tentar fazer isso, receberá o seguinte:
Sua única aposta, tanto quanto eu sei, é:
Instale outra versão do Ubuntu no mesmo servidor (em outra partição) que pode ser usada para reduzir a partição raiz do servidor Ubuntu original.
Instale o servidor Ubuntu do zero com o tamanho que você realmente deseja
Use a Imagem ao vivo do Ubuntu Server para redimensionar a partição. Nesse caso, você precisará acessar esta tela:
E escolha a opção Redimensionar, como mostrado na imagem acima. A partir daí, você selecionará qual será o novo tamanho, pois daqui você pode desmontar a unidade e encolhê-la, se desejar.
Como ajuda adicional, aqui está o sistema de arquivos gparted, suporte http://gparted.org/features.php, que fornece uma lista muito detalhada dos suportados e inclui se eles têm redimensionamento online completo. Btrfs está entre eles.
Estou curioso, existem outros sistemas de arquivos que oferecem suporte à redução online? zfs ou btrfs talvez?
Seth
Eu adicionei um link na parte inferior. O kernel também precisa suportar isso para o sistema de arquivos ser redimensionado online corretamente.
Luis Alvarado
Eu tenho o servidor ubuntu na máquina vmware e seu tamanho de disco é 120G. Mas após o uso da primeira solução, recebo este erro: O sistema de arquivos já tem 27262720 blocos. Nada para fazer!
Dr.jacky
1
Obrigado @ Mr.Hyde. Houve vários problemas na estação de trabalho 10 e até 11. Eu recomendaria 12 e, para o Ubuntu, também atualizaria o LTS mais recente ou o mais recente, porque também havia alguns problemas. No meu caso, tenho a estação de trabalho VMware 12.0.1 e o Ubuntu 15.10 de 64 bits.
Luis Alvarado
3
Na página de manual do resize2fs:The resize2fs program does not manipulate the size of partitions.
ACK_stoverflow 17/17
6
A resposta depende se você pode desmontar ou não a partição. No seu caso, você provavelmente não pode desmontar a partição. No Linux (UNIX / MAC OS), montar uma partição se refere ao uso do sistema de arquivos e ao mapeamento para o ponto de montagem (no seu caso /). Desmontar significa que você para de usar o sistema de arquivos e remove o mapeamento para o ponto de montagem. Você não pode desmontar o sistema de arquivos que contém o sistema operacional em execução.
Se a partição puder ser desmontada
Vamos supor que você queira reduzir uma partição ext4 de 200 GB no /dev/sda4montado no /data. Atualmente, ele contém músicas e filmes ou similares, para que você possa desmontá-lo temporariamente. Você deseja criar uma troca de 4 GB.
sudo umount /dev/sda4
desmontar a partição.
sudo resize2fs /dev/sda4 196G
redimensionar o sistema de arquivos ext4 para 196 GB, assumindo que há espaço suficiente. Agora, você deve reduzir a partição. Atualmente, acredito que você precisa usar cfdiskpara excluir a partição existente e recriar uma partição menor em seu lugar. Você também pode criar uma nova partição para a troca.
sudo cfdisk /dev/sda
fornecerá uma interface gráfica baseada em texto para inspecionar sua tabela de partições. Eu recomendaria a você a printtabela de partição para um arquivo ou tela nesse ponto e anote a configuração atual como backup. Você pode selecionar /dev/sda4e deletea partição. Em seu lugar, free spaceserá exibido. Use newpara criar uma nova partição com 196 GB em seu lugar e defina o tipo como ext4. Em seguida, mover-se para o espaço livre de fuga e criar a partição de troca com 4GB tipo swap. Nota: Eu não testei esses comandos, pois não posso brincar com os meus /no momento.
Se a partição não puder ser desmontada
Você não pode reduzir uma partição ext3 / 4 montada (consulte a página de manual de resize2fs). Como você está executando o SO /, não é possível desmontar /. Isso significa que você precisa inicializar outro sistema operacional (por exemplo, da chave USB) para fazer as alterações.
No seu caso, é um servidor remoto (no KVM provavelmente), portanto, talvez você não seja capaz de inicializar a partir de USB / uma imagem ao vivo do SO. Pode haver outras maneiras de alterar o particionamento do seu provedor vServer por meio de uma GUI de administrador. Acredito que essa seja sua melhor aposta atualmente.
Antes de tudo, é importante saber que você não pode redimensionar para reduzir sua partição raiz se a estiver usando (isso é chamado de redução online). Você só pode cultivá-lo online. Isso é suportado pelo
resize2fs
comando Vou assumir o seguinte:Existem 2 tipos de partições que você pode redimensionar, as partições LVM ou as partições do Logical Volume Manager que oferecem suporte ao redimensionamento on-line (encolhimento / crescimento) desde a criação da galáxia e das partições padrão que a maioria de nós usa. No momento, o único que tem quase 100% de suporte ao redimensionamento on-line completo (Shrink / Grow) é o sistema de arquivos btrfs (que ainda está em desenvolvimento). Vou explicar como fazer as partições normais que a maioria de nós usa no sistema de arquivos ext4.
Redimensionando (Crescendo) a Partição
Para aumentar sua partição, você pode fazê-lo com a raiz montada. Para fazer isso simplesmente faça:
Desde que você já tenha o espaço vazio pronto para ser mesclado. Depois, recomendo a reinicialização para que as alterações entrem em vigor corretamente. O comando acima seria redimensionado para o máximo permitido. Se você deseja redimensionar para um tamanho específico, basta adicionar o tamanho no final:
Observe que se você quiser especificar 25,4 GB, não poderá usar o ".". você precisaria descer uma unidade de medida. Nesse caso, de GB para MB, seria assim:
Dessa forma, você terá uma partição de 25.4G
Redimensionando (encolhendo) a partição
Reduzir a partição é um processo de duas etapas que envolve:
Antes de reduzir a capacidade de um sistema de arquivos, você precisa reduzir o tamanho do dispositivo de bloco (que pode ser uma partição ou um volume lógico). Como isso não está disponível para nenhum sistema de arquivos ext *, você não poderá reduzi-lo de 20 GB para 19,5 GB para criar o swap de 500 MB.
Mesmo o Ext4 não suporta encolhimento online. Se você tentar fazer isso, receberá o seguinte:
Sua única aposta, tanto quanto eu sei, é:
Instale outra versão do Ubuntu no mesmo servidor (em outra partição) que pode ser usada para reduzir a partição raiz do servidor Ubuntu original.
Instale o servidor Ubuntu do zero com o tamanho que você realmente deseja
Use a Imagem ao vivo do Ubuntu Server para redimensionar a partição. Nesse caso, você precisará acessar esta tela:
E escolha a opção Redimensionar, como mostrado na imagem acima. A partir daí, você selecionará qual será o novo tamanho, pois daqui você pode desmontar a unidade e encolhê-la, se desejar.
Como ajuda adicional, aqui está o sistema de arquivos gparted, suporte http://gparted.org/features.php, que fornece uma lista muito detalhada dos suportados e inclui se eles têm redimensionamento online completo. Btrfs está entre eles.
fonte
The resize2fs program does not manipulate the size of partitions.
A resposta depende se você pode desmontar ou não a partição. No seu caso, você provavelmente não pode desmontar a partição. No Linux (UNIX / MAC OS), montar uma partição se refere ao uso do sistema de arquivos e ao mapeamento para o ponto de montagem (no seu caso
/
). Desmontar significa que você para de usar o sistema de arquivos e remove o mapeamento para o ponto de montagem. Você não pode desmontar o sistema de arquivos que contém o sistema operacional em execução.Se a partição puder ser desmontada
Vamos supor que você queira reduzir uma partição ext4 de 200 GB no
/dev/sda4
montado no/data
. Atualmente, ele contém músicas e filmes ou similares, para que você possa desmontá-lo temporariamente. Você deseja criar uma troca de 4 GB.desmontar a partição.
redimensionar o sistema de arquivos ext4 para 196 GB, assumindo que há espaço suficiente. Agora, você deve reduzir a partição. Atualmente, acredito que você precisa usar
cfdisk
para excluir a partição existente e recriar uma partição menor em seu lugar. Você também pode criar uma nova partição para a troca.fornecerá uma interface gráfica baseada em texto para inspecionar sua tabela de partições. Eu recomendaria a você a
print
tabela de partição para um arquivo ou tela nesse ponto e anote a configuração atual como backup. Você pode selecionar/dev/sda4
edelete
a partição. Em seu lugar,free space
será exibido. Usenew
para criar uma nova partição com 196 GB em seu lugar e defina o tipo como ext4. Em seguida, mover-se para o espaço livre de fuga e criar a partição de troca com 4GB tiposwap
. Nota: Eu não testei esses comandos, pois não posso brincar com os meus/
no momento.Se a partição não puder ser desmontada
Você não pode reduzir uma partição ext3 / 4 montada (consulte a página de manual de
resize2fs
). Como você está executando o SO/
, não é possível desmontar/
. Isso significa que você precisa inicializar outro sistema operacional (por exemplo, da chave USB) para fazer as alterações.No seu caso, é um servidor remoto (no KVM provavelmente), portanto, talvez você não seja capaz de inicializar a partir de USB / uma imagem ao vivo do SO. Pode haver outras maneiras de alterar o particionamento do seu provedor vServer por meio de uma GUI de administrador. Acredito que essa seja sua melhor aposta atualmente.
fonte