Zoeken op website

10 fdisk-opdrachten om Linux-schijfpartities te beheren


fdisk staat (voor “vaste schijf of formatteer schijf“) is een meest gebruikte opdrachtregelgebaseerde schijfmanipulatiehulpprogramma voor een Linux/Unix-systemen. Met behulp van de fdisk-opdracht kunt u partities op een harde schijf bekijken, creëren, vergroten of verkleinen, verwijderen, wijzigen, kopiëren en verplaatsen met behulp van zijn eigen gebruiksvriendelijke, op tekst gebaseerde menugestuurde interface.

Deze tool is erg handig als het gaat om het creëren van ruimte voor nieuwe partities, het organiseren van ruimte voor nieuwe schijven, het reorganiseren van oude schijven en het kopiëren of verplaatsen van gegevens naar nieuwe schijven. Hiermee kunt u maximaal vier nieuwe primaire partities en een aantal logische (uitgebreide) partities maken, gebaseerd op de grootte van de harde schijf die u in uw systeem heeft.

In dit artikel worden 10 basis fdisk-opdrachten uitgelegd voor het beheren van een partitietabel in op Linux gebaseerde systemen. U moet een root-gebruiker zijn om de fdisk-opdracht uit te voeren, anders krijgt u de foutmelding “opdracht niet gevonden”.

1. Bekijk alle schijfpartities in Linux

Met de volgende basisopdracht worden alle bestaande schijfpartities op uw systeem weergegeven. Het argument ‘-l’ staat voor (alle partities weergeven) wordt gebruikt met de opdracht fdisk om alle beschikbare partities op Linux te bekijken. De partities worden weergegeven met de naam van hun apparaat. Bijvoorbeeld: /dev/sda, /dev/sdb of /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. Bekijk specifieke schijfpartitie in Linux

Om alle partities van een specifieke harde schijf te bekijken, gebruikt u de optie ‘-l‘ met apparaatnaam. Met de volgende opdracht worden bijvoorbeeld alle schijfpartities van apparaat /dev/sda weergegeven. Als u verschillende apparaatnamen heeft, schrijft u de apparaatnaam eenvoudig als /dev/sdb of /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. Controleer alle beschikbare fdisk-opdrachten

Als u alle opdrachten wilt bekijken die beschikbaar zijn voor fdisk. Gebruik eenvoudigweg de volgende opdracht door de naam van de harde schijf te vermelden, zoals /dev/sda zoals hieronder weergegeven. De volgende opdracht geeft u een uitvoer die vergelijkbaar is met hieronder.

[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):

Typ ‘m’ om de lijst te zien met alle beschikbare opdrachten van fdisk die kunnen worden uitgevoerd op de /dev/sda harde schijf. Nadat ik ‘m‘ op het scherm heb ingevoerd, zie je alle beschikbare opties voor fdisk die je kunt gebruiken op het /dev/sda apparaat.

