Qual é a maneira mais fácil de redimensionar uma partição ext4 (ou qualquer tipo de partição dependendo do método) a partir da linha de comando (potencialmente com o menor número de comandos, mas também o mais fácil de entender)?

Usar uma ferramenta como o Gparted é obviamente fácil em uma GUI, mas e na linha de comando? Acho que as GUIs baseadas em texto também podem contar para a resposta, já que ” s tecnicamente ainda está na linha de comando. Só precisa ser fácil.

Por partição, quero dizer uma partição simples em um único disco de um computador pessoal (por exemplo, em um laptop). Por exemplo, desejo redimensionar /dev/sda4. Não há RAIDs, não há mais de uma unidade de disco, não há nada complicado aqui. Apenas uma partição simples em um único disco (/ dev / sdaX em / dev / sda).

Comentários

  • Você provavelmente sabe disso, mas o Gparted é uma interface gráfica do usuário para o GNU Parted. Antes do Parted 2.4, você podia redimensionar, mas já foi removido. Suspeito que a única maneira é fazer isso manualmente, redimensionando a tabela de partição, criando mapas de dispositivos e, em seguida, redimensionando o sistema de arquivos.
  • Você viu isso artigo sobre redimensionamento de partições?
  • Não ‘ não vi aquele específico, mas o ponto principal é que você exclui a partição e cria uma nova o tamanho que você deseja. Mas o que eu ‘ m inerentemente fazendo não é ” excluir ” qualquer coisa, apenas redimensionando. A melhor resposta a esta pergunta provavelmente seria uma maneira de ” redimensionar ” uma partição, não apague uma e crie uma nova, e os passos de resize2fs seriam totalmente desnecessários e aconteceriam em segundo plano (porque naturalmente e obviamente o usuário também quer usar todo o espaço na partição portanto, não deve ‘ ser uma etapa extra).

Resposta

Você pode usar fdisk para alterar sua tabela de partição durante a execução. Consulte este link http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/

Comentários

  • Você deve colocar as informações relevantes do link, em sua resposta, por causa do link rot. Além disso, o wordpress.com está bloqueado onde eu moro (China), então posso ‘ nem mesmo ver a ” resposta “.
  • @Thushi, saída de fdisk -l paste.ubuntu. com / 24757891 . Quero mesclar sda5 e sda6 como sda6. Isso danifica meus dados?
  • fdisk não parece levar em consideração dados usados / gratuitos – o que poderia levar a uma possível perda de dados (no meu entendimento). Não ‘ acho que não deveria ser listado como uma forma ” fácil ” neste caso.

Resposta

Se você for aumentar o tamanho da partição e do sistema de arquivos , então primeiro execute fdisk para aumentar o tamanho da partição e, em seguida, execute resize2fs para aumentar o tamanho do sistema de arquivos.

Se você for diminuir o tamanho de ambos, execute resize2fs primeiro e, em seguida, execute fdisk.

Resposta

gparted usa resize2fs para mude o tamanho da partição. Não leva muitos argumentos. Abaixo estão os que achei úteis.

-M diminui para o tamanho mínimo do sistema de arquivos.

-p mostra um indicador de porcentagem.

-P imprime o tamanho mínimo do sistema de arquivos e sai.

Comentários

  • resize2fs não ‘ não altera a tabela de partição, ele muda o tamanho de um sistema de arquivos . Depois de usá-lo, você ‘ terá que redimensionar a partição em que o sistema de arquivos estava de acordo.

Resposta

Um método programável, assumindo que há espaço livre diretamente após a partição a ser redimensionada:

echo "- +" | sfdisk -N <partnum> /dev/sdX 

… seguido por resize2fs /dev/sdX<partnum>.

O - diz ao sfdisk para reutilizar o setor start existente e o + diz para fazer o o maior possível com o espaço disponível.

Comentários

  • Embora estranhamente assustador, fez exatamente o que eu queria depois dd -ing sobre um sistema de arquivos de uma ddrescue imagem para uma nova unidade que passou a ser maior. Obrigada.

Resposta

Estou respondendo caso você tenha uma situação semelhante à minha. Tive que redimensionar o FileSystem (Ext4) em um disco dinâmico rodando Ubuntu 18.0.4 LTS como Convidado. Consegui redimensionar o disco do Host e depois redimensionar o FileSystem.

Não foi possível executar os comandos usuais. Por exemplo:

$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do! 

e fdisk era bastante complicado, provavelmente também tive que executar um LiveCD para trabalhar no disco não montado.

Esses dois comandos resolveram meu problema de forma fácil e rápida:

$ growpart /dev/sda 2 CHANGED: partition=2 start=4096 old: size=105441280 end=105445376 new: size=409595871,end=409599967 $ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) Filesystem at /dev/sda2 is mounted on /; on-line resizing required old_desc_blocks = 7, new_desc_blocks = 25 The filesystem on /dev/sda2 is now 51199483 (4k) blocks long. 

Observação: 2 no primeiro comando, que indica o número da partição no dispositivo /dev/sda.

Resposta

Redimensionar uma partição raiz do Linux sem reinicializar

Introdução

Um servidor Linux típico implantado a partir de uma imagem fornecida pela ProfitBricks tem um único volume de armazenamento, /dev/vda. Se observarmos isso usando fdisk, veremos que o disco está dividido em duas partições. O primeiro, /dev/vda1, é a partição de inicialização onde reside o sistema operacional. A segunda partição, /dev/vda2, é configurada como espaço de troca.

root@debian:~# fdisk -l /dev/vda 

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0041f8a8

Device Boot Start End Sectors Size Id Type /dev/vda1 2048 96471039 96468992 46G 83 Linux /dev/vda2 96471040 104857599 8386560 4G 82 Linux swap / Solaris

