- bookworm-backports 1:4.24.0-2~bpo12+1
SFDISK(8) | Administracja systemem | SFDISK(8) |
NAZWA¶
sfdisk - wyświetla lub modyfikuje tablicę partycji dysku
SKŁADNIA¶
sfdisk [opcje] urządzenie [-N numer-partycji]
sfdisk [opcje] polecenie
OPIS¶
sfdisk jest narzędziem do partycjonowania dowolnego urządzenia blokowego, powstałego głównie z myślą o skryptach. Działa w trybie interaktywnym, gdy jest uruchomiony w terminalu (tj. standardowe wejście odnosi się do terminala).
Od wersji 2.26 sfdisk obsługuje etykiety dysku MBR (DOS), GPT, SUN i SGI, ale nie obsługuje adresowania CHS (cylinder-głowica-sektor). CHS nigdy nie było istotne w Linuksie, a ten sposób adresowania nie ma żadnego sensu we współczesnych urządzeniach.
sfdisk chroni pierwszy sektor dysku przy tworzeniu nowej etykiety dysku. Opcja --wipe always wyłącza tę ochronę. Proszę zauważyć, że fdisk(8) i cfdisk(8) domyślnie całkowicie kasują ten obszar.
sfdisk (od wersji 2.26) wyrównuje początek i koniec partycji do limitów wejścia/wyjścia urządzenia blokowego, jeśli: podano rozmiar względny, korzysta się z domyślnych wartości albo do rozmiarów użyto przyrostków zwielokrotniających (np. MiB). Może się zdarzyć, że rozmiar partycji ulegnie optymalizacji (zmniejszeniu lub zwiększeniu) z powodu wyrównania, jeśli przesunięcie początku partycji podano dokładnie w sektorach, a rozmiar partycji relatywnie lub przy użycie przyrostków zwielokrotniających.
Zaleca się w ogóle nie podawać przesunięcia początku partycji, lecz określić jej rozmiar w MiB, GiB itd. W takim przypadku sfdisk wyrówna wszystkie partycje do limitów wejścia/wyjścia urządzenia blokowego (lub, gdy limity wejścia/wyjścia są zbyt małe, to do granicy megabajta, aby zachować przenośność układu dysku). Jeśli to domyślne zachowanie jest niepożądane (zwykle w przypadku bardzo małych partycji), to należy określić przesunięcie i rozmiar w sektorach. Program sfdisk nie dokona wówczas żadnej optymalizacji względem podanych wartości.
sfdisk, w przeciwieństwie do fdisk(8), nie tworzy standardowych partycji systemowych dla etykiet dysku SGI i SUN. Konieczne jest jawne utworzenie wszystkich partycji w tym partycji systemowych zajmujących cały dysk.
sfdisk używa ioctl BLKRRPART (ponowne odczytanie tablicy partycji) aby upewnić się, że urządzenie nie jest używane przez system lub inne narzędzia (zob. też --no-reread). Możliwe jest, że ta funkcja lub inna aktywność sfdisk będzie ścigała się z systemd-udevd(8). Zalecanym sposobem uniknięcia ewentualnych kolizji jest skorzystanie z opcji --lock. Taka blokada spowoduje pominięcie przez systemd-udevd zdarzenia na danym urządzeniu.
Zachęta sfdisk jest jedynie wskazówką dla użytkowników, a wyświetlony numer partycji nie oznacza, że utworzony zostanie taki sam wpis tablicy partycji (jeśli nie podano -N), szczególnie w przypadku tablic zawierających luki.
POLECENIA¶
Polecenia wzajemnie się wykluczają.
[-N numer-partycji] urządzenie
Jeśli podano opcję -N, to zmiany są wprowadzane w partycji określonej numerem-partycji. Pola partycji których nie podano, nie są modyfikowane.
Proszę zauważyć, że opcją -N można w ten sposób zaadresować partycję nieistniejącą. Przykładowo MBR zawiera zawsze 4 partycje, ale liczba używanych partycji może być też mniejsza. W takim przypadku sfdisk podąży za domyślnymi wartościami z tablicy partycji i nie użyje wbudowanych wartości domyślnych dla nieużywanych partycji podanych z opcją -N. Zob. też --append.
-A, --activate urządzenie [numer-partycji...]
Polecenie aktywacji jest obsługiwane tylko w przypadku MBR i PMBR. Jeśli wykryto etykietę GPT, to sfdisk wypisze ostrzeżenie i automatycznie przejdzie do PMBR.
Jeśli nie poda się numeru-partycji, wypisywana jest lista partycji z aktywną flagą.
--backup-pt-sectors urządzenie
--delete urządzenie [numer-partycji...]
-d, --dump urządzenie
-g, --show-geometry [urządzenie...]
-J, --json urządzenie
-l, --list [urządzenie...]
-F, --list-free [urządzenie...]
--part-attrs urządzenie numer-partycji [atrybuty]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bity 3-47
Bity 48-63
--part-label urządzenie numer-partycji [etykieta]
--part-type urządzenie numer-partycji [typ]
Argument typ jest liczbą szesnastkową w przypadku MBR, GUID-em w przypadku GPT, aliasem (np. "linux") lub skrótem (np. "L"). Ze względu na kompatybilność wsteczną, opcje -c i --id mają takie samo znaczenie.
--part-uuid urządzenie numer-partycji [uuid]
--disk-id urządzenie [identyfikator]
-r, --reorder urządzenie
-s, --show-size [urządzenie...]
-T, --list-types
-V, --verify [urządzenie...]
--relocate oper urządzenie
gpt-bak-std
gpt-bak-mini
OPCJE¶
-a, --append
Proszę zauważyć, że w tym przypadku partycja nieużywana może być użyta ponownie, nawet gdy nie jest ostatnią partycją w tablicy partycji. Zob. też -N aby określić wpis w tablicy partycji.
-b, --backup
--color[=kiedy]
-f, --force
--Linux
--lock[=tryb]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file ścieżka
--move-data[=ścieżka]
Opcjonalna ścieżka określa nazwę pliku dziennika. Dziennik zawiera informacje o wszystkich operacjach odczytu/zapisu na danych partycji. Słowo "@default" jako ścieżka wymusza na sfdisk korzystanie z pliku ~/sfdisk-<nazwa-urządzenia>.move. Dziennik jest opcjonalny od wersji 2.35.
Proszę zauważyć, że operacja ta jest ryzykowna i nie jest niepodzielna. Należy wykonać kopię zapasową danych!
Zob. też --move-use-fsync.
W poniższym przykładzie, pierwsze polecenie utworzy wolną przestrzeń przed pierwszą partycją o rozmiarze 100 MiB i przeniesie dane, które ona zawiera (np. system plików). Następne polecenie utworzy nową partycję w wolnym miejscu (z przesunięciem 2048), a ostatnie zmieni kolejność partycji, aby odzwierciedlała kolejność na dysku (pierwotna sdc1 stanie się 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
Domyślna listę kolumn można rozszerzyć, jeśli listę poda się w formacie +lista (np. -o +UUID).
-q, --quiet
-u, --unit S
-X, --label typ
-Y, --label-nested typ
-w, --wipe kiedy
-W, --wipe-partitions kiedy
-v, --version
-h, --help
FORMATY WEJŚCIOWE¶
sfdisk obsługuje dwa formaty wejściowe i ogólne wiersze nagłówkowe.
Wiersze nagłówkowe¶
Opcjonalne wiersze nagłówkowe określają ogólne informacje odnoszące się do tablicy partycji. Format wiersza nagłówkowego:
<nazwa>: <wartość>
Aktualnie rozpoznawane są następujące nagłówki:
unit
label
label-id
first-lba
last-lba
table-length
grain
sector-size
Proszę zauważyć, że wiersze nagłówkowe można użyć jedynie przed podaniem pierwszej partycji w wejściu.
Format pól nienazwanych¶
początek rozmiar typ flaga-rozruchu
gdzie każdy wiersz dotyczy jednego opisu partycji.
Pola są oddzielone białym znakiem, przecinkiem (zalecane) lub dwukropkiem, po którym może wystąpić biały znak; początkowe i końcowe białe znaki są ignorowane. Liczby mogą być ósemkowe, dziesiętne lub szesnastkowe; domyślnie są dziesiętne. Jeśli jakieś pole jest nieobecne, puste lub podane jako "-" używane są domyślne wartości. Gdy jednak poda się opcję -N (zmiana pojedynczej partycji), domyślną wartością każdego pola jest jej poprzednia wartość.
Domyślną wartością początku jest pierwszy nieprzypisany sektor wyrównany zgodnie z limitami wejścia/wyjścia urządzenia. Domyślne przesunięcie początku pierwszej partycji wynosi 1 MiB. Jeśli po przesunięciu podano przyrostki zwielokrotniające (KiB, MiB, GiB, TiB, PiB, EiB, ZiB i YiB), to liczba ta jest interpretowana jako przesunięcie w bajtach. Od wersji 2.38 przy użyciu opcji -N (zmiana pojedynczej partycji) można użyć "+" do powiększenia partycji, przesuwając jej początek w celu wykorzystania wolnego miejsca przed partycją.
Domyślna wartość rozmiaru oznacza "tak bardzo, jak to możliwe" tzn. do następnej partycji lub do końca urządzenia. Argument numeryczny jest domyślnie interpretowany jako liczba sektorów, ale jeśli występują po nim przyrostki zwielokrotniające (KiB, MiB, GiB, TiB, PiB, EiB, ZiB i YiB), to liczba jest interpretowana jako rozmiar partycji w bajtach, który jest następnie wyrównywany zgodnie z limitami wejścia/wyjścia urządzenia. Zamiast tego można też użyć "+" aby powiększyć rozmiar partycji tak bardzo jak to możliwe. Proszę zwrócić uwagę, że "+" jest równoważne domyślnemu zachowaniu w przypadku nowej partycji; istniejące partycję będą miały zmieniony rozmiar wedle potrzeb.
Typ partycji jest podawany: szesnastkowo w przypadku MBR (DOS) (przy czym przedrostek 0x jest opcjonalny), jako łańcuch GUID w przypadku GPT, jako skrót lub jako alias. Zaleca się użycie dwóch liter w przypadku szesnastkowych kodów MBR, aby uniknąć kolizji pomiędzy przestarzałym skrótem "E" i kodem szesnastkowym MBR "0E". Ze względu na kompatybilność wsteczną sfdisk w pierwszej kolejności spróbuje zinterpretować typ jako skrót w skryptach partycjonowania, choć w innych miejscach (np. przy poleceniu --part-type) skrót jest rozważany jako ostatnia możliwość.
Od wersji 2.36 libfdisk obsługuje aliasy typów partycji jako rozszerzenie skrótów. Alias jest łatwo odczytywalnym słowem dla człowieka (np. "linux").
Od wersji 2.37 libfdisk obsługuje nazwę typu partycji na wejściu, ignorując wielkość znaków oraz wszystkie znaki nazwy niebędące znakami alfanumerycznymi lub cyframi (np. "Linux /usr x86" odpowiada "linux usr-x86").
Obsługiwane skróty i aliasy:
L - alias "linux"
S - alias "swap"
Ex - alias "extended"
H - alias "home"
U - alias "uefi"
R - alias "raid"
V - alias "lvm"
Domyślnym typem jest linux.
Skrót "X" oznaczający linuksową partycję rozszerzoną (85) jest przestarzały na rzecz "Ex".
flaga-rozruchu jest określona jako [*|-], przy czym domyślna jest wartość oznaczająca brak rozruchu (-). Wartość tego pola nie ma znaczenia dla Linuksa - jądro Linux uruchamia się już po fazie rozruchu - ale może być ważna dla pewnych menedżerów rozruchu lub innych systemów operacyjnych.
Format pól nazwanych¶
Format ten jest czytelniejszy, pewniejszy, rozszerzalny i pozwala podać dodatkowe informacje (np. UUID). Zaleca się korzystanie z formatu pól nazwanych, ponieważ wpływa on pozytywnie na przejrzystość skryptów użytkownika.
[urządzenie :]
nazwa[=wartość], ...
Pole urządzenie jest opcjonalne. sfdisk pobiera numer partycji z nazwy urządzenia. Pozwala to podać partycje w dowolnej kolejności. Funkcja przydatna głównie z --dump. W przypadku wątpliwości proszę jej nie używać.
Wartość można podać w cudzysłowach (np. name="To jest nazwa partycji"). Pola start= i size= obsługują "+" i "-" w ten sam sposób jak format pól nienazwanych.
Obecnie obsługiwane są następujące pola:
start=liczba
size=liczba
bootable
attrs=łańcuch
uuid=łańcuch
name=łańcuch
type=kod
PUSTA ETYKIETA DYSKU¶
sfdisk domyślnie nie tworzy tablicy partycji niezawierającej partycji. Domyślnie oczekuje się podania wierszy z partycjami przez skrypt. Pusta tablica partycji musi być zażądana bezpośrednio wierszem nagłówkowym "label: <nazwa>" bez wierszy partycji. Przykładowo:
echo 'label: gpt' | sfdisk /dev/sdb
tworzy pustą tablicę partycji GPT. Proszę zauważyć, że --append wyłącza tę funkcję.
KOPIA ZAPASOWA TABLICY PARTYCJI¶
Zaleca się zachowanie układu urządzeń. sfdisk obsługuje dwa sposoby.
Zrzut w formacie kompatybilnym ze sfdisk¶
Polecenie --dump zapisze opis układu urządzenia do pliku tekstowego. Format zrzutu nadaje się później wykorzystania jako wejście sfdisk. Przykładowo:
sfdisk --dump /dev/sda > sda.dump
Polecenie do późniejszego przywrócenia:
sfdisk /dev/sda < sda.dump
Pełna, binarna kopia zapasowa¶
W celu uzyskania pełnej, binarnej kopii zapasowej wszystkich sektorów, gdzie przechowywana jest tablica partycji, proszę użyć polecenia --backup-pt-sectors. Zapisuje sektory do plików ~/sfdisk-<urządzenie>-<przesunięcie>.bak. Domyślną nazwę plików kopii zapasowej można zmienić opcją --backup-file. Pliki kopii zapasowej zawierają jedynie surowe dane z urządzenia. Przykładowo:
sfdisk --backup-pt-sectors /dev/sda
Nagłówek GPT można później przywrócić poleceniem:
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
Można również użyć opcji --backup do utworzenia kopii zapasowej przed innymi poleceniami sfdisk. Przykładowo, aby utworzyć kopię zapasową tablicy partycji przed usunięciem z niej wszystkich partycji:
sfdisk --backup --delete /dev/sda
Tego samego konceptu plików kopii zapasowej używa wipefs(8).
Proszę zauważyć, że sfdisk od wersji 2.26 nie udostępnia już opcji -I do odzyskania sektorów. Wystarczająca jest funkcjonalność programu dd(1).
KOLORY¶
Kolorowanie wyjściowe zaimplementowano poprzez terminal-colors.d(5). Jawne kolorowanie można wyłączyć za pomocą pustego pliku
/etc/terminal-colors.d/sfdisk.disable
dla polecenia sfdisk albo dla wszystkich narzędzi plikiem
/etc/terminal-colors.d/disable
Globalne ustawienie przesłonią $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d danego użytkownika.
Proszę zauważyć, że kolorowanie wyjścia może być domyślnie włączone i wówczas katalogi terminal-colors.d mogą jeszcze nie istnieć.
Logiczne nazwy kolorów obsługiwane przez sfdisk to:
header
warn
welcome
ŚRODOWISKO¶
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all
LIBSMARTCOLS_DEBUG=all
LOCK_BLOCK_DEVICE=<tryb>
UWAGI¶
Od wersji 2.26 sfdisk nie udostępnia opcji -R lub --re-read do wymuszenie ponownego odczytania przez jądro tablicy partycji. Proszę zamiast tego użyć polecenia blockdev --rereadpt.
Od wersji 2.26 sfdisk nie udostępnia opcji --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer oraz --not-inside-outer.
PRZYKŁADY¶
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
AUTORZY¶
Karel Zak <kzak@redhat.com>
Obecna implementacja sfdisk korzysta z oryginalnego sfdisk autorstwa Andriesa E. Brouwera.
ZOBACZ TAKŻE¶
fdisk(8), cfdisk(8), parted(8), partprobe(8), partx(8)
ZGŁASZANIE BŁĘDÓW¶
Raporty o błędach proszę zgłaszać pod adresem <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ¶
Polecenie sfdisk jest częścią pakietu util-linux i można je pobrać ze strony Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
4 sierpnia 2022 r. | util-linux 2.38.1 |