Como estender uma partição ext4 e um sistema de arquivos?

33

Eu tenho um disco de 400 GB com uma partição ext4 de 320 GB. Eu gostaria de crescer a partição ext4 para usar o espaço esquerdo (80GB de espaço livre).

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

Como eu poderia fazer isso?

Eu vi pessoas usando resize2fs , mas não entendi se ele redimensiona a partição.

Outra solução seria usar fdisk , mas não quero excluir minha partição e dados perdidos. Como eu poderia simplesmente aumentar a partição sem perder nenhum arquivo?

Nota: Estou falando de uma partição de dados não montada sem o LVM e tenho backups, mas gostaria de evitar gastar algum tempo com a recuperação.

    
por mimipc 21.05.2013 / 09:49

7 respostas

32

Você deve começar com a partição desmontada. Se você não pode desmontá-lo (por exemplo, é a sua partição raiz ou qualquer outra coisa que o sistema precisa executar), use algo como CD de Recuperação do Sistema .

  1. Execute parted ou gparted se preferir uma GUI e redimensione a partição para usar o espaço extra. Eu prefiro gparted , pois ele oferece uma boa representação gráfica, muito semelhante àquela que você desenhou em sua pergunta.

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (apenas para descobrir se você está no lado seguro)

  4. Remonte sua partição.

Embora nunca tenha visto esta falha, primeiro faça backup de seus dados!

    
por 21.05.2013 / 10:03
14

Sim, você pode aumentar o EXT4 fs on-line se a partição já estiver classificada. Você tem partição ordenada? Você tem LVM?

sudo resize2fs /dev/drive_to_grow

fdisk irá redimensionar sua partição, true, mas se for uma partição raiz (ou se for alguma partição montada) ela terá que ser desmontada primeiro. Tão offline, provavelmente!

Como com qualquer coisa relacionada a operações de disco / fs, recomendo strongmente que você tenha um processo de recuperação de backup e testado e bem compreendido.

    
por 21.05.2013 / 10:01
4

Note que em alguns servidores VDS você pode ter uma partição raiz não primária e precisar redimensionar primeiro o contêiner de partição estendida

Por exemplo, você acabou de atualizar seu plano e ter algo como:

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

Aqui / dev / vda2 - é o seu contêiner estendido. E / dev / vda5 - partição principal que precisamos redimensionar para o espaço total disponível.

A maneira mais simples:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space
    
por 26.02.2017 / 23:53
3

O Parted não funciona no ext4 no Centos. Eu tive que usar o fdisk para excluir e recriar a partição, que (eu validei) funciona sem perder dados. Eu segui os passos no link . Aqui estão eles, em poucas palavras:

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w
    
por 05.12.2014 / 23:27
2

parted podem resize partições e seus sistemas de arquivos.

    
por 21.05.2013 / 09:55
2

Você pode usar fdisk ou cfdisk para modificar (ou recriar) a partição (apenas certifique-se de não alterar seu limite de início), depois reinicializar e resize2fs . Mas, em geral, é preferível usar o LVM-2 em vez do MBR / GPT, pois permite que você faça essas alterações sem reinicializar o kernel.

    
por 21.05.2013 / 10:00
0

Só para esclarecer como faço isso para qualquer um que ainda esteja lendo este tópico.
Se é a partição de inicialização que você deseja redimensionar, então você deve inicializar a partir de uma unidade bootcd ou bootusb "rescue", que é apenas um Live Linux. Isso permite que você execute o Linux na máquina diferente da unidade na qual deseja fazer alterações.

Acho que o melhor cd ou usb de "resgate", neste caso, seria um USB ou CD gparted inicializável. Casos em que você precisa de uma imagem de resgate
1. A partição a ser expandida é a última partição, mas você inicializa a partir dela e não pode desmontá-la.
sda1 = boot (ou swap)
sda2 = swap (ou boot)
sda3 = /
Espaço não utilizado

  1. Se a partição a ser expandida NÃO for a última partição, você deverá usar a imagem de inicialização do gparted para mover ou redimensionar as partições. sda1 = boot
    sda2 = / (a partição a ser expandida não é a última)
    sda3 = swap
    espaço não utilizado

Se você quiser alterar uma partição montada que não seja a partição "raiz" (/), como / home, que é uma partição diferente, não há necessidade de usar uma imagem de recuperação. Isto é especialmente verdade se for a última partição.
sda1 = boot
sda2 = /
sda3 = / home
espaço não utilizado
-ou-
sda1 = /
sda2 = / home
espaço não utilizado

Esta é a situação que tenho quando tiro uma imagem de uma unidade menor ou SSD e a movo para um SSD maior.

Nesse caso, você só precisa desmontar / home enquanto o estende. Mas para desmontar / home, você precisa ter certeza de que não está logado em nenhuma conta de usuário cujo diretório pessoal esteja dentro dela. Como o diretório pessoal do usuário "root" está diretamente sob a raiz do sistema / as in / root, se você pode logar em root, você pode desmontar / home

Eu faço o logout de uma sessão de GUI (KDE / Gnome / etc) e uso [CTRL] + [ALT] + [F1] para abrir uma sessão de shell.
Se você acabou de efetuar logout de um login do usuário, pode demorar de 20 a 30 segundos para o Linux concluir o fechamento de qualquer arquivo, portanto, você pode obter erros ao tentar desmontar / home.
1. umount / home (eu repito este comando se ele falhar por até 30 segundos, depois vá ver outras sessões para ver se estou "cd / home / xxx" em algum lugar).
2. parted / dev / sda
   uma. redimensionar x (x = partição que você deseja redimensionar, use "p" para obter uma lista de partições)
   b. Insira o último setor de resize="-1" (menos 1 significa 1 setor do final do disco)
   c. q (sai dividido)
3 resize2fs / dev / sda "x" (x = partição a ser redimensionada. Isso também remonta o sistema de arquivos)
4. df -m (eu verifico / home para verificá-lo redimensionado)
Eu nunca perdi arquivos ou corrompi a unidade usando esse método.

Boa sorte

    
por 05.12.2015 / 04:20