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 umaddrescue
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 pacoteparted
na maioria das distribuições Linux. - O
fdisk
, ,mkswap
,swapon
eresize2fs
. 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