Nejbezpečnější způsob, jak toho dosáhnout, je zavést systém pomocí nouzového média (živé CD nebo podobně) a použít GParted, který změní velikost oddílu i souborového systému, který obsahuje. To však bude fungovat pouze v případě, že oddíl není aktuálně používán.
Pokud si však nemůžete dovolit žádné prostoje, můžete zkusit použít gdisk
místo parted
. Budete muset odstranit oddíl, jehož velikost chcete změnit, a vytvořit na jeho místě nový se stejným počátečním bodem, podobně jako byste to udělali s fdisk
. gdisk
je ochoten pracovat na používaném disku, ačkoli jádro nemusí registrovat žádné změny. V takovém případě možná budete muset použít partprobe
nebo kpartx
přimět jádro, aby přijalo novou tabulku oddílů, nebo dokonce restartovat počítač, pokud to nefunguje. (Vše by mělo být velmi podobné použití fdisk
.)
To obvykle funguje pouze s novějšími distribucemi Linuxu. Potřebné nástroje:
- partprobe (obvykle část parted)
- gdisk / sgdisk
Oddíl GPT ukládá záhlaví zálohy na konec disku. Pokud jste změnili velikost základního zařízení, bude záhlaví zálohy někde uprostřed. Prvním krokem je přesunout hlavičku oddílu na konec disku.
Za předpokladu, že disk je /dev/sda a oddíl je /dev/sda3 (musí to být také poslední oddíl):
sgdisk -e /dev/sda
Poté smažte poslední oddíl a znovu jej vytvořte:
sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda
Obvykle uvidíte zprávu oznamující, že jádro není schopno znovu načíst tabulku oddílů. Musíte spustit partprobe, aby byl oddíl zaregistrován s novou velikostí:
partprobe /dev/sda
Pokud se to nezdaří, budete muset restartovat virtuální počítač. Poté můžete svůj souborový systém rozšířit pomocí vhodného nástroje pro ext4 atd.:
resize2fs /dev/sda3
Pozor :spuštění sgdisku může být destruktivní. Ujistěte se, že máte zavedeny správné postupy zálohování.
Zde je příklad, který automatický nástroj používá ke změně velikosti oddílu online v jednom spuštění:
sgdisk -d 1 -n 1:2048:0 -c 1:-u1:E485F29F-A1F4-4953-9DD8-799EAEA0119B -t 1:0700 /dev/xvda
Zde je seznam možností příkazu sgdisk:
- -d 1 odstranit první oddíl
- -n 1:2048:0 říká vytvořit nový oddíl „číslo 1“ se začínajícím sektorem 2048. Koncový sektor =„0“, což znamená „využít veškerý dostupný prostor pro tento oddíl
- -u nastaví jedinečné guid pro daný oddíl (toto je specifické pro oddíly GPT); můžete použít 'R' pro nastavení GUID na náhodnou hodnotu. Aktuální ID oddílů můžete také získat pomocí
gdisk /dev/xvda; p
výstup pro opětovné použití stejného uid - -t 1:0700 v podstatě znamená, že první oddíl má typový kód '0700'.
/dev/xvda byl disk, který jsme přerozdělili.
Okamžitě se tedy smaže a na svém místě vytvoří nový oddíl.
PS. Několik poznámek k typovému kódu '0700'. Od muže SGDISK(8)
-t, --typecode=partnum:{hexcode|GUID} Change a single partition's type code. You enter the type code using either a two-byte hexadecimal number, as
popsané výše nebo plně specifikovaná hodnota GUID, jako je EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
Nejlepší vysvětlení toho, co '0700' znamená, najdete zde - http://www.rodsbooks.com/gdisk/walkthrough.html
"Ale počkej," říkáš, "myslel jsem, že ten disk má oddíl FAT!" Opravdu ano. Windows používá jeden kód GUID pro všechny své datové oddíly, ať už FAT nebo NTFS. V minulosti byl stejný kód použit v Linuxu pro jeho datové oddíly. (Více o tom brzy....) V tomto případě je tedy několik různých kódů MBR přeloženo do jediného kódu GPT GUID. GPT fdisk používá, poněkud svévolně, kód 0x0700 (nebo přesněji EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) pro všechny z nich.
V mém případě se domnívám, že to byl oddíl Linux ext4, ale typový kód oddílu neznamená typ souborového systému, takže '0700' vypadá spíše jako typ catchall pro sgdisk. Alespoň v případech, které jsem viděl.
PPS. Možná budete muset spustit partprobe
aby si jádro uvědomilo změnu rozdělení bez restartu systému.