Como posso expandir o tamanho da partição ext4 no debian


26

Eu tenho uma unidade com esta configuração:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Há 478 GB de espaço não alocado. Como eu adicionaria esse espaço ao / dev / sda1 sem perder os dados que estão atualmente no / dev / sda1? (o sistema de arquivos é ext4).

NOTA: é um servidor com apenas SSH, sem GUI para executar coisas como o gparted.


Posso inicializar o servidor em rede e usá-lo enquanto a unidade está desmontada.
— Seb

Este item em particular foi abordado muitas vezes nos sites da SE. Seria melhor fazer um pouco mais de pesquisa antes de postar uma pergunta.
— Mdpc

Veja também askubuntu.com/a/937351/621883, especialmente a resposta que contém growpart e resize2fs foi útil para mim.
— klor

Respostas:


38

Ampliar a partição: fdisk -u /dev/sda.

p para imprimir a tabela de partição, anote o número, o início, o fim, o tipo de sda1.

Exclua d:

Recrie-o com o mesmo número (1), inicie e digite, mas com um final maior (tomando cuidado para não se sobrepor a outras partições). Tente alinhar as coisas em um limite de megabytes que seja para final , faça com que ele seja múltiplo de 2048 menos 1. Altere o tipo, se necessário, com t(para partições que mantêm um sistema de arquivos extXou btrfs, o padrão 83é bom).

Então, wpara escrever e qsair.

A tabela de partições será modificada, mas o kernel não poderá levar isso em consideração, pois algumas partições são montadas.

No entanto, se as partições em uso forem apenas ampliadas, você poderá forçar o kernel a adotar o novo layout com:

partx /dev/sda

Se isso falhar, você precisará reiniciar. O sistema deve inicializar perfeitamente.

Em seguida, redimensione o sistema de arquivos para que ele se espalhe na extensão da partição ampliada:

resize2fs /dev/sda1

Que para ext4irá funcionar muito bem, mesmo em um FS ao vivo.


Eu sei que isso é antigo, mas isso manterá os dados se você excluir a partição?
— Canadian Luke REINSTATE MONICA

3
@ CanadianLuke, sim, excluir a partição no fdisk modifica apenas a tabela de partições. Se você recriar o mesmo tamanho, não haverá nenhuma alteração. Os dados nunca são alterados, a menos que você reduza uma partição e crie outra partição lógica ou estendida no meio do que sua partição costumava ser; nesse caso, o registro da partição para essa partição estendida / lógica será gravado sobre alguns dados.
— Stéphane Chazelas

Isso também funciona muito bem para partições NTFS (com um volume existente, com dados).
— precisa saber é o seguinte

Isso parece razoável, mas e se eu tiver as partições Extended, Linux LVM e Linux swap / Solaris, que começam no final da partição Linux? Devo excluir essas partições>? Estou preocupado que, nesse caso, o sistema de arquivos não seja iniciado, pois pode estar usando o Linux LVM, por exemplo, no mesmo início e fim. E eu não quero perder dados também.
— Cyan

@cyan redimensionar um volume lógico do LVM com um FS ext4 ou redimensionar uma partição usada como um volume físico para o LVM seriam perguntas diferentes com procedimentos diferentes.
— Stéphane Chazelas

7

Você não pode fazê-lo com segurança enquanto a partição está montada, o que significa que você precisa inicializar outra partição e fazê-lo a partir daí.

gpartedé uma interface gráfica agradável e fácil para esse fim. Em nossa troca de comentários excluídos, você mencionou que não seria iniciado por "não pode acessar a exibição" - isso implica que você não está no X; já que é uma GUI, não funcionará sem isso.

Obviamente, se você não tiver outra partição para usar, precisará de um CD ao vivo ou algo assim - acho que eles geralmente vêm com o gparted. Sua melhor aposta é provavelmente o CD ao vivo real do gparted , que parece ter uma versão estável mais recente e razoavelmente recente (e caberá em um CD , o que é bom, pois o "CD ao vivo" está se tornando rapidamente o "DVD ao vivo").

Eu nunca tive problemas com um problema, mas é claro que primeiro apóio seu problema importante.


Não consigo usar o gparted, pois só tenho acesso SSH (é um servidor sem cabeça). Consigo desmontar o disco rígido, pois o sistema não roda em / dev / sda.
— Seb

