GNU/Linux >> Znalost Linux >  >> Linux

Jak zmenšit fyzický objem?

Mám fyzický svazek na oddílu, který se táhne přes celý disk, řekněme /dev/sda1 pomocí 100% /dev/sda. Nyní jej musím zmenšit, aby vytvořil /dev/sda2. Logický svazek ve skutečnosti využívá ~50 % PV, takže teoreticky je k dispozici spousta místa, ale vše je alokováno v rámci jednoho PV. Existuje bezpečný způsob, jak zmenšit fyzický svazek (a základní diskový oddíl), aby se vytvořilo místo navíc pro druhý oddíl? Bohužel moje konfigurace vylučuje možnost dočasně přesunout fyzický svazek na jiné zařízení.

Samozřejmě vím, že to mohu udělat na úrovni souborů (jako je záloha obsahu, přerozdělení disku a opětovné vytvoření konfigurace LVM), ale raději bych tuto práci provedl bez nutnosti konfigurovat LV od začátku.

Předem děkuji.

Přijatá odpověď:

Pokud potřebujete pouze jiný samostatný souborový systém, nemusíte vytvářet nový oddíl:můžete vytvořit další logický svazek LVM v rámci stávající skupiny svazků pomocí nepřiděleného místa v PV. Pokud ale konkrétně potřebujete nový oddíl , pak musíte udělat, jak jste původně plánovali.

GParted je nástroj GUI, který za vás může provést celou operaci změny velikosti PV + oddílu. S největší pravděpodobností jej najdete ve sbírce balíčků vaší distribuce.

Ale pokud jej z nějakého důvodu nemůžete nebo nechcete použít, čtěte dále...

Zmenšení fyzického svazku LVM, který má v sobě nepřidělené místo, je docela jednoduché. Chcete-li například snížit velikost /dev/sda1 na 40 GiB:

# pvresize --setphysicalvolumesize 40G /dev/sda1

Tento příkaz je bezpečný, protože odmítne provést cokoli, pokud část PV, kterou by odřízl, obsahuje přidělené oblasti.

Ale to je jen první krok. Druhým krokem bude zmenšení velikosti samotného oddílu.

Pro jistotu se doporučuje zpočátku zmenšit PV o něco více, než plánujete skutečně zmenšit oddíl, takže po zmenšení oddílu můžete explicitně rozšířit PV tak, aby pokryl celou velikost oddílu. Pokud se operace rozšíření nezdaří, budete okamžitě vědět, že se něco pokazilo při změně velikosti oddílu, a nezanecháte skryté chyby, které by vás nebo někoho jiného v budoucnu uvěznily.

Oddíl můžete zmenšit pomocí obyčejného linuxového fdisk příkaz, ale musíte mít na paměti několik věcí:

  • Při použití fdisk Chcete-li změnit velikost oddílu, nastavte jej tak, aby zobrazoval všechny velikosti oddílů a počáteční umístění v sektorech za prvé. Během historie Linuxu fdisk , jeho chování se zde liší:moderní verze to dělají ve výchozím nastavení, starší verze mohou potřebovat -u nebo -u=sectors možnost to udělat.
  • Při změně velikosti existujícího oddílu nemůžete přesunout počáteční bod oddílu. (Pokud přesunete počáteční bod, nebude to již jednoduchá operace změny velikosti, ale složitější operace přesunutí oddílu.)
Související:Macos – Jak automaticky připojit svazek TrueCrypt na OSX po přihlášení pomocí hesla/souboru klíče?

Při použití fdisk , veškeré změny se zapisují na disk pouze při použití w příkaz. Navrhoval bych tedy postupovat takto:

  • použijte sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump k zálohování stávající tabulky oddílů.
  • spusťte fdisk /dev/sda v interaktivním režimu
  • použijte p k zobrazení aktuální tabulky oddílů a ověření, že hodnoty „start“ a „end“ jsou zobrazeny jako sektory. Poznamenejte si „počáteční“ hodnotu.
  • použijte d příkaz k odstranění aktuální položky oddílu pro sda1 .
  • použijte n příkaz k opětovnému vytvoření položky primárního oddílu 1 pro sda1 v požadované velikosti, přičemž dávejte pozor, abyste specifikovali umístění prvního sektoru přesně tak, jak bylo (tj. stejné číslo, jaké bylo zobrazeno v „počáteční“ hodnotě p příkaz).
  • použijte t příkaz k nastavení typu oddílu 1 na „Linux LVM“.
  • překontrolujte svou práci
  • použijte w příkaz k zápisu aktualizované tabulky oddílů a ukončení fdisk .

Věnujte pozornost zprávě zobrazené fdisk na konci. Pokud to říká „Jádro stále používá starou tabulku“, něco blokuje online aktualizaci tabulky oddílů. Můžete zkusit partprobe /dev/sda říct jádru, aby znovu přečetlo tabulku oddílů (s použitím novějšího rozhraní než některé starší verze fdisk použít, takže by to mohlo pomoci a určitě neuškodí) a pak se podívejte na cat /proc/partitions abyste zjistili, zda je oddíl nyní jádrem rozpoznán v očekávané velikosti.

Pokud je změna velikosti oddílu úspěšná, můžete nyní spustit pvresize /dev/sda1 . Pokud jste se řídili mými radami a původně jste změnili velikost PV o něco menší, než je požadovaná nová velikost oddílu, mělo by to nyní úspěšně o něco rozšířit PV, aby automaticky plně pokrylo změněnou velikost. Pokud tento příkaz hlásí chybu, pravděpodobně jste udělali chybu při zadávání nové velikosti a měli byste použít sfdisk /dev/sda < /safe/location/partition_table_backup.dump obnovte tabulku oddílů do původního stavu a poté to zkuste znovu.

(Na velmi starých systémech možná budete muset deaktivovat VG před spuštěním partprobe nebo dokonce restartujte, aby systém mohl znovu přečíst aktualizovanou tabulku oddílů.)

Jakmile je operace změny velikosti dokončena, můžete nyní použít fdisk znovu pro vytvoření druhého oddílu, který potřebujete. Ano, můžete to také udělat společně při změně velikosti oddílu, ale dělat pouze jednu věc najednou je bezpečnější a zajistí, že v případě potřeby budete moci snadno vrátit změny.


Linux
  1. Jak vytvořit souborový systém na linuxovém oddílu nebo logickém svazku

  2. Jak rozdělit disk v Linuxu

  3. Jak zálohovat nebo klonovat oddíly Linuxu pomocí příkazu „cat“.

  1. Jak vytvořit fyzický svazek v Linuxu pomocí LVM

  2. Jak vytvořit oddíl LVM/fyzický objem> 2 TB?

  3. Jak odstranit oddíl pomocí fdisk

  1. Lum – Jak rozšířit oddíl o Lvm a obsažený fyzický svazek a logický svazek?

  2. RHEL / CentOS :Jak zmenšit objem LVM

  3. CentOS / RHEL :Jak změnit velikost (rozšířit) existující fyzický objem (PV)