No exemplo acima , o volume total de 50 GB de armazenamento é dividido em 46 GB de espaço útil e 4 GB para troca. E se, após o provisionamento, descobrirmos que 46 GB de espaço em disco não é suficiente, mas preferirmos não adicionar um volume de armazenamento adicional? O objetivo é aumentar a quantidade de espaço em disco disponível no sistema de arquivos raiz. Isso pode ser feito com o mínimo de interrupção. Nós não precisamos reiniciar o servidor!

Requisitos

  • Um servidor Linux criado a partir de uma imagem fornecida pela ProfitBricks.
  • SSH ou acesso ao console (via DCD ) para o servidor Linux.
  • O comando partprobe. Pode ser instalado a partir do pacote parted na maioria das distribuições Linux.
  • O fdisk, , mkswap, swapon e resize2fs. Provavelmente disponível por padrão.
  • Um instantâneo atual ou outro backup do sistema em que você está trabalhando. Apenas por segurança!

Provisão de espaço adicional

Para aumentar o tamanho do disco rígido, vá para o DCD (Data Center Designer) e atualize o disco.

Depois de aumentar a quantidade de espaço do disco, clique em ” provisioning “para processar a mudança. Demora cerca de um minuto e seu disco rígido fica maior.

Precisamos desligar a troca – então certifique-se de que você pode viver alguns minutos sem espaço de troca:

root@debian:~# swapoff -a 

Uma vez que a troca foi desabilitada, precisamos reconfigurar as partições usando fdisk:

Iremos deletar as duas partições existentes primeiro . Executamos fdisk /dev/vda e, em seguida, usamos o comando d para excluir a partição 2 e, em seguida, excluir a partição 1. Siga o exemplo abaixo:

root@debian:~# fdisk /dev/vda 

Command (m for help): d Partition number (1,2, default 2):

Partition 2 has been deleted.

Command (m for help): d Selected partition 1 Partition 1 has been deleted.

Agora recriaremos nossas partições. No exemplo, temos 4 GB de espaço de troca. Portanto, precisamos manter pelo menos esse espaço disponível para a nova partição de troca.

Recrie /dev/vda1 primeiro. Pressione n para criar uma nova partição. Digite p para criar uma partição primária. Podemos pressionar Enter para aceitar o valor padrão de 2048 para o primeiro setor. Em seguida, insira um tamanho para a partição. Você pode inserir um valor em GB, portanto, se aumentarmos o disco para 100 GB, subtrairemos nossos 4 GB para troca e inseriremos + 96G para 96 GB.

Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): +96G 

Created a new partition 1 of type "Linux" and of size 96 GiB.

Agora, recriaremos a partição swap seguindo um processo similar. Pressione n e, em seguida, p para criar uma nova partição primária. Pressione Digite para aceitar o valor padrão para “Primeiro setor”. Também podemos pressionar Enter novamente para aceitar o valor padrão para “Último setor”.

Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (201328640-209715199, default 201328640): Last sector, +sectors or +size{K,M,G,T,P} (201328640-209715199, default 209715199): 

Created a new partition 2 of type "Linux" and of size 4 GiB.

Visto que esta segunda partição será usada para espaço de troca, precisamos alterar o tipo de partição. Isso pode ser feito pressionando t no prompt fdisk. Em seguida, pressionamos 2 para selecionar a segunda partição.Se você quiser ver a lista de tipos de partição disponíveis, pressione L , caso contrário, digite 82 para selecionar “Linux swap / Solaris”.

Command (m for help): t Partition number (1,2, default 2): 2 Partition type (type L to list all types): L 

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs f W95 Ext"d (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT 10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto 1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep 1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT Partition type (type L to list all types): 82

fdisk nos informa, de forma útil, que mudamos o tipo de partição com a mensagem:

Changed type of partition "Linux" to "Linux swap / Solaris". 

Depois disso, salvamos usando o w comando e são retornados a um prompt de shell:

Command (m for help): w 

Você pode receber uma mensagem como esta antes do shell prompt:

The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy 

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

Vamos esquecer a reinicialização e, em vez disso, contar ao kernel sobre as novas partições usando partprobe :

root@debian:~# partprobe 

Devemos retornar ao prompt do shell sem saída de partprobe.

Agora precisamos redimensionar nosso sistema de arquivos em /dev/vda1:

root@debian:~# resize2fs /dev/vda1 resize2fs 1.42.12 (29-Aug-2014) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 

O sistema de arquivos em em /dev/vda1 agora tem 25165824 (4k) blocos.

Inicialize o novo local de troca de /dev/vda2:

root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2 

Por fim, editamos /etc/fstab e substituímos o UUID antigo pelo novo retornado na saída de mkswap comando. A linha a ser alterada não tem valor para “ponto de montagem” e tem “tipo” definido como swap .

# /etc/fstab: static file system information. # # Use "blkid" to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> UUID=332f8fb5-ff1f-4297-b512-f2c93a277296 / ext4 errors=remount-ro 0 1 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 UUID=c55c25a2-a386-4653-8455-4d9030586dd2 none swap sw 0 0 

Depois de editar /etc/fstab, precisamos ativar a troca novamente:

root@debian:~# swapon -a 

Verificar

Podemos verificar o novo tamanho de disco maior utilizando df e / ou fdisk.

Device Boot Start End Sectors Size Id Type /dev/vda1 2048 201328639 201326592 96G 83 Linux /dev/vda2 201328640 209715199 8386560 4G 82 Linux swap / Solaris 

Também podemos confirmar que o o servidor não foi reiniciado observando a saída de uptime:

$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05 

Resumo

Temos aumentou com sucesso a quantidade de espaço em disco disponível em nosso servidor Linux.

Referência

https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

OU

https: //web.archive .org / web / 20201113021238 / https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *