10 ordres fdisk per gestionar particions de disc de Linux


fdisk (per a disc fix o format disc) és una utilitat de manipulació de disc basada en la línia d'ordres més utilitzada per a sistemes Linux/Unix. Amb l'ajuda de l'ordre fdisk podeu veure, crear, canviar la mida, suprimir, canviar, copiar i moure particions en un disc dur utilitzant la seva pròpia interfície de menú basada en text fàcil d'utilitzar.

Aquesta eina és molt útil pel que fa a crear espai per a noves particions, organitzar l'espai per a unitats noves, reorganitzar unitats antigues i copiar o moure dades a discs nous. Us permet crear un màxim de quatre particions primàries noves i un nombre de particions lògiques (amplies), en funció de la mida del disc dur que teniu al vostre sistema.

Aquest article explica 10 ordres bàsiques de fdisk per gestionar una taula de particions en sistemes basats en Linux. Heu de ser usuari root per executar l'ordre fdisk, en cas contrari obtindreu un error ordre no trobat.

1. Veure totes les particions de disc a Linux

L'ordre bàsic següent enumera totes les particions de disc existents al vostre sistema. L'argument -l per (llista totes les particions) s'utilitza amb l'ordre fdisk per veure totes les particions disponibles a Linux. Les particions es mostren amb els noms del seu dispositiu. Per exemple: /dev/sda, /dev/sdb o /dev/sdc.

 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. Visualitza la partició de disc específica a Linux

Per veure totes les particions d'un disc dur específic, utilitzeu l'opció -l amb el nom del dispositiu. Per exemple, l'ordre següent mostrarà totes les particions de disc del dispositiu /dev/sda. Si teniu noms de dispositiu diferents, escriviu simplement el nom del dispositiu com a /dev/sdb o /dev/sdc.

 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. Comproveu totes les ordres disponibles de fdisk

Si voleu veure totes les ordres disponibles per a fdisk. Només cal que utilitzeu l'ordre següent esmentant el nom del disc dur, com ara /dev/sda, com es mostra a continuació. La següent comanda us donarà una sortida semblant a la següent.

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

Escriviu m per veure la llista de totes les ordres disponibles de fdisk que es poden operar al disc dur /dev/sda. Després d'introduir m a la pantalla, veureu totes les opcions disponibles per a fdisk que podeu utilitzar al dispositiu /dev/sda.

 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. Imprimeix tota la taula de particions a Linux

Per imprimir tota la taula de particions del disc dur, heu d'estar en mode d'ordres del disc dur específic, per exemple /dev/sda.

 fdisk /dev/sda

Des del mode d'ordres, introduïu p en lloc de m, com vam fer anteriorment. Quan introdueixo 'p', imprimirà la taula de particions específica /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. Com esborrar una partició a Linux

Si voleu suprimir una partició específica (és a dir, /dev/sda9) del disc dur específic, com ara /dev/sda. Heu d'estar en mode d'ordres fdisk per fer-ho.

 fdisk /dev/sda

A continuació, introduïu d per eliminar qualsevol nom de partició donat del sistema. Quan escriu d, em demanarà que introdueixi el número de partició que vull eliminar del disc dur /dev/sda. Suposem que introdueixo el número '4' aquí, aleshores esborrarà el disc número de partició '4' (és a dir, /dev/sda4) i mostrarà espai lliure a la taula de particions. Introduïu w per escriure la taula al disc i sortir després de fer noves alteracions a la taula de particions. Els nous canvis només es produiran després del proper reinici del sistema. Això es pot entendre fàcilment a partir de la sortida següent.

 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

Avís: Aneu amb compte mentre feu aquest pas, perquè si feu servir l'opció d esborrarà completament la partició del sistema i pot ser que es perdin totes les dades de la partició.

6. Com crear una nova partició a Linux

Si us queda espai lliure en un dels vostres dispositius, digueu /dev/sda i us agradaria crear-hi una nova partició. Aleshores heu d'estar en mode d'ordres fdisk de /dev/sda. Escriviu l'ordre següent per entrar al mode d'ordres d'un disc dur específic.

 fdisk /dev/sda

