| SFDISK(8) | Systemadministration | SFDISK(8) |
NAMN
sfdisk - visa eller manipulera en diskpartitionstabell
SYNOPSIS
sfdisk [flaggor] enhet [-N partitionsnummer]
sfdisk [flaggor] kommando
BESKRIVNING
sfdisk är ett skriptorienterat verktyg för partitionering av valfri blockenhet. Det körs i interaktivt läge om det körs på en terminal (stdin hänvisar till en terminal).
Sedan version 2.26 stöder sfdisk MBR (DOS), GPT, SUN och SGI disketiketter, men tillhandahåller inte längre någon funktionalitet för CHS-adressering (Cylinder-Head-Sector). CHS har aldrig varit viktigt för Linux och det här adresseringskonceptet är inte meningsfullt för nya enheter.
sfdisk skyddar den första disksektorn när du skapar en ny disketikett. Flaggan --wipe always inaktiverar detta skydd. Observera att fdisk(8) och cfdisk(8) som standard raderar detta område helt.
sfdisk (sedan version 2.26) anpassar start och slut på partitioner till blockenhetens I/O-gränser när relativa storlekar anges, när standardvärdena används eller när multiplikativa suffix (t.ex. MiB) används för storlekar. Det är möjligt att partitionsstorleken optimeras (minskas eller förstoras) på grund av alignment om startoffseten anges exakt i sektorer och partitionsstorleken är relativ eller med multiplikativa suffix.
Det rekommenderade sättet är att inte ange startoffset alls och ange partitionsstorlek i MiB, GiB (eller så). I det här fallet anpassar sfdisk alla partitioner till blockenhetens I/O-gränser (eller när I/O-gränserna är för små, till megabytegränsen för att disklayouten ska vara portabel). Om detta standardbeteende inte är önskvärt (vanligtvis för mycket små partitioner), ange då förskjutningar och storlekar i sektorer. I det här fallet följer sfdisk de angivna siffrorna helt och hållet utan någon optimering.
sfdisk skapar inte standardsystempartitioner för SGI- och SUN-disketiketter som fdisk(8) gör. Det är nödvändigt att explicit skapa alla partitioner, inklusive systempartitioner för hela disken.
sfdisk använder BLKRRPART (reread partition table) ioctl för att se till att enheten inte används av systemet eller andra verktyg (se även --no-reread). Det är möjligt att den här funktionen eller en annan sfdisk-aktivitet konkurrerar med systemd-udevd(8). Det rekommenderade sättet att undvika möjliga kollisioner är att använda flaggan --lock. Det exklusiva låset gör att systemd-udevd hoppar över händelsehanteringen på enheten.
Prompten sfdisk är bara en ledtråd för användare och ett visat partitionsnummer betyder inte att samma partitionstabellpost kommer att skapas (om -N inte anges), särskilt inte för tabeller med luckor.
KOMMANDON
Kommandona är ömsesidigt uteslutande.
[-N, --partno partition-number] device
If the option -N or --partno is specified, then the changes are applied to the partition addressed by partition-number. The unspecified fields of the partition are not modified.
Observera att det är möjligt att adressera en oanvänd partition med -N. En MBR innehåller t.ex. alltid 4 partitioner, men antalet använda partitioner kan vara mindre. I det här fallet följer sfdisk standardvärdena från partitionstabellen och använder inte inbyggda standardvärden för den oanvända partitionen som anges med -N. Se även --append.
-A, --activate enhet [partition-number...]
Aktiveringskommandot stöds endast för MBR och PMBR. Om en GPT-etikett upptäcks skriver sfdisk ut en varning och går automatiskt in i PMBR.
Om inget partitionsnummer anges listas de partitioner som har en aktiverad flagga.
--backup-pt-sectors enhet
--delete enhet [partition-number...]
-d, --dump enhet
-g, --show-geometry [enhet...]
-J, --json enhet
-l, --list [enhet...]
-F, --list-free [enhet...]
--part-attrs device partition-number [attributes]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bits 3-47
Bits 48-63
--part-label device partition-number [etikett]
--part-type device partition-number [typ]
Argumentet typ är hexadecimalt för MBR, GUID för GPT, alias för typ (t.ex. "linux") eller genväg för typ (t.ex. "L"). För bakåtkompatibilitet har flaggorna -c och --id samma betydelse som detta.
--part-uuid device partition-number [uuid]
--disk-id enhet [id]
--discard-free enhet
Warning
Alla data i de kasserade regionerna på enheten kommer att gå förlorade! Använd inte den här flaggan om du är osäker.
Observera att kommandot "T" i fdisk ger en dialogruta där du kan ange vilket oanvänt område som ska kasseras. sfdisk kasserar dock alltid alla odelade områden (med undantag för områden där det inte går att skapa partitioner, t.ex. i början av enheten).
-r, --reorder enhet
-s, --show-size [enhet...]
-T, --list-types
-V, --verify [enhet...]
--relocate oper enhet
gpt-bak-std
gpt-bak-mini
FLAGGOR
-a, --append
Note that in this case an unused partition may be re-used even though it is not the last partition in the partition table. See also -N for addressing a specific entry in the partition table.
-b, --backup
--bytes
--color[=när]
-f, --force
--Linux
--lock[=läge]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file sökväg
--move-data[=sökväg]
Det valfria sökväg anger loggfilens namn. Loggfilen innehåller information om alla läs- och skrivoperationer på partitionsdata. Ordet "@default" som en sökväg tvingar sfdisk att använda ~/sfdisk-<devname>.move för loggen. Loggen är valfri sedan v2.35.
Observera att denna operation är riskfylld och inte atomisk. Glöm inte att säkerhetskopiera dina data!
Se även --move-use-fsync.
I exemplet nedan skapar det första kommandot ett ledigt område på 100 MiB före den första partitionen och flyttar de data som den innehåller (t.ex. ett filsystem), nästa kommando skapar en ny partition från det lediga området (vid offset 2048) och det sista kommandot ändrar partitionsordningen så att den stämmer överens med diskordningen (den ursprungliga sdc1 blir sdc2).
echo '+100M,' | sfdisk --move-data /dev/sdc -N 1
echo '2048,' | sfdisk /dev/sdc --append
sfdisk /dev/sdc --reorder
--move-use-fsync
-o, --output lista
Standardlistan med kolumner kan utökas om lista anges i formatet +list (t.ex. -o +UUID).
-q, --quiet
--sector-size sektorstorlek
-u, --unit S
-X, --label typ
-Y, --label-nested typ
-w, --wipe när
-W, --wipe-partitions när
-h, --help
-v, --version
INPUT FORMAT
sfdisk stöder två inmatningsformat och generiska rubrikrader.
Rubriker
De valfria rubrikraderna anger generisk information som gäller för partitionstabellen. Formatet för rubrikraderna är:
<namn>: <värde>
De för närvarande erkända rubrikerna är:
*enhet
etikett
etikett-id
första-lba
sista-lba
bordslängd
korn
sektor-storlek
Observera att det endast är möjligt att använda rubrikrader innan den första partitionen anges i indata.
Format för icke namngivna fält
start storlek typ startbar _start storlek typ startbar
där varje rad fyller en partitionsdeskriptor.
Fält separeras med blanksteg, kommatecken (rekommenderas) eller semikolon, eventuellt följt av blanksteg; inledande och avslutande blanksteg ignoreras. Siffror kan vara oktala, decimala eller hexadecimala; decimal är standard. När ett fält saknas, är tomt eller anges som "-" används ett standardvärde. Men när flaggan -N (ändra en enstaka partition) anges, är standardvärdet för varje fält dess tidigare värde.
Standardvärdet för start är den första icke-tilldelade sektorn som är inriktad enligt enhetens I/O-gränser. Standardvärdet för startoffset för den första partitionen är 1 MiB. Om offset följs av de multiplikativa suffixen (KiB, MiB, GiB, TiB, PiB, EiB, ZiB och YiB) tolkas talet som offset i byte. Sedan v2.38 när flaggan -N (ändra en enskild partition) anges, kan en '+' användas för att förstora partitionen genom att flytta början av partitionen om det finns ledigt utrymme före partitionen.
Standardvärdet för storlek anger "så mycket som möjligt", dvs. fram till nästa partition eller enhetens slut. Ett numeriskt argument tolkas som standard som ett antal sektorer, men om storleken följs av ett av de multiplikativa suffixen (KiB, MiB, GiB, TiB, PiB, EiB, ZiB och YiB) tolkas siffran som partitionens storlek i byte och den anpassas sedan enligt enhetens I/O-gränser. En '+' kan användas i stället för en siffra för att förstora partitionen så mycket som möjligt. Observera att '+' motsvarar standardbeteendet för en ny partition; befintliga partitioner kommer att storleksändras efter behov.
Partitionen typ anges i hex för MBR (DOS) där 0x-prefixet är valfritt; en GUID-sträng för GPT; en genväg eller ett alias. Det rekommenderas att använda två bokstäver för MBR hex-koder för att undvika kollision mellan den föråldrade genvägen 'E' och '0E' MBR hex-kod. För bakåtkompatibilitet försöker sfdisk tolka typ som en genväg som första möjlighet i partitioneringsskript, även om det på andra ställen (t.ex. kommandot --part-type) försöker tolka genvägar som sista möjlighet.
Sedan v2.36 stöder libfdisk alias för partitionstyp som tillägg till genvägar. Aliaset är ett enkelt ord som är läsbart för människor (t.ex. "linux").
Sedan v2.37 stöder libfdisk namn på partitionstyper vid inmatning och ignorerar teckenens skiftläge och alla icke-alfanumeriska och icke-siffriga tecken i namnet (t.ex. "Linux /usr x86" är samma sak som "linux usr-x86").
Kortkommandon och alias som stöds:
L - alias 'linux'
S - alias 'swap'
Ex - alias "utökad"
H - alias "hem"
U - alias "uefi"
R - alias 'raid'
V - alias "lvm"
Standardvärdet för typ är linux.
Kortkommandot "X" för Linux utökade partition (85) har tagits bort till förmån för "Ex".
bootable anges som [*|-], med not-bootable som standard. Värdet på det här fältet är irrelevant för Linux - när Linux körs har det redan startats - men det kan spela en roll för vissa startladdare och för andra operativsystem.
Format för namngivna fält
Det här formatet är mer läsbart, robust, utbyggbart och gör det möjligt att ange ytterligare information (t.ex. ett UUID). Vi rekommenderar att du använder det här formatet för att göra dina skript mer läsbara.
[enhet :] namn[=värde],
...
Fältet enhet är valfritt. sfdisk extraherar partitionsnumret från enhetsnamnet. Det gör det möjligt att ange partitionerna i slumpmässig ordning. Den här funktionen används mest av --dump. Använd den inte om du inte är säker.
värde kan stå mellan citattecken (t.ex. name="Detta är partitionens namn"). Fälten start= och size= stöder '+' och '-' på samma sätt som Unnamed-fields format.
De fält som för närvarande stöds är:
start=nummer
size=nummer
startbar
attrs=sträng
uuid=sträng
name=sträng
type=code
ETIKETT FÖR TOM DISK
sfdisk skapar inte partitionstabeller utan partitioner som standard. Raderna med partitioner förväntas som standard i skriptet. Den tomma partitionstabellen måste uttryckligen begäras med "label: <name>" skripthuvudrad utan några partitionsrader. Ett exempel:
echo "etikett: gpt" | sfdisk /dev/sdb
skapar en tom GPT-partitionstabell. Observera att --append inaktiverar den här funktionen.
SÄKERHETSKOPIERA PARTITIONSTABELLEN
Vi rekommenderar att du sparar layouten för dina enheter. sfdisk stöder två sätt.
Dumpning i sfdisk-kompatibelt format
Använd kommandot --dump för att spara en beskrivning av enhetens layout i en textfil. Dump-formatet är lämpligt för senare sfdisk-ingång. Ett exempel:
sfdisk --dump /dev/sda > sda.dump
Detta kan senare återställas genom:
sfdisk /dev/sda < sda.dump
Observera att sfdisk återställer partitionstyper och partitions-UUID:er helt och hållet. Detta kan eventuellt bli problematiskt om du duplicerar samma layout till olika diskar, eftersom det kan resultera i duplicerade UUID:n i ditt system.
Fullständig binär säkerhetskopiering
Om du vill göra en fullständig binär säkerhetskopia av alla sektorer där partitionstabellen är lagrad använder du kommandot --backup-pt-sectors. Det skriver sektorerna till ~/sfdisk-<device>-<offset>.bak-filer. Standardnamnet på säkerhetskopieringsfilen kan ändras med flaggan --backup-file. Säkerhetskopieringsfilerna innehåller endast rådata från enheten. Ett exempel:
sfdisk --backup-pt-sektorer /dev/sda
GPT-huvudet kan senare återställas genom:
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
Det är också möjligt att använda flaggan --backup för att skapa samma säkerhetskopia omedelbart efter start för andra sfdisk-kommandon. Säkerhetskopiera t.ex. partitionstabellen innan du tar bort alla partitioner från partitionstabellen:
sfdisk --backup --delete /dev/sda
Samma koncept med säkerhetskopieringsfiler används av wipefs(8).
Observera att sfdisk sedan version 2.26 inte längre tillhandahåller flaggan -I för att återställa sektorer. dd(1) tillhandahåller all nödvändig funktionalitet.
FÄRGER
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/sfdisk.disable
för kommandot sfdisk 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 sfdisk är:
header
warn
welcome
MILJÖ
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all, LIBSMARTCOLS_DEBUG=all
LIBSMARTCOLS_DEBUG_PADDING=on
aktiverar libblkid felsökningsutdata.
LOCK_BLOCK_DEVICE=<mode>
ANTECKNINGAR
Sedan version 2.26 tillhandahåller sfdisk inte längre flaggan -R eller --re-read för att tvinga kärnan att läsa om partitionstabellen. Använd blockdev --rereadpt i stället.
Sedan version 2.26 tillhandahåller sfdisk inte flaggorna --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer, --not-inside-outer.
EXEMPEL
sfdisk --list --label-nested=mbr /dev/sda
echo -e ',10M,L\n,10M,L\n,+,\n' | sfdisk /dev/sdc
echo -e 'size=10M, type=L\n size=10M, type=L\n size=+\n' | sfdisk /dev/sdc
echo -e 'type=swap' | sfdisk -N 3 /dev/sdc
sfdisk --part-type /dev/sdc 3 swap
sfdisk --delete /dev/sdc 2
echo "+,+" | sfdisk -N 3 --move-data /dev/sdc
UPPHOVSPERSONER
Karel Zak <kzak@redhat.com>
Den nuvarande implementeringen av sfdisk är baserad på den ursprungliga sfdisk från Andries E. Brouwer.
SE ÄVEN
FELRAPPORTERING
För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.
TILLGÄNGLIGHET
Kommandot sfdisk 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 |