Vyhledávání na webu

10 příkazů fdisk pro správu diskových oddílů Linuxu


Zkratka fdisk (pro „pevný disk nebo formátový disk“) je nejběžněji používaný nástroj pro manipulaci s diskem z příkazového řádku pro Linux/Unixy. Pomocí příkazu fdisk můžete prohlížet, vytvářet, měnit velikost, mazat, měnit, kopírovat a přesouvat oddíly na pevném disku pomocí vlastního uživatelsky přívětivého textového rozhraní řízeného menu.

Tento nástroj je velmi užitečný, pokud jde o vytváření prostoru pro nové diskové oddíly, organizaci prostoru pro nové disky, reorganizaci starých disků a kopírování nebo přesouvání dat na nové disky. Umožňuje vám vytvořit maximálně čtyři nové primární oddíly a počet logických (rozšířených) oddílů na základě velikosti pevného disku, který máte v systému.

Tento článek vysvětluje 10 základních příkazů fdisk pro správu tabulky oddílů v systémech založených na Linuxu. Abyste mohli spustit příkaz fdisk, musíte být root, jinak se zobrazí chyba „příkaz nenalezen“.

1. Zobrazit všechny diskové oddíly v Linuxu

Následující základní příkaz vypíše všechny existující diskové oddíly ve vašem systému. Argument „-l“ (výpis všech oddílů) se používá s příkazem fdisk k zobrazení všech dostupných oddílů v systému Linux. Oddíly jsou zobrazeny podle názvů jejich zařízení. Například: /dev/sda, /dev/sdb nebo /dev/sdc.

[[email  ~]# fdisk -l

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

2. Zobrazit konkrétní diskový oddíl v Linuxu

Chcete-li zobrazit všechny oddíly konkrétního pevného disku, použijte volbu „-l“ s názvem zařízení. Například následující příkaz zobrazí všechny diskové oddíly zařízení /dev/sda. Pokud máte různé názvy zařízení, jednoduše napište název zařízení jako /dev/sdb nebo /dev/sdc.

[[email  ~]# fdisk -l /dev/sda

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

3. Zkontrolujte všechny dostupné příkazy fdisk

Pokud chcete zobrazit všechny příkazy dostupné pro fdisk. Jednoduše použijte následující příkaz uvedením názvu pevného disku, například /dev/sda jak je uvedeno níže. Následující příkaz vám poskytne výstup podobný níže.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

Zadáním „m“ zobrazíte seznam všech dostupných příkazů fdisk, které lze provozovat na pevném disku /dev/sda. Po zadání „m“ na obrazovce uvidíte všechny dostupné možnosti pro fdisk, které můžete použít na zařízení /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):

4. Vytiskněte všechny tabulky oddílů v systému Linux

Chcete-li vytisknout celou tabulku oddílů pevného disku, musíte být v příkazovém režimu konkrétního pevného disku, řekněme /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

V příkazovém režimu zadejte „p“ místo „m“, jak jsme to udělali dříve. Když zadám „p“, vytiskne se konkrétní tabulka oddílů /dev/sda.

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

5. Jak odstranit oddíl v Linuxu

Pokud chcete odstranit konkrétní oddíl (např. /dev/sda9) z konkrétního pevného disku, jako je /dev/sda. K tomu musíte být v příkazovém režimu fdisk.

[root@tecmint ~]# fdisk /dev/sda

Dále zadejte „d“, chcete-li odstranit jakýkoli daný název oddílu ze systému. Při zadávání „d“ mě vyzve k zadání čísla oddílu, který chci z pevného disku /dev/sda odstranit. Předpokládejme, že zde zadám číslo '4', pak to smaže diskový oddíl s číslem '4' (tj. /dev/sda4) a zobrazí volný místo v tabulce oddílů. Zadáním „w“ zapíšete tabulku na disk a ukončíte po provedení nových změn v tabulce oddílů. Nové změny se projeví až po příštím restartu systému. To lze snadno pochopit z níže uvedeného výstupu.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): d
Partition number (1-4): 4

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.
You have new mail in /var/spool/mail/root

Upozornění: Při provádění tohoto kroku buďte opatrní, protože použití možnosti „d“ zcela odstraní oddíl ze systému a může dojít ke ztrátě všech dat v oddílu.

6. Jak vytvořit nový oddíl v Linuxu

Pokud vám na jednom ze zařízení zbývá volné místo, řekněte /dev/sda a chcete pod ním vytvořit nový oddíl. Potom musíte být v příkazovém režimu fdisk /dev/sda. Zadejte následující příkaz pro vstup do příkazového režimu konkrétního pevného disku.

[root@tecmint ~]# fdisk /dev/sda

