- unstable 2.40.3-1
SFDISK(8) | Administrare sistem | SFDISK(8) |
NUME¶
sfdisk - afișează sau manipulează un tabel de partiții pentru discuri
REZUMAT¶
sfdisk [opțiuni] dispoziiv [-N număr-partiție]
sfdisk [opțiuni] comanda
DESCRIERE¶
sfdisk este o unealtă orientată pe scripturi pentru partiționarea oricărui dispozitiv bloc. Aceasta rulează în modul interactiv dacă este executată într-un terminal (stdin se referă la un terminal).
Începând cu versiunea 2.26, sfdisk acceptă etichetele de disc MBR (DOS), GPT, SUN și SGI, dar nu mai oferă nicio funcționalitate pentru adresarea CHS (Cylinder-Head-Sector). CHS nu a fost niciodată important pentru Linux, iar acest concept de adresare nu are niciun sens pentru noile dispozitive.
sfdisk protejează primul sector al discului atunci când se creează o nouă etichetă de disc. Opțiunea --wipe always dezactivează această protecție. Rețineți că fdisk(8) și cfdisk(8) șterg complet această zonă în mod implicit.
sfdisk (începând cu versiunea 2.26) aliniază începutul și sfârșitul partițiilor la limitele de intrare/ieșire ale dispozitivelor de bloc atunci când sunt specificate dimensiuni relative, când sunt utilizate valorile implicite sau când sunt utilizate sufixe multiplicative (de exemplu, MiB) pentru dimensiuni. Este posibil ca dimensiunea partiției să fie optimizată (redusă sau mărită) din cauza alinierii dacă poziția de început este specificată exact în sectoare, iar dimensiunea partiției este relativă sau prin sufixe multiplicative.
Modalitatea recomandată este de a nu specifica deloc pozițiile de pornire și de a specifica dimensiunea partiției în MiB, GiB (sau similar). În acest caz, sfdisk aliniază toate partițiile la limitele de In/Ieș ale dispozitivelor de bloc (sau, dacă limitele de In/Ieș sunt prea mici, atunci la limita de megaocteți pentru a păstra portabilitatea structurii discului). În cazul în care acest comportament implicit nu este dorit (de obicei pentru partiții foarte mici), atunci specificați distanțele și dimensiunile în sectoare. În acest caz, sfdisk urmează în întregime numerele specificate, fără nicio optimizare.
sfdisk nu creează partiții de sistem standard pentru etichetele de disc SGI și SUN, așa cum face fdisk(8). Este necesar să creați în mod explicit toate partițiile, inclusiv partițiile de sistem ale întregului disc.
sfdisk utilizează ioctl-ul BLKRRPART (reread partition table) pentru a se asigura că dispozitivul nu este utilizat de sistem sau de alte instrumente (a se vedea și --no-reread). Este posibil ca această caracteristică sau o altă activitate sfdisk să interfereze cu systemd-udevd(8). Modalitatea recomandată pentru a evita posibilele coliziuni (interferențe) este utilizarea opțiunii --lock. Blocarea exclusivă va face ca systemd-udevd să sară peste gestionarea evenimentelor de pe dispozitiv.
Promptul sfdisk este doar un indiciu pentru utilizatori, iar un număr de partiție afișat nu înseamnă că va fi creată aceeași intrare în tabela de partiții (dacă -N nu este specificată), în special pentru tabelele cu goluri.
COMENZI¶
Comenzile se exclud reciproc.
[-N număr-partiție] dispozitiv
Dacă opțiunea -N este specificată, atunci modificările sunt aplicate partiției la care se referă număr-partiție. Câmpurile nespecificate ale partiției nu sunt modificate.
Rețineți că este posibil să adresați o partiție neutilizată cu -N. De exemplu, un MBR conține întotdeauna 4 partiții, dar numărul de partiții utilizate poate fi mai mic. În acest caz, sfdisk urmează valorile implicite din tabelul de partiții și nu utilizează valorile implicite încorporate pentru partiția neutilizată, indicate cu -N. A se vedea și --append.
-A, --activate dispozitiv [număr-partiție...]
Comanda de activare este acceptată numai pentru MBR și PMBR. Dacă este detectată o etichetă GPT, atunci sfdisk afișează un avertisment și intră automat în PMBR.
Dacă nu este specificat nici un număr-partiție, atunci se listează partițiile cu un fanion activat.
--backup-pt-sectors dispozitiv
--delete dispozitiv [număr-partiție...]
-d, --dump dispozitiv
-g, --show-geometry [dispozitiv...]
-J, --json dispozitiv
-l, --list [dispozitiv...]
-F, --list-free [dispozitiv...]
--part-attrs dispozitiv număr-partiție [atribute]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bits 3-47
Bits 48-63
--part-label dispozitiv număr-partiție [eticheta]
--part-type dispozitiv număr-partiție [tip]
Argumentul tip este hexazecimal pentru MBR, GUID pentru GPT, alias de tip (de exemplu, "linux") sau abreviere de tip (de exemplu, "L"). Pentru compatibilitate retroactivă, opțiunile -c și --id au aceeași semnificație ca și aceasta.
--part-uuid dispozitiv număr-partiție [uuid]
--disk-id dispozitiv [id]
-r, --reorder dispozitiv
-s, --show-size [dispozitiv...]
-T, --list-types
-V, --verify [dispozitiv...]
--relocate operația dispozitiv
gpt-bak-std
gpt-bak-mini
OPȚIUNI¶
-a, --append
Rețineți că partiția neutilizată poate fi reutilizată în acest caz, deși nu este ultima partiție din tabelul de partiții. A se vedea, de asemenea, -N pentru a specifica intrarea în tabelul de partiții.
-b, --backup
--color[=când]
-f, --force
--Linux
--lock[=mod]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file ruta
--move-data[=ruta]
Argumentul opțional ruta specifică numele fișierului jurnal. Fișierul jurnal conține informații despre toate operațiile de citire/scriere asupra datelor partiției. Cuvântul "@default" ca rută forțează sfdisk să utilizeze ~/sfdisk-<nume dispozitiv>.move pentru jurnal. Jurnalul este opțional începând cu v2.35.
Rețineți că această operație este riscantă și nu este atomică. Nu uitați să faceți o copie de rezervă a datelor!
A se vedea, de asemenea --move-use-fsync.
În exemplul de mai jos, prima comandă creează o zonă liberă de 100MiB înainte de prima partiție și mută datele pe care le conține (de exemplu, un sistem de fișiere), următoarea comandă creează o nouă partiție din spațiul liber (la poziția 2048), iar ultima comandă reordonează partițiile pentru a se potrivi cu ordinea de pe disc (sdc1 inițială va deveni 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 listă
Lista implicită de coloane poate fi extinsă dacă lista este specificată în formatul +listă (de exemplu, -o +UUID).
-q, --quiet
-u, --unit S
-X, --label tip
-Y, --label-nested tip
-w, --wipe când
-W, --wipe-partitions când
-v, --version
-h, --help
FORMATE DE INTRARE¶
sfdisk acceptă două formate de intrare și linii de antet generice.
Linii de antet¶
Liniile opționale de antet specifică informații generice care se aplică tabelului de partiții. Formatul liniilor de antet este următorul:
<nume>: <valoare>
Antetele recunoscute în prezent sunt:
unit
label
label-id
first-lba
last-lba
table-length
grain
sector-size
Rețineți că este posibilă utilizarea liniilor de antet numai înainte ca prima partiție să fie specificată la intrare.
Formatul câmpurilor-fără-nume¶
început dimensiune tip fanion-pornire
în care fiecare linie reprezintă un descriptor de partiție.
Câmpurile se separă prin spații albe, virgule (recomandat) sau punct și virgulă, eventual urmate de spațiu alb; spațiul alb inițial și final este ignorat. Numerele pot fi octale, zecimale sau hexazecimale; valoarea zecimală este cea implicită. În cazul în care un câmp este absent, gol sau specificat ca „-”, se utilizează o valoare implicită. Dar atunci când se dă opțiunea -N (modificarea unei singure partiții), valoarea implicită pentru fiecare câmp este valoarea sa anterioară.
Valoarea implicită a lui început este primul sector neatribuit, aliniat în conformitate cu limitele de intrare/ieșire ale dispozitivului. Poziția implicită de „început” pentru prima partiție este de 1 MiB. Dacă poziția este urmată de sufixele multiplicative (KiB, MiB, GiB, GiB, TiB, PiB, EiB, ZiB și YiB), atunci numărul este interpretat ca o poziție în octeți. Începând cu versiunea v2.38, atunci când se dă opțiunea -N (modificarea unei singure partiții), se poate utiliza un „+” pentru a mări partiția prin mutarea începutului partiției, dacă există spațiu liber înainte de partiție.
Valoarea implicită a lui dimensiune indică „cât de mult posibil”, adică până la următoarea partiție sau până la sfârșitul dispozitivului. Un argument numeric este interpretat în mod implicit ca un număr de sectoare, însă dacă dimensiunea este urmată de unul dintre sufixele multiplicative (KiB, MiB, GiB, TiB, PiB, EiB, ZiB și YiB), atunci numărul este interpretat ca dimensiunea partiției în octeți și este apoi aliniat în conformitate cu limitele de intrare/ieșire ale dispozitivului. În loc de un număr se poate utiliza un „+” pentru a mări partiția cât mai mult posibil. Rețineți că „+” este echivalent cu comportamentul implicit pentru o partiție nouă; partițiile existente vor fi redimensionate în funcție de necesități.
Tipul partiției tip este dat în hexazecimal pentru MBR (DOS), unde prefixul 0x este opțional; un șir GUID pentru GPT; o comandă rapidă sau un alias. Se recomandă utilizarea a două litere pentru codurile hexazecimale MBR pentru a evita coliziunea între prescurtarea depreciată „E” și codul hexazecimal MBR „0E”. Pentru compatibilitate retroactivă, sfdisk încearcă să interpreteze tip ca o scurtătură ca primă posibilitate în scripturile de partiționare, deși în alte locuri (de exemplu, comanda --part-type) încearcă să interpreteze scurtăturile ca ultima posibilitate.
Începând cu versiunea v2.36, libfdisk suportă alias de tip partiție ca extensie a comenzilor rapide. Alias este un cuvânt simplu, ușor de citit de către om (de exemplu, "linux").
Începând cu versiunea v2.37, libfdisk acceptă numele tipului de partiție la intrare, ignorând diferențele dintre majuscule și minuscule și toate caracterele non-alfanumerice și non-digitale din nume (de exemplu, „Linux /usr x86” este același lucru cu „linux usr-x86”).
Abrevieri și alias acceptate:
L - alias 'linux'
S - alias 'swap'
Ex - alias 'extended'
H - alias 'home'
U - alias 'uefi'
R - alias 'raid'
V - alias 'lvm'
Valoarea implicită a tipului este linux.
Abrevierea „X” pentru partiția extinsă Linux (85) este depreciată în favoare de „Ex”.
Fanionul de-pornire al partiției este specificat prin [{*|-], valoare implicită este ne-pornibilă. Valoarea acestui câmp este irelevantă pentru Linux - atunci când Linux rulează, aceasta a fost deja pornită - dar ar putea juca un rol pentru anumite încărcătoare de pornire și pentru alte sisteme de operare.
Formatul câmpurilor-cu-nume¶
Acest format este mai ușor de citit, mai robust, mai extensibil și permite specificarea de informații suplimentare (de exemplu, un UUID). Se recomandă utilizarea acestui format pentru ca scripturile dumneavoastră să fie mai ușor de citit.
[dispozitiv :] nume[=valoare],
...
Câmpul _dispozitiv_este opțional. sfdisk extrage numărul partiției din numele dispozitivului. Aceasta permite specificarea partițiilor în ordine aleatorie. Această funcționalitate este utilizată în principal de --dump. Nu o folosiți dacă nu sunteți sigur.
valoare poate fi între ghilimele (de exemplu, name="Acesta este numele partiției"). Câmpurile start= și size= acceptă „+” și „-” în același mod ca și Formatul câmpurilor-fără-nume.
Câmpurile acceptate în prezent sunt:
start=număr
size=număr
bootable
attrs=șir
uuid=șir
name=șir
type=cod
ETICHETà DE DISC GOALö
sfdisk nu creează în mod implicit tabelul de partiții fără partiții. Liniile cu partiții sunt așteptate în script în mod implicit. Tabelul de partiții gol trebuie să fie solicitat în mod explicit prin "label: <nume>" linia de antet a scriptului fără linii de partiții. De exemplu:
echo 'label: gpt' | sfdisk /dev/sdb
creează un tabel de partiții GPT gol. Rețineți că --append dezactivează această caracteristică.
CREAREA COPIEI DE REZERVĂ A TABELULUI DE PARTIȚII¶
Se recomandă să salvați structura dispozitivelor dumneavoastră. sfdisk acceptă două moduri.
Transferul în format compatibil sfdisk¶
Utilizați comanda --dump pentru a salva o descriere a structurii dispozitivului într-un fișier text. Formatul „dump” este potrivit pentru introducerea ulterioară în sfdisk. De exemplu:
sfdisk --dump /dev/sda > sda.dump
Aceasta poate fi restaurată ulterior cu:
sfdisk /dev/sda < sda.dump
Rețineți că sfdisk restaurează complet tipurile de partiții și UUID-urile partițiilor. Acest lucru ar putea deveni problematic dacă duplicați aceeași dispunere (structură de partiții) pe diferite discuri, deoarece ar putea rezulta UUID-uri duplicate în cadrul sistemului dumneavoastră.
Copie de rezervă binară completă¶
Dacă doriți să efectuați o copie de rezervă binară completă a tuturor sectoarelor în care este stocată tabela de partiții, atunci utilizați comanda --backup-pt-sectors. Aceasta scrie sectoarele în fișierele ~/sfdisk-<dispozitiv>-<poziția>.bak. Numele implicit al fișierului de backup poate fi schimbat cu opțiunea --backup-file. Fișierele de backup conțin numai datele brute de pe dispozitiv. De exemplu:
sfdisk --backup-pt-sectors /dev/sda
Antetul GPT poate fi restaurat ulterior cu:
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
De asemenea, este posibil să se utilizeze opțiunea --backup pentru a crea aceeași copie de rezervă imediat după pornire pentru alte comenzi sfdisk. De exemplu, copie de rezervă a tabelului de partiții înainte de a șterge toate partițiile din tabelul de partiții:
sfdisk --backup --delete /dev/sda
Același concept de fișiere de copie de rezervă este utilizat de wipefs(8).
Rețineți că sfdisk, începând cu versiunea 2.26, nu mai oferă opțiunea -I pentru restaurarea sectoarelor. dd(1) oferă toate funcționalitățile necesare.
CULORI¶
Colorarea ieșirii este implementată de funcționalitatea terminal-colors.d(5). Colorarea implicită poate fi dezactivată printr-un fișier gol
/etc/terminal-colors.d/sfdisk.disable
pentru comanda sfdisk sau pentru toate instrumentele (comenzile) prin
/etc/terminal-colors.d/disable
Configurația specifică utilizatorului $XDG_CONFIG_HOME/terminal-colors.d sau $HOME/.config/terminal-colors.d prevalează asupra celei globale.
Rețineți că colorarea ieșirii poate fi activată în mod implicit și, în acest caz, directoarele terminal-colors.d nu trebuie să existe încă.
Numele de culori logice acceptate de sfdisk sunt:
header
warn
welcome
MEDIU¶
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all
LIBSMARTCOLS_DEBUG=all
LOCK_BLOCK_DEVICE=<mod>
NOTE¶
Începând cu versiunea 2.26, sfdisk nu mai oferă opțiunea -R sau --re-read pentru a forța nucleul să recitească tabelul de partiții. Folosiți în schimb blockdev --rereadpt.
Începând cu versiunea 2.26, sfdisk nu oferă opțiunile --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer, --not-inside-outer.
EXEMPLE¶
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
AUTORI¶
Karel Zak <kzak@redhat.com>
Actuala implementare sfdisk se bazează pe sfdisk original de la Andries E. Brouwer.
CONSULTAȚI ȘI¶
RAPORTAREA ERORILOR¶
Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor la <https://github.com/util-linux/util-linux/issues>.
DISPONIBILITATE¶
Comanda sfdisk face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
2025-01-09 | util-linux 2.40.3 |