FDISK(8) Systemadministration FDISK(8)

fdisk - manipulerar diskens partitionstabell

fdisk [flaggor] enhet

fdisk -l [enhet...]

fdisk är ett dialogstyrt program för att skapa och manipulera partitionstabeller. Programmet hanterar partitionstabellerna GPT, MBR, Sun, SGI och BSD.

Blockenheter kan delas in i en eller flera logiska diskar som kallas partitioner. Denna uppdelning registreras i partitionstabellen, som vanligtvis finns i sektor 0 på disken. (I BSD-världen talar man om `disk slices' och en `disklabel')

All partitionering styrs som standard av enhetens I/O-gränser (topologin). fdisk kan optimera disklayouten för en 4K-sektorstorlek och använda en inriktningsoffset på moderna enheter för MBR och GPT. Det är alltid en bra idé att följa fdisk:s standardvärden eftersom standardvärdena (t.ex. första och sista partitionssektorerna) och partitionsstorlekar som anges med notationen +/-<size>{M,G,...} alltid är inriktade enligt enhetens egenskaper.

CHS-adressering (Cylinder-Head-Sector) är föråldrad och används inte som standard. Följ inte gamla artiklar och rekommendationer med fdisk -S <n> -H <n> råd för SSD eller 4K-sektor enheter.

Observera att partx(8) ger ett rikt gränssnitt för skript för att skriva ut disklayouter, fdisk är mestadels utformad för människor. Bakåtkompatibilitet i utdata från fdisk garanteras inte. Indata (kommandona) bör alltid vara bakåtkompatibla.

-b, --sector-size sektorstorlek

Ange diskens sektorstorlek. Giltiga värden är 512, 1024, 2048 och 4096. Kärnan känner till sektorstorleken för enheter med vanliga block. Använd denna flagga endast på mycket gamla kärnor, när du arbetar med diskavbildningar eller för att åsidosätta kärnans standardsektorstorlek. Sedan util-linux-2.17 skiljer fdisk mellan logisk och fysisk sektorstorlek. Denna flagga ändrar båda sektorstorlekarna till den angivna sektorstorlek.

-B, --protect-boot

Radera inte början av den första disksektorn när du skapar en ny disketikett. Den här funktionen stöds för GPT och MBR.

-c, --compatibility[=läge]

Specify the compatibility mode: 'dos' or 'nondos'. The default is non-DOS mode. For backward compatibility, it is possible to use the option without the mode argument — then the default is used. Note that the optional mode argument cannot be separated from the -c option by a space; the correct form is -c=dos, for example.

-L, --color[=när]

Färglägger utdata. Det valfria argumentet när kan vara auto, never eller always. Om argumentet när utelämnas är standardvärdet auto. Färgerna kan inaktiveras; för den aktuella inbyggda standardinställningen, se utmatningen --help. Se även avsnittet FÄRGER.

-l, --list

Lista partitionstabellerna för de angivna enheterna och avsluta sedan.

Om inga enheter anges, används de enheter som nämns i /proc/partitions (om denna fil finns). Enheterna listas alltid i den ordning som de anges på kommandoraden eller av kärnan som listas i /proc/partitions.

-x, --list-details

Som --list, men ger fler detaljer.

--lock[=läge]

Use an exclusive BSD lock for the device or file that is operated upon. The optional argument mode can be yes (1), no (0), or nonblock. If the mode argument is omitted, it defaults to yes. This option overrides the environment variable $LOCK_BLOCK_DEVICE. The default is to not use any lock at all, but using a lock is recommended to avoid collisions with systemd-udevd(8) or other tools.

-n, --noauto-pt

Skapa inte automatiskt en standardpartitionstabell på en tom enhet. Partitionstabellen måste uttryckligen skapas av användaren (med kommandon som 'o', 'g', etc.).

-o, --output lista

Ange vilka utdatakolumner som ska skrivas ut. Använd --help för att få en lista över alla kolumner som stöds.

Standardlistan med kolumner kan utökas om lista anges i formatet +list (t.ex. -o +UUID).

--bytes*

Print SIZE in bytes rather than in human readable format.

-s, --getsz

Skriv ut storleken i 512-byte-sektorer för varje given blockenhet. Denna flagga är FÖRÅLDRAD till förmån för blockdev(8).

-t, --type typ

Aktivera endast stöd för disklabels av den angivna typen och inaktivera stöd för alla andra typer.

-u, --units[=unit]

When listing partition tables, show sizes in 'sectors' or in 'cylinders'. The default is to show sizes in sectors. For backward compatibility, it is possible to use the option without the unit argument — then the default is used. Note that the optional unit argument cannot be separated from the -u option by a space; the correct form is -u=cylinders, for example.

-C, --cylinders nummer

Ange antalet cylindrar på skivan. Jag har ingen aning om varför någon skulle vilja göra det.

-H, --heads nummer

Ange antalet huvuden på disken. (Naturligtvis inte det fysiska antalet, utan det antal som används för partitionstabeller) Rimliga värden är 255 och 16.

-S, --sectors nummer

Ange antalet sektorer per spår på disken. (Naturligtvis inte det fysiska antalet, utan det antal som används för partitionstabeller) Ett rimligt värde är 63.

-w, --wipe när

Raderar filsystem-, RAID- och partitionstabellsignaturer från enheten för att undvika eventuella kollisioner. Argumentet när kan vara auto, never eller always. Om denna flagga inte anges är standardvärdet auto, vilket innebär att signaturer endast raderas i interaktivt läge. I samtliga fall rapporteras upptäckta signaturer i form av varningsmeddelanden innan en ny partitionstabell skapas. Se även kommandot wipefs(8).

-W, --wipe-partitions när

Raderar filsystem-, RAID- och partitionstabellsignaturer från nyskapade partitioner för att undvika eventuella kollisioner. Argumentet när kan vara auto, never eller always. Om denna flagga inte anges är standardvärdet auto, vilket innebär att signaturer endast raderas i interaktivt läge och efter att användaren har bekräftat detta. I samtliga fall rapporteras upptäckta signaturer i form av varningsmeddelanden innan en ny partition skapas. Se även kommandot wipefs(8).

-h, --help

Visa hjälptext och avsluta.

-V, --version

Visa version och avsluta.

Device är vanligtvis /dev/sda, /dev/sdb eller liknande. Ett enhetsnamn hänvisar till hela disken. Gamla system utan libata (ett bibliotek som används i Linux-kärnan för att stödja ATA-värdkontroller och -enheter) gör skillnad mellan IDE- och SCSI-diskar. I sådana fall kommer enhetsnamnet att vara /dev/hd* (IDE) eller /dev/sd* (SCSI).

partition är ett enhetsnamn följt av ett partitionsnummer. Exempelvis är /dev/sda1 den första partitionen på den första hårddisken i systemet. Se även dokumentationen för Linux-kärnan (filen Documentation/admin-guide/devices.txt).

Dialogrutan "last sector" accepterar partitionsstorlek som anges med antal sektorer eller med +/-<size>{K,B,M,G,...} notation.

Om storleken föregås av '+' tolkas den som relativ till partitionens första sektor. Om storleken inleds med "-" tolkas den som relativ till den övre gränsen (den sista tillgängliga sektorn för partitionen).

Om storleken anges i byte, kan talet följas av de multiplikativa suffixen KiB (1024 byte), MiB (1024*1024 byte), och så vidare för GiB, TiB, PiB, EiB, ZiB och YiB. "iB" är valfritt, t.ex. har "K" samma betydelse som "KiB".

De relativa storlekarna, om de anges med multiplikativa suffix (t.ex. +100MiB), justeras alltid i enlighet med enhetens I/O-gränser. Notationen +/-<size>{K,B,M,G,...} rekommenderas.

Den sista sektorn i partitionen beräknas strikt som <start> + <size> (utan -1) om storleken anges med notationen +<sectors>. I detta fall är storleken inte anpassad till enhetens I/O-gränser.

För bakåtkompatibilitet accepterar fdisk även suffixen KB (1000 byte), MB (1000*1000 byte), och så vidare för GB, TB, PB, EB, ZB och YB. Dessa 10^N-suffix är föråldrade.

fdisk tillåter läsning (med kommandot "I") av sfdisk(8)-kompatibla skriptfiler. Skriptet tillämpas på partitionstabellen i minnet, och sedan är det möjligt att ändra partitionstabellen innan du skriver den till enheten.

Och vice versa är det möjligt att skriva den aktuella disklayouten i minnet till skriptfilen med kommandot "O".

Skriptfilerna är kompatibla mellan cfdisk(8), sfdisk(8), fdisk och andra libfdisk-program. För mer information se sfdisk(8).

GPT (GUID-partitionstabell)

GPT är en modern standard för partitionstabellens layout. GPT använder 64-bitars logiska blockadresser, kontrollsummor, UUID:er och namn för partitioner och ett obegränsat antal partitioner (även om antalet partitioner vanligtvis är begränsat till 128 i många partitioneringsverktyg).

Observera att den första sektorn fortfarande är reserverad för en skyddande MBR i GPT-specifikationen. Det förhindrar att partitioneringsverktyg som endast använder MBR felaktigt känner igen och skriver över GPT-diskar.

GPT är alltid ett bättre val än MBR, särskilt på modern hårdvara med en UEFI-startladdare.

DOS-type (MBR)

En partitionstabell av DOS-typ kan beskriva ett obegränsat antal partitioner. I sektor 0 finns det plats för beskrivning av 4 partitioner (kallade "primära"). En av dessa kan vara en utökad partition; detta är en låda som innehåller logiska partitioner, med deskriptorer som finns i en länkad lista av sektorer, var och en före motsvarande logiska partitioner. De fyra primära partitionerna, oavsett om de finns eller inte, får numren 1-4. Logiska partitioner numreras med början från 5.

I en partitionstabell av DOS-typ lagras startoffset och storleken på varje partition på två sätt: som ett absolut antal sektorer (anges i 32 bitar) och som en Cylindrar/Huvuden/Sektorer-trippel (anges i 10+8+6 bitar). Det förstnämnda är OK — med 512-byte-sektorer fungerar detta upp till 2 TB. Den senare har två problem. För det första kan dessa C/H/S-fält bara fyllas i när antalet huvuden och antalet sektorer per spår är kända. Och för det andra, även om vi vet vad dessa siffror borde vara, räcker inte de 24 bitar som finns tillgängliga. DOS använder endast C/H/S, Windows använder båda, Linux använder aldrig C/H/S. C/H/S-adresseringen är föråldrad och kan komma att sakna stöd i en senare fdisk-version.

Läs avsnittet om DOS-läge om du vill ha DOS-kompatibla partitioner. fdisk bryr sig inte om cylindergränser som standard.

BSD/Sun-type

En BSD/Sun-disklabel kan beskriva 8 partitioner, varav den tredje bör vara en `whole disk'-partition. Starta inte en partition som faktiskt använder sin första sektor (som en växlingspartition) på cylinder 0, eftersom det kommer att förstöra disketiketten. Observera att en BSD-etikett vanligtvis är inbäddad i en DOS-partition.

IRIX/SGI-type

En IRIX/SGI-disklabel kan beskriva 16 partitioner, varav den elfte bör vara en hel `volympartition', medan den nionde bör märkas `volymhuvud'. Volymhuvudet kommer också att täcka partitionstabellen, dvs. det börjar vid block noll och sträcker sig som standard över fem cylindrar. Det återstående utrymmet i volymhuvudet kan användas för katalogposter. Inga partitioner får överlappa med volymhuvudet. Ändra inte heller dess typ eller skapa något filsystem på den, eftersom du då förlorar partitionstabellen. Använd den här typen av etikett endast när du arbetar med Linux på IRIX/SGI-datorer eller IRIX/SGI-diskar under Linux.

En sync(2) och en ioctl(BLKRRPART) (läser om partitionstabellen från disken) utförs innan den avslutas när partitionstabellen har uppdaterats.

Observera att allt detta är föråldrat. Du behöver inte bry dig om saker som geometri och cylindrar i moderna operativsystem. Om du verkligen vill ha DOS-kompatibel partitionering måste du aktivera DOS-läge och cylinder enheter genom att använda kommandoradsflaggorna '-c=dos -u=cylinders' för fdisk.

DOS 6.x FORMAT-kommandot letar efter viss information i den första sektorn i partitionens dataområde och betraktar denna information som mer tillförlitlig än informationen i partitionstabellen. DOS FORMAT förväntar sig att DOS FDISK rensar de första 512 byte av dataområdet i en partition när en storleksändring inträffar. DOS FORMAT tittar på den här extra informationen även om flaggan /U har angetts - vi anser att detta är ett fel i DOS FORMAT och DOS FDISK.

Slutsatsen är att om du använder fdisk eller cfdisk(8) för att ändra storleken på en DOS-partitionstabellpost, måste du också använda dd(1) för att nolla de första 512 byte i partitionen innan du använder DOS FORMAT för att formatera partitionen. Om du t.ex. använder fdisk för att skapa en DOS-partitionstabellpost för /dev/sda1, använder du kommandot dd if=/dev/zero of=/dev/sda1 bs=512 count=1 (efter att du har avslutat fdisk och startat om Linux så att partitionstabellinformationen är giltig) för att nollställa de första 512 byte i partitionen.

fdisk erhåller vanligtvis diskgeometrin automatiskt. Detta är inte nödvändigtvis den fysiska diskgeometrin (moderna diskar har faktiskt inte något som liknar en fysisk geometri, i synnerhet inte något som kan beskrivas i den förenklade formen Cylindrar/Huvuden/Sektorer), men det är den diskgeometri som MS-DOS använder för partitionstabellen.

Vanligtvis går allt bra som standard och det är inga problem om Linux är det enda systemet på disken. Men om disken måste delas med andra operativsystem är det ofta en bra idé att låta en fdisk från ett annat operativsystem skapa minst en partition. När Linux startar tittar det på partitionstabellen och försöker härleda vilken (falsk) geometri som krävs för ett bra samarbete med andra system.

När en partitionstabell skrivs ut i DOS-läge utförs en konsistenskontroll av partitionstabellens poster. Denna kontroll verifierar att de fysiska och logiska start- och slutpunkterna är identiska, och att varje partition börjar och slutar på en cylindergräns (utom för den första partitionen).

I vissa versioner av MS-DOS skapas en första partition som inte börjar på en cylindergräns, utan på sektor 2 i den första cylindern. Partitioner som börjar på cylinder 1 kan inte börja på en cylindergräns, men det är osannolikt att detta orsakar problem om du inte har OS/2 på din maskin.

För bästa resultat bör du alltid använda ett OS-specifikt partitionstabellprogram. Du bör t.ex. skapa DOS-partitioner med DOS-programmet FDISK och Linux-partitioner med Linux-programmen fdisk eller Linux cfdisk(8).

Färgläggningen av utdata implementeras av terminal-colors.d(5) funktionalitet. Implicit färgläggning kan inaktiveras med en tom fil

/etc/terminal-colors.d/fdisk.disable

för kommandot fdisk eller för alla verktyg med

/etc/terminal-colors.d/disable

Sedan version 2.41 stöds även miljövariabeln $NO_COLOR som inaktiverar färgläggning av utdata om den inte uttryckligen aktiveras med en kommandoradsflagga.

Den användarspecifika $XDG_CONFIG_HOME/terminal-colors.d eller $HOME/.config/terminal-colors.d åsidosätter den globala inställningen.

Observera att färgläggningen av utdata kan vara aktiverad som standard, och i så fall behöver inte terminal-colors.d-katalogerna finnas ännu.

De logiska färgnamn som stöds av fdisk är:

header

Rubriken för utdatatabellerna.

help-title

Rubrikerna i hjälpavsnittet.

warn

Varningsmeddelanden.

welcome

Välkomstmeddelandet.

FDISK_DEBUG=all

aktiverar felsökningsutmatning för fdisk.

LIBFDISK_DEBUG=all

aktiverar libfdisk felsökningsutdata.

LIBBLKID_DEBUG=all

aktiverar libblkid felsökningsutdata.

LIBSMARTCOLS_DEBUG=all

aktiverar libsmartcols felsökningsutdata.

LIBSMARTCOLS_DEBUG_PADDING=on

använda synliga utfyllnadstecken.

LOCK_BLOCK_DEVICE=<mode>

använd exklusivt BSD-lås. Läget är "1" eller "0". Se --lock för mer information.

Karel Zak <kzak@redhat.com>, Davidlohr Bueso <dave@gnu.org>

Originalversionen skrevs av bland andra Andries E. Brouwer och A. V. Le Blanc.

cfdisk(8), mkfs(8), partx(8), sfdisk(8)

För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.

Kommandot fdisk ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1