it:server:resize-partition

Resize partition

Potřeboval jsem rozšířit disk na serveru. Server mám virtuální u Nethost. Jakmile mi přidali volného místa na disku, potřeboval jsem v operačním systému zvětšit partitionu. Samozřejmě jsem to potřeboval za běhu a bez ztráty dat.

V mém případě mám disk /dev/sda a partitionu /dev/sda1.

Po konzultaci s Nethostem jsem použil následující řešení:

root@server:~# parted /dev/sda                                                                        
(parted) unit s                                                                                       
(parted) print free                                                                                   
Model: QEMU nhhdd1419000 (scsi)                                                                       
Disk /dev/sda: 117194752s                                                                             
Sector size (logical/physical): 512B/512B                                                             
Partition Table: msdos                                                                                
Disk Flags:                                                                                           
 
Number  Start      End         Size       Type     File system  Flags                                 
        2s         2047s       2046s               Free Space                                         
 1      2048s      97654783s   97652736s  primary  ext4         boot                                  
        97654784s  117194751s  19539968s           Free Space                                         
 
(parted) resizepart 1 117194751                                                                       
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?                        
Yes/No? Yes                                                                                           
(parted) quit                                                                                         
Information: You may need to update /etc/fstab.                                                       
 
root@server:~# resize2fs /dev/sda1                                                                    
resize2fs 1.46.2 (28-Feb-2021)                                                                        
Filesystem at /dev/sda1 is mounted on /; on-line resizing required                                    
old_desc_blocks = 6, new_desc_blocks = 7                                                              
The filesystem on /dev/sda1 is now 14649088 (4k) blocks long.

Rozšíření disku se tedy skládal ze 2 částí. První část je použití programu parted a druhá část příkaz resize2fs. Postup použití parted vypadá takto.

parted /dev/sda
unit s
print free // toto Vám vypíše počáteční a koncový sektor vaší partition, a poté počáteční a koncový sektor volného místa na disku
resizepart 1 KONCOVY_SEKTOR // koncový sektor který u volného místa vidíte jako konec / end (můžete zadat s jednotkou s, nebo bez, nehraje roli)
pokud dostanete hlášku, že partition je použivaná, pokračujte s YES
quit

Situace je taková, že jsem špatně odhadl situaci a špatně rozdělil SD kartu na Raspberry Pi. Oddíl sda2 jsem nastavil na 16 GB a šifrovaný oddíl (LUKS) sda3 zbytek. Na disku sda2 mi začalo docházet místo a potřeboval jsem přesunout 8 GB z sda3 na sda2.

Nakonec jsem se rozhodl řešit to přes grafický program GParted. Jako první jsem připojil SD kartu k druhému počítači, odmountoval disky, zkontroloval pomocí fsck a přešel do programu GParted.

Označil jsem zašifrovaný oddíl a musel jsem ho dešifrovat. Poté bylo možné provést resize šifrovaného oddílu. Spustil jsem proces resize.

Při resize se na konci vytvoří nové místo, které potřebuji alokovat k disku sda2.

Tady je ovšem problém. Místo je na konci a potřebuji ho přesunou na začátek disku sda3. Tedy mezi sda2 a sda3.

Dalším krokem tedy bylo zavřít šifrování a pak mi GParted dovolil při resize sda3 dát volné místo před tento oddíl, místo za.

Následující varovnou hlášku jsem potvrdil, protože z disku sda3 se operační systém nezavádí, tak mě to netrápí.

Tady je vidět, jak by mělo volné místo vypadat po provedení operace.

Tato část kopírování bude opravdu časově náročná. Bude trvat několik hodin, protože se musí překopírovat velké množství dat z místa na místo.

Jako poslední krok jsem dal resize sda2 a zvětšil jsem ji o uvolněné místo z předchozího kroku.

  • it/server/resize-partition.txt
  • Poslední úprava: 2023/06/08 22:05
  • autor: Petr Nosek