11
Se você não tem acesso físico ao sistema e, portanto, não pode desmontar e alterar utilmente a partição, acho que você está sem sorte ou pelo menos em um território muito superficial - por exemplo, você pode tentar usar fdiskenquanto está montado, selecione (x) pert, (c) troque o número de cilindros. Mas não fiz isso e o faria apenas se não houvesse outra opção.
— Goldilocks

Acabei de dizer que posso desmontar a partição. Eu posso até inicializar o servidor inteiro e entrar em outro servidor, o que seria como usar um Live CD (apenas sem uma GUI).
— Seb

@ Seeb: meu mal, desculpe.
— Goldilocks

2

Sei que esse é um problema muito antigo, mas muitas pessoas estão procurando por essa resolução.

Neste exemplo, você tem a seguinte situação típica. No início, há uma única partição e, no final, uma partição de troca está localizada. não é bom porque a troca pode ser muito carregada e o final do disco girado é a parte mais lenta. o que eu sugiro?

  1. Crie uma partição de inicialização no início. Por que no começo? porque muitas ferramentas têm problemas com o fim do disco grande acima da barreira de 2 TB. Após a partição de inicialização deve ser a partição de swap. Isto é para desempenho. O restante do disco deve ser usado para outras partições.

Mas e com esta situação? Eu não recomendo expandir sda1. Sugiro criar outras partições após sda1 e sda2, montadas como /homee /usr. Nesses diretórios são armazenados a maioria dos dados do usuário e do sistema, e é possível mover com segurança os dados desses diretórios para novas partições.

  1. Mas. (segundo "mas") se você ainda deseja manter sua estrutura atual, remova primeiro a partição swap. Você deve fazer a troca, observe isso em /etc/fstab. se swapon lhe disser (consulte man) que nenhuma troca é usada, você poderá removê-la pela ferramenta de partição (fdisk ou similar).

    Quando você não possui essa partição, pode aumentar seu sda1. Usando fdiskvocê deve primeiro imprimir partição. É para lembrar onde começa. Em segundo lugar, remova a partição usando a tecla 'd'. Não entre em pânico, nada está escrito no disco rígido :). Após a impressão, você não vê nenhuma partição no disco.

    Em seguida, crie uma nova partição, mas tenha cuidado. Veja em qual partição original do setor foi iniciada. Escreva o mesmo número. Depois desse olhar no final. fdisksolicita o último setor disponível. Use a calculadora e atribua em sua mente a quantidade de swap necessária em kilobytes. Multiplique por 2 e subtraia esse número do último número de setor solicitado pelo fdisk. Crie partição. Imprima isso (ainda está na memória temporária do fdisk) e verifique se está tudo bem.

    Após pressionar a tecla 'w', isso irá gravar um novo particionamento na unidade. Você verá todas as informações sincronizadas ou a sincronização falhou. Se falhar, você pode chamar o comando partx / dev / sda para fazer a sincronização. Se ainda assim falhar, você deve reiniciar o sistema. Após a reinicialização, você preparou uma partição maior, mas o sistema de arquivos ainda é menor. Você deveria cultivá-lo. EXT4 é cultivável em tempo real :), use resize2fs /dev/sda1para fazer isso.

    Você não precisa remontar a reinicialização etc. Por último, você deve restaurar a partição swap. Simplesmente use o fdisk novamente, crie uma nova partição como swap. Após escrever 'w', o dispositivo sda2 será restaurado. Prepare a estrutura de troca usando mkswap /dev/sda2, remova os comentários da troca /etc/fstabe, finalmente, faça swapon -a. Olhe usando o comando swapon ou top, a troca está ativada.

Eu sei, é uma explicação muito longa. Espero que seja útil para qualquer um. Observe que, na minha opinião, o sistema de arquivos xfs é muito melhor, infelizmente esse fs não suporta encolhimento sem cópia temporária para outro lugar, mas o encolhimento é usado raramente. É bom, o xfs ocupa muito pouco lugar para seus próprios metadados e é mais rápido em muitos aspectos em comparação ao ext4.

Outra dica: use melhor o LVM como camada intermediária para particionar. depois disso, qualquer redimensionamento é muito mais fácil. O desempenho é comparável, é claro, você pode usar a combinação de gerenciamento de HDD. você pode usar em partições brutas comuns e no LVM.


Muito obrigado a SLM para correções de linguagem bonito: D
— Znik
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.