[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. Druk alle partitietabellen af in Linux

Om alle partitietabellen van de harde schijf af te drukken, moet u zich in de opdrachtmodus van een specifieke harde schijf bevinden, bijvoorbeeld /dev/sda.

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

Voer vanuit de opdrachtmodus ‘p’ in in plaats van ‘m‘ zoals we eerder deden. Als ik ‘p‘ invoer, wordt de specifieke /dev/sda partitietabel afgedrukt.

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. Hoe een partitie in Linux te verwijderen

Als u een specifieke partitie (d.w.z. /dev/sda9) van de specifieke harde schijf wilt verwijderen, zoals /dev/sda. Hiervoor moet u zich in de fdisk-opdrachtmodus bevinden.

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

Voer vervolgens ‘d‘ in om een bepaalde partitienaam uit het systeem te verwijderen. Als ik ‘d‘ invoer, wordt ik gevraagd het partitienummer in te voeren dat ik wil verwijderen van de /dev/sda harde schijf. Stel dat ik hier nummer '4' invoer, dan wordt partitienummer '4' (d.w.z. /dev/sda4) schijf verwijderd en wordt de vrije schijf weergegeven ruimte in partitietabel. Voer ‘w’ in om de tabel naar schijf te schrijven en sluit af nadat u nieuwe wijzigingen in de partitietabel heeft aangebracht. De nieuwe wijzigingen zouden pas plaatsvinden na de volgende herstart van het systeem. Dit kan gemakkelijk worden begrepen uit de onderstaande uitvoer.

[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

Waarschuwing: Wees voorzichtig bij het uitvoeren van deze stap, want als u de optie ‘d‘ gebruikt, wordt de partitie volledig van het systeem verwijderd en kunnen alle gegevens op de partitie verloren gaan.

6. Hoe maak je een nieuwe partitie aan in Linux

Als je nog vrije ruimte hebt op een van je apparaten, zeg dan /dev/sda en wil daaronder een nieuwe partitie maken. Dan moet u zich in de fdisk-opdrachtmodus van /dev/sda bevinden. Typ de volgende opdracht om de opdrachtmodus van een specifieke harde schijf te openen.

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

Nadat u de opdrachtmodus bent binnengegaan, drukt u nu op de opdracht “n” om een nieuwe partitie onder /dev/sda met een specifieke grootte te maken. Dit kan worden aangetoond met behulp van de volgende gegeven uitvoer.

[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

Terwijl u een nieuwe partitie aanmaakt, worden u twee opties gevraagd: ‘uitgebreide‘ of ‘primaire‘ partitie maken. Druk op ‘e’ voor uitgebreide partitie en ‘p’ voor primaire partitie. Vervolgens wordt u gevraagd de volgende twee invoergegevens in te voeren.

  1. Eerste cilindernummer van de aan te maken partitie.
  2. Laatste cilindernummer van de aan te maken partitie (Laatste cilinder, +cilinders of +grootte).

U kunt de grootte van de cilinder invoeren door “+5000M” aan de laatste cilinder toe te voegen. Hier betekent ‘+’ toevoeging en 5000M betekent de grootte van de nieuwe partitie (d.w.z. 5000MB). Houd er rekening mee dat u na het maken van een nieuwe partitie de opdracht ‘w’ moet uitvoeren om nieuwe wijzigingen in de partitietabel te wijzigen en op te slaan en uiteindelijk uw systeem opnieuw op te starten om de nieuw aangemaakte partitie te verifiëren.

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. Een partitie formatteren onder Linux

Nadat de nieuwe partitie is gemaakt, mag u niet doorgaan met het formatteren van de nieuw gemaakte partitie met de opdracht ‘mkfs’. Typ de volgende opdracht in de terminal om een partitie te formatteren. Hier /dev/sda4 is mijn nieuw gemaakte partitie.

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

8. Hoe u de grootte van een partitie in Linux kunt controleren

Controleer na het formatteren van de nieuwe partitie de grootte van die partitie met behulp van de vlag ‘s’ (geeft de grootte in blokken weer) met de opdracht fdisk. Op deze manier kunt u de grootte van elk specifiek apparaat controleren.

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

9. Hoe u de volgorde van de partitietabellen kunt corrigeren

Als u een logische partitie heeft verwijderd en deze opnieuw heeft gemaakt, ziet u mogelijk een 'partitie buiten gebruik'-probleem of een foutmelding zoals 'Partitietabelgegevens staan niet in schijfvolgorde '.

Wanneer bijvoorbeeld drie logische partities zoals (sda4, sda5 en sda6) worden verwijderd en er een nieuwe partitie wordt gemaakt, zou u de nieuwe partitie kunnen verwachten partitienaam zou sda4 zijn. Maar het systeem zou het aanmaken als sda5. Dit gebeurt omdat, nadat de partitie is verwijderd, de partitie sda7 is verplaatst als sda4 en de vrije ruimte naar het einde is verschoven.

Om dergelijke problemen met de partitievolgorde op te lossen en sda4 toe te wijzen aan de nieuw aangemaakte partitie, typt u de 'x' om naar een extra functionaliteitssectie te gaan en typt u vervolgens 'f<' expert-opdracht om de volgorde van de partitietabel te corrigeren, zoals hieronder weergegeven.

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

Vergeet na het uitvoeren van de opdracht ‘f’ niet de opdracht ‘w‘ uit te voeren om op te slaan en de fdisk-opdrachtmodus te verlaten. Zodra de volgorde van de partitietabellen is aangepast, krijgt u geen foutmeldingen meer.

10. Hoe u de opstartvlag (*) van een partitie kunt uitschakelen

Standaard toont de fdisk-opdracht het opstartvlagsymbool (d.w.z. ‘*‘) op elke partitie. Als u de opstartvlag op een specifieke partitie wilt in- of uitschakelen, voert u de volgende stappen uit.

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

Druk op de opdracht 'p' om de huidige partitietabel te bekijken. U ziet dat er een opstartvlag (sterretje (*) symbool in oranje kleur) staat op /dev/ sda1 schijf zoals hieronder weergegeven.

[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

Voer vervolgens het commando 'a' in om de opstartvlag uit te schakelen en voer vervolgens partitienummer '1' in als (d.w.z. /dev/sda1) in mijn geval . Hierdoor wordt de opstartvlag op de partitie /dev/sda1 uitgeschakeld. Hierdoor wordt de vlag met het sterretje (*) verwijderd.

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):

Ik heb mijn best gedaan om bijna alle basiscommando's van fdisk-commando's op te nemen, maar fdisk bevat nog steeds een verscheidenheid aan andere expertcommando's die je kunt gebruiken door 'x' in te voeren. Voor meer gedetailleerde informatie, bekijk de opdracht ‘man fdisk’ vanaf de terminal. Als ik een belangrijk commando heb gemist, deel het dan met mij via het commentaargedeelte.

Lees ook:

  1. 12 "df"-opdrachten om schijfruimte in Linux te controleren
  2. 10 Handige “du”-opdrachten om schijfgebruik van bestanden en mappen te vinden