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.

Seb
fonte
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.

Stéphane Chazelas
fonte
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.

Cachinhos Dourados
fonte
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.

Znik
fonte
Muito obrigado a SLM para correções de linguagem bonito: D
Znik