Po vstupu do příkazového režimu nyní stiskněte příkaz „n“ a vytvořte nový oddíl pod /dev/sda se specifickou velikostí. To lze demonstrovat pomocí následujícího daného výstupu.

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e

Při vytváření nového oddílu se vás zeptá na dvě možnosti vytvoření oddílu „rozšířený“ nebo „primární“. Stiskněte „e“ pro rozšířený oddíl a „p“ pro primární oddíl. Poté vás požádá o zadání následujících dvou vstupů.

  1. Číslo prvního válce oddílu, který má být vytvořen.
  2. Číslo posledního válce vytvářeného oddílu (Poslední válec, +válce nebo +velikost).

Velikost válce můžete zadat přidáním „+5000M“ do posledního válce. Zde „+“ znamená přidání a 5000M znamená velikost nového oddílu (tj. 5000 MB). Mějte prosím na paměti, že po vytvoření nového oddílu byste měli spustit příkaz „w“ pro změnu a uložení nových změn v tabulce oddílů a nakonec restartujte systém, abyste ověřili nově vytvořený oddíl.

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.

7. Jak formátovat oddíl v Linuxu

Po vytvoření nového oddílu nepřeskakujte formátování nově vytvořeného oddílu pomocí příkazu „mkfs“. Chcete-li naformátovat oddíl, zadejte do terminálu následující příkaz. Zde /dev/sda4 je můj nově vytvořený oddíl.

[root@tecmint ~]# mkfs.ext4 /dev/sda4

8. Jak zkontrolovat velikost oddílu v Linuxu

Po naformátování nového oddílu zkontrolujte velikost tohoto oddílu pomocí příznaku „s“ (zobrazuje velikost v blocích) pomocí příkazu fdisk. Tímto způsobem můžete zkontrolovat velikost jakéhokoli konkrétního zařízení.

[root@tecmint ~]# fdisk -s /dev/sda2
5194304

9. Jak opravit pořadí tabulky oddílů

Pokud jste smazali logický oddíl a znovu jej vytvořili, můžete si všimnout problému „oddíl mimo pořadí“ nebo chybové zprávy jako „Položky tabulky oddílů nejsou v pořadí disků '.

Když jsou například odstraněny tři logické oddíly, jako jsou (sda4, sda5 a sda6), a vytvoří se nový oddíl, můžete očekávat, že název oddílu by byl sda4. Systém by jej však vytvořil jako sda5. K tomu dochází, protože po smazání oddílu byl oddíl sda7 přesunut jako sda4 a volné místo se posunulo na konec.

Chcete-li vyřešit takové problémy s pořadím oddílů a přiřadit sda4 k nově vytvořenému oddílu, zadejte „x“ pro vstup do další funkční sekce a poté zadejte „f<' expertní příkaz pro opravu pořadí tabulky oddílů, jak je uvedeno níže.

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): x

Expert command (m for help): f
Done.

Expert 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.

Po spuštění příkazu „f“ nezapomeňte spustit příkaz „w“ pro uložení a ukončení příkazového režimu fdisk. Jakmile opraví pořadí tabulky oddílů, již se vám nebudou zobrazovat chybové zprávy.

10. Jak zakázat spouštěcí příznak (*) oddílu

Ve výchozím nastavení zobrazuje příkaz fdisk na každém oddílu symbol spouštěcího příznaku (tj. ‚*‘). Pokud chcete povolit nebo zakázat spouštěcí příznak na konkrétním oddílu, proveďte následující kroky.

[root@tecmint ~]# fdisk  /dev/sda

Stisknutím příkazu 'p' zobrazíte aktuální tabulku oddílů, uvidíte, že na /dev/ je příznak spouštění (symbol hvězdičky (*) v oranžové barvě) sda1disk, jak je znázorněno níže.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Dále zadejte příkaz 'a' pro zakázání příznaku spouštění, poté zadejte číslo oddílu '1' jako (tj. /dev/sda1) v mém případě . Tím zakážete příznak spouštění na oddílu /dev/sda1. Tím odstraníte příznak hvězdička (*).

Command (m for help): a
Partition number (1-9): 1

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

Snažil jsem se zahrnout téměř všechny základní příkazy příkazů fdisk, ale fdisk stále obsahuje řadu dalších odborných příkazů, které můžete použít zadáním „x“. Pro podrobnější informace se podívejte na příkaz „man fdisk“ z terminálu. Pokud jsem vynechal nějaký důležitý příkaz, podělte se se mnou prostřednictvím sekce komentářů.

Přečtěte si také:

  1. 12 „df“ Příkazy pro kontrolu místa na disku v Linuxu
  2. 10 užitečných příkazů „du“ pro zjištění využití disku pro soubory a adresáře