Hvordan kan jeg øke størrelsen på rotpartisjonen til et system under kjøring?
Jeg har en partisjon som ikke er tildelt etter rotpartisjonen (som også er ext4), hvordan kan jeg legge til den ikke-tildelte plassen til plassen som er tildelt rotpartisjonen uten å måtte slå av serveren?
GUI (Ubuntu 14.04 og nyere): GParted v0.17 og senere gir en fin GUI for dette. (Eldre versjoner vil nekte å endre størrelsen på en montert partisjon).
Kommandolinje (hvilken som helst Ubuntu-versjon): . Det er tre trinn til dette.
Trinn 1.. Partisjonen må først endres i størrelse. Hvis du bruker LVM, er det enkelt, og du vet antagelig hvordan du går frem. Hvis du bruker klassiske partisjoner, er det litt mer komplisert, og kan kreve en omstart (selv om du aldri trenger å starte et annet system eller en live-CD).
Dette er hvordan jeg gjør det: Bruk fdisk
for å først slette partisjonen (ideen er at dataene på disken vil bli bevart), og deretter gjenskape den forsiktig med en større størrelse på samme posisjon.
Eksempel:
$ sudo fdisk /dev/sda
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 9437183 4717568 83 Linux
Command (m for help): d
Selected partition 1
Command (m for help): p
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 2048 10485759 5241856 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 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)
Syncing disks.
Igjen er det viktig at den nye partisjonen starter på samme blokk som den gamle. Id-en skal også stemme overens (83 for Linux-systemer). Vær forberedt på å miste alle dataene dine ved den minste skrivefeil.
For å være på den sikre siden kan du også gjenopprette oppstartsflagget (som ifølge Wikipedia fortsatt er nødvendig på noen datamaskiner) ved å trykke på a
.
Se kommentarseksjonen for hva du skal gjøre hvis byttepartisjonen din er i veien.
Nå bør det være tydelig hvorfor folk anbefaler å bruke en live-CD ;-)
Trinn 2.
Som fdisk
minner deg hjelpsomt om, må du laste inn partisjonstabellen på nytt før du fortsetter. Den sikreste måten er å bare starte på nytt; men du kan også bruke partprobe
eller kpartx
(mer informasjon).
Trinn 3..
Når partisjonen er endret i størrelse og partisjonstabellen er lastet inn på nytt, er det et enkelt spørsmål om å kjøre resize2fs
på filsystemet, og du kan gjøre dette selv når det er montert som rotpartisjonen.
Eksempel:
$ sudo resize2fs /dev/sda1
Det er mulig å gjøre en online størrelse på et ext4-filsystem, selv om det er rotpartisjonen din. Bruk kommandoen resize2fs
.
sudo resize2fs /dev/sda1
EDIT: Online krymping er ikke tillatt:
root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported
Du kan også bare bruke GParted - så lenge partisjonen du endrer størrelse ikke er den du startet fra - ellers foreslår jeg at live CD -alternativet er noe enklere for nybegynnere.
GParted gjør i utgangspunktet alle trinnene - bare basert på en GUI-front.