Um sistema Linux é desenvolvido para ter apenas uma repartição do sistema, que é /dev/vda
. Porém, se o comando fdisk
for utilizado, é possível ver que o disco está dividido em duas partições. A primeira, /dev/vda1
, é a partição normal do sistema e a segunda, /dev/vda2
, está configurada como um 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 total de espaço na máquina é de 50GB. 46GB são configurados para utilização, e 4GB para troca. Mas se a quantidade de GBs não for suficiente, é possível aumenta-lá sem a necessidade de uma reinicialização do sistema. Mas como isso é possível?
Requerimentos
- Um servidor Linux que tenha sido criado com ProfitBricks
- Acesso ao servidor através de SSH
- O comando
partprobe
. Também pode ser instalado comoparted
na maioria dos sistemas Linux. - Os comandos
fdisk
,swapoff
,mkswap
,swapon
eresize2fs
. - Um backup do sistema no qual você está trabalhando, só por segurança.
Espaço Adicional
Para aumentar o tamanho do seu hard drive, vá até o Data Center Designer (DCD) e aprimore seu drive.
Depois de inserir a quantidade de espaço desejada, clique em "provisioning". Após alguns minutos, seu hard drive estará maior.
Então, é necessário desativar o espaço de troca por alguns minutos. Isso pode ser feito através do comando:
root@debian:~# swapoff -a
Uma vez que o espaço de troca estiver desabilitado, será possível reconfigurar a partição através do comando fdisk
. Digite fdisk /dev/vda
e então insira o comando d
para deletar as duas partições, como no 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.
Em seguida, você deverá recriar as partições. No exemplo, anteriormente havia 4GB de espaço de troca, então é necessário que pelo menos essa quantidade seja inserida na segunda partição.
A primeira partição /dev/vda1
deve ser recriada primeiro. Pressione n para criar uma nova partição e em seguida, p. Pressione Enter para aceitar o valor de 2048 que é equivalente a 96GB. O valor exato que temos subtraindo os 4GB de troca dos 100GB de espaço de disco.
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, a partição de troca deverá ser recriada em um processo similar. Pressione n e depois p para criar uma nova partição. Em seguida, pressione Enter para aceitar o valor automático de 4GB da segunda partição.
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.
Como a segunda partição é usada como espaço de troca, é necessário alterar seu tipo. Use o comando fdisk
. Pressione t e então 2 para selecionar a segunda partição. Caso queria ver uma lista de todos os tipos de partição, pressione L. Caso contrário, digite 82 para selecionar o tipo "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
então irá informar que houve uma troca no tipo de partição.
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Depois disso, salve tudo utilizando o comando w
.
Command (m for help): w
Você receberá uma mensagem como essa:
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).
Dispensando a reinicialização, use o comando partprobe
:
root@debian:~# partprobe
Agora, será necessário redimensionar /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 arquivo /dev/vda1
agora terá 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
E então, edite /etc/fstab
e substitua o antigo UUID pelo novo, com o comando mkswap
. Na linha "mount point" verifique a opção "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, ative a troca novamente com /etc/fstab
.
root@debian:~# swapon -a
Verificando
É possível verificar a nova distribuição digitando df
oufdisk
.
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 é possível confirmar se o servidor não foi reiniciado com o comando uptime
:
$ uptime
23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05