Després d'entrar al mode d'ordres, ara premeu l'ordre n per crear una nova partició a /dev/sda amb una mida específica. Això es pot demostrar amb l'ajuda de la següent sortida donada.

 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

Mentre creeu una partició nova, us demanarà dues opcions de creació de particions estès o primària. Premeu e per a la partició estesa i p per a la partició primària. A continuació, us demanarà que introduïu les dues entrades següents.

  1. Primer número de cilindre de la partició que s'ha de crear.
  2. Últim número de cilindre de la partició que s'ha de crear (últim cilindre, +cilindres o +mida).

Podeu introduir la mida del cilindre afegint +5000M a l'últim cilindre. Aquí, + significa addició i 5000M significa mida de la partició nova (és a dir, 5000MB). Si us plau, tingueu en compte que després de crear una nova partició, hauríeu d'executar l'ordre 'w' per modificar i desar nous canvis a la taula de particions i, finalment, reiniciar el sistema per verificar la partició creada recentment.

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. Com formatar una partició a Linux

Després de crear la nova partició, no us salteu per formatar la partició acabada de crear mitjançant l'ordre mkfs. Escriviu l'ordre següent al terminal per formatar una partició. Aquí /dev/sda4 és la meva partició acabada de crear.

 mkfs.ext4 /dev/sda4

8. Com comprovar la mida d'una partició a Linux

Després de formatar la nova partició, comproveu la mida d'aquesta partició utilitzant la marca 's' (mostra la mida en blocs) amb l'ordre fdisk. D'aquesta manera podeu comprovar la mida de qualsevol dispositiu específic.

 fdisk -s /dev/sda2
5194304

9. Com arreglar l'ordre de la taula de particions

Si heu suprimit una partició lògica i l'heu tornat a recrear, és possible que noteu un problema de partició fora d'ordre o un missatge d'error com Les entrades de la taula de particions no estan en ordre del disc.

Per exemple, quan se suprimeixen tres particions lògiques com (sda4, sda5 i sda6) i es creen una nova partició, és possible que espereu que el nom de la nova partició sigui sda4. Però, el sistema el crearia com a sda5. Això passa perquè, després de suprimir la partició, la partició sda7 s'havia mogut com a sda4 i l'espai lliure s'havia desplaçat fins al final.

Per solucionar aquests problemes d'ordre de partició i assignar sda4 a la partició acabada de crear, emeteu la x per introduir una secció de funcionalitats addicionals i, a continuació, introduïu l'ordre expert f per arreglar l'ordre de la taula de particions tal com es mostra a continuació.

 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.

Després d'executar l'ordre f, no oblideu executar l'ordre w per desar i sortir del mode d'ordre fdisk. Un cop arreglat l'ordre de la taula de particions, ja no rebreu missatges d'error.

10. Com desactivar el senyalador d'arrencada (*) d'una partició

Per defecte, l'ordre fdisk mostra el símbol de la bandera d'arrencada (és a dir, '*') a cada partició. Si voleu habilitar o desactivar la marca d'arrencada en una partició específica, feu els passos següents.

 fdisk  /dev/sda

Premeu l'ordre 'p' per veure la taula de particions actual, veureu que hi ha una bandera d'arrencada (símbol d'asterisc (*) en color taronja) al disc /dev/sda1 com es mostra a continuació.

 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

A continuació, introduïu l'ordre a per desactivar la marca d'arrencada i, a continuació, introduïu el número de partició 1 com (és a dir, /dev/sda1) en el meu cas. Això desactivarà la marca d'arrencada a la partició /dev/sda1. Això eliminarà l'asterisc (*).

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

He fet tot el possible per incloure gairebé totes les ordres bàsiques de les ordres fdisk, però encara fdisk conté una varietat d'altres ordres expertes que podeu utilitzar introduint x. Per obtenir informació més detallada, consulteu l'ordre man fdisk des del terminal. Si m'he perdut alguna ordre important, si us plau, compartiu-me amb la secció de comentaris.

Llegeix també:

  1. 12 ordres \df per comprovar l'espai en disc a Linux
  2. 10 ordres du útils per trobar l'ús del disc de fitxers i directoris