- bookworm 4.18.1-1
SFDISK(8) | Керування системою | SFDISK(8) |
НАЗВА¶
sfdisk — показ або керування таблицею розділів диска
КОРОТКИЙ ОПИС¶
sfdisk [параметри] пристрій [-N номер-розділу]
sfdisk [параметри] команда
ОПИС¶
sfdisk — орієнтований на скрипти інструмент для поділу будь-якого блокового пристрою на розділи. Програма працює в інтерактивному режимі, якщо її запущено з термінала (stdin посилається на термінал).
Починаючи з версії 2.26, у sfdisk передбачено підтримку міток дисків MBR (DOS), GPT, SUN та SGI, але більше не передбачено жодних функціональних можливостей для адресування CHS (Cylinder-Head-Sector або циліндр-голівка-сектор). CHS ніколи не була важливою для Linux, і ця концепція адресування немає жодного сенсу для нових пристрої.
sfdisk захищає перший сектор диска при створенні мітки диска. Параметр --wipe always вимикає цей захист. Зауважте, що fdisk(8) і cfdisk(8) типово повністю витирають цю область.
sfdisk (починаючи з версії 2.26), якщо вказано відносні розміри, вирівнює початок і кінець розділів до меж введення-виведення блокового пристрою, якщо використано типові значення або якщо використано суфікси множення (наприклад МіБ) для множення. Розмір розділу буде оптимізовано (зменшено або збільшено), якщо це можливо, через вирівнювання, якщо початок відступу вказано точно у секторах і розмір розділу відносно або за суфіксами множення.
Рекомендованим способом є не визначення початкових відступів, а визначення розміру розділу у МіБ, ГіБ (або подібних одиницях). У цьому випадку sfdisk вирівнює усі розділ до обмежень введення-виведення блокового пристрою (або, якщо обмеження введення-виведення є надто низькими, межа у мегабайтах для збереження портативності компонування диска). Якщо ця типова поведінка є небажаною (зазвичай, для дуже малих розділів), вкажіть відступи і розміри у секторах. У цьому випадку sfdisk повністю використовує вказані числа без будь-якої оптимізації.
sfdisk не створює стандартних розділів диска для дискових міток SGI і SUN, як це робить fdisk(8). Усі розділи слід буде створити явним чином, включно із розділами системи на увесь диск.
sfdisk використовує BLKRRPART ioctl (повторного читання таблиці розділів) для забезпечення того, щоб пристрій не буде використано системою або іншими інструментами (див. також --no-reread). Може так статися, що ця можливість або інші дії sfdisk конфліктуватимуть за ресурси з systemd-udevd(8). Рекомендованим способом уникнути цих конфліктів є використання параметра --lock. Виключне блокування призведе до того, що systemd-udevd не виконуватиме обробку подій на пристрої.
Запит sfdisk є лише підказкою для користувачів, а показаний номер розділу не означає, що буде створено той самий запис таблиці розділів (якщо не вказано -N), особливо для таблиць із прогалинами.
КОМАНДИ¶
Команди є взаємно виключними.
[-N номер-розділу] пристрій
Якщо вказано параметр -N, зміни буде застосовано до розділу, адресування якого вказано аргументом номер-розділу. Невказані поля розділу не буде змінено.
Зауважте, що можна адресувати невикористаний розділ за допомогою параметра -N. Наприклад, MBR завжди містить 4 розділи, але кількість використаних розділів може бути меншою. У цьому випадку sfdisk використовує типові значення з таблиці розділів і не використовує вбудовані типові значення для невикористаного розділу, які задано за допомогою -N. Див. також --append.
-A, --activate пристрій [номер-розділу...]
Підтримку команди активації передбачено лише для MBR і PMBR. Якщо виявлено мітку GPT, sfdisk виведе попередження і автоматично увійде до PMBR.
Якщо не вказано аргументу номер-розділу, буде виведено список розділів із прапорцем «enabled».
--backup-pt-sectors пристрій
--delete пристрій [номер-розділу...]
-d, --dump пристрій
-g, --show-geometry [пристрій...]
-J, --json пристрій
-l, --list [пристрій...]
-F, --list-free [пристрій...]
--part-attrs пристрій номер_розділу [атрибути]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Біти 3-47
Біти 48-63
--part-label пристрій номер-розділу [мітка]
--part-type пристрій номер-розділу [тип]
Аргумент тип має бути шістнадцятковим числом для MBR, GUID for GPT, альтернативною назвою типу (наприклад "linux") або скороченням типу (наприклад «L»). Для зворотної сумісності параметри -c і --id мають те саме призначення, що і цей параметр.
--part-uuid пристрій номер-розділу [uuid]
--disk-id пристрій [ідентифікатор]
-r, --reorder пристрій
-s, --show-size [пристрій...]
-T, --list-types
-V, --verify [пристрій...]
--relocate дія пристрій
gpt-bak-std
gpt-bak-mini
ПАРАМЕТРИ¶
-a, --append
Зауважте, що у цьому випадку невикористаний розділ може бути повторно використано, хоча він не є останнім розділом у таблиці розділів. Див. також -N щодо визначення запису у таблиці розділів.
-b, --backup
--color[=умова]
-f, --force
--Linux
--lock[=режим]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file шлях
--move-data[=шлях]
Необов'язковий аргумент шлях вказує назву файла журналу. Файл журналу містить відомості щодо усіх дій читання-запису щодо даних розділу. Якщо вказано «@default», як шлях, sfdisk у примусовому режимі використовуватиме ~/sfdisk-<назва-пристрою>.move для ведення журналу. Журнал є необов'язковим, починаючи з версії 2.35.
Зауважте, що ця дія є ризикованою і не є атомарною. Не забудьте створити резервну копію ваших даних!
Див. також --move-use-fsync.
У наведеному нижче прикладі перша команда створює вільну область у 100 МіБ до першого розділу і пересуває дані (наприклад файлову систему), які там містяться. Наступна команда створює розділ на основі вільного місця (із відступом 2048), а остання команда перевпорядковує розділи так, щоб вони відповідали порядку на диску (початковий sdc1 стане 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 список
Типовий список стовпчиків може бути розширено, якщо список вказано у форматі +список (наприклад, -o +UUID).
-q, --quiet
-u, --unit S
-X, --label тип
-Y, --label-nested тип
-w, --wipe варіант
-W, --wipe-partitions варіант
-v, --version
-h, --help
ФОРМАТИ ВХІДНИХ ДАНИХ¶
У sfdisk передбачено підтримку двох форматів вхідних даних і типових рядків заголовка.
Рядки заголовка¶
Необов'язкові рядки заголовка визначають загальні відомості, які застосовуються до таблиці розділів. Формат рядка заголовка є таким:
<назва>: <значення>
У поточній версії розпізнаваними заголовками є такі:
unit
label
label-id
first-lba
last-lba
table-length
grain
sector-size
Зауважте, що рядки заголовка можна використовувати лише до того, як у вхідних даних визначено перший розділ.
Формат полів без назви¶
початок
розмір тип
завантажуваність
де кожен рядок складається з одного дескриптора розділу.
Поля відокремлюють пробілами, комами (рекомендовано) або крапками з комами, за якими може бути використано пробіл; початковий та кінцевий пробіли буде проігноровано. Числа може бути записано у вісімковій, десятковій або шістнадцятковій системі; типовою є десяткова. Якщо поле пропущено, вказано порожнім або вказано як '-', буде використано типове значення. Але якщо вказано параметр -N (змінити окремий розділ), типовим для кожного з полів буде його попереднє значення.
Типовим значенням аргументу початок є перший непов'язаний сектор, який вирівняно відповідно до обмежень введення-виведення пристрою. Типовим початковим відступом для першого розділу є 1 МіБ. Якщо після відступу вказано суфікси множення (KiB, MiB, GiB, TiB, PiB, EiB, ZiB і YiB), число буде оброблено як відступ у байтах. Починаючи з v2.38, коли було реалізовано параметр -N (зміна окремого розділу), можна скористатися '+' для збільшення розділу пересуванням початку розділу, якщо перед розділом є вільне місце.
Типове значення аргументу розмір визначає поведінку «якомога більше»; тобто, аж до наступного розділу або кінця пристрою. Числовий аргумент типово буде оброблено як кількість секторів. Втім, якщо за числовим розміром вказано один із суфіксів-множників (KiB, MiB, GiB, TiB, PiB, EiB, ZiB або YiB), число буде оброблено як розмір розділу у байтах і вирівняно відповідно до обмежень на введення-виведення пристрою. Замість числа можна вказати '+'. Це значення призведе до максимального збільшення розділу. Зауважте, що '+' є еквівалентом типової поведінки для нового розділу; якщо потрібно, розмір наявних розділів буде змінено відповідним чином.
Значення тип для розділу задається у форматі шістнадцяткового числа для MBR (DOS), де префікс 0x є необов'язковим; рядка GUID для GPT; скорочення або альтернативної назви. Рекомендуємо користуватися двома літерами для шістнадцяткових кодів MBR, щоб уникнути плутанини між застарілим скороченням 'E' і шістнадцятковим кодом MBR '0E'. У скриптах поділу на розділи для зворотної сумісності sfdisk намагається спершу обробити тип як скорочення, хоча в інших місцях (наприклад у команді --part-type) програма намагається використати скорочення як останню можливість.
Починаючи з версії v2.36, у libfdisk передбачено підтримку альтернативних назв типів розділів, як розширення до скорочень. Альтернативною назвою є просте зручне для читання слово (наприклад "linux").
Починаючи з версії 2.37, у libfdisk передбачено підтримку назв типів розділів у вхідних даних, ігнорування регістру символів та усіх не літерно-числових або нецифрових символів у назвах (приклад: "Linux /usr x86" є тим самим, що і "linux usr-x86").
Підтримувані скорочення і альтернативи:
L - alias 'linux'
S - alias 'swap'
Ex - alias 'extended'
H - alias 'home'
U - alias 'uefi'
R - alias 'raid'
V - alias 'lvm'
Типовим значенням типу є linux.
Скорочення «X» для розширеного розділу Linux (85) вважається застарілим, його замінило скорочення «Ex».
Аргумент завантажуваність вказують як [*|-]. Типовим є значення, яке вказує на непридатність до завантаження. Значення цього поля не беруть до уваги для Linux — якщо запущено Linux, його вже завантажено, — але він може братися до уваги для певних типів завантажувачів і для інших операційних систем.
Формат іменованих полів¶
Цей формат є зручнішими для читання, стійкішим та розширюванішим і надає змогу вказати додаткові відомості (наприклад UUID). Рекомендуємо користуватися цим форматом, щоб зробити ваші скрипти зручнішими для читання.
[пристрій
:]
назва[=значення],
...
Поле пристрій є необов'язковим. sfdisk видобуває номер розділу з назви пристрою. Поле надає змогу вказати розділи у випадковому порядку. Цю функціональну можливість, здебільшого, використовують для --dump. Не користуйтеся нею, якщо не впевнені у результатах.
Аргумент значення може бути вказано у лапках (наприклад, name="This is partition name"). Для полів start= і size= передбачено підтримку значень '+' і '-', які мають таке саме призначення, що і у форматі неіменованих полів.
У поточній версії поточними підтримуваними полями є такі:
start=число
size=число
bootable
attrs=рядок
uuid=рядок
name=рядок
type=код
ПОРОЖНЯ МІТКА ДИСКА¶
Типово, sfdisk не створює таблиці розділів без розділів. Типово, програма очікує у скрипті рядків із розділами. Запит на порожню таблицю розділів можна надіслати явним чином за допомогою рядка заголовка скрипту "label: <назва>" без будь-яких рядків розділів. Приклад:
echo 'label: gpt' | sfdisk /dev/sdb
створює порожню таблицю розділів GPT. Зауважте, що --append вимикає цю можливість.
РЕЗЕРВНЕ КОПІЮВАННЯ ТАБЛИЦІ РОЗДІЛІВ¶
Рекомендуємо зберегти компонування ваших пристроїв. У sfdisk передбачено підтримку двох способів.
Дамп у сумісному із sfdisk форматі¶
Скористайтеся командою --dump для збереження опису компонування розділів до текстового файла. Формат дампу є сумісним із вхідними командами sfdisk. Приклад:
sfdisk --dump /dev/sda > sda.dump
Копію пізніше може бути відновлено такою командою:
sfdisk /dev/sda < sda.dump
Повністю двійкова резервна копія¶
Якщо ви хочете виконати повне резервне копіювання двійкової копії усіх секторів, де зберігалася таблиця розділів, скористайтеся командою --backup-pt-sectors. Ця команда записує сектори до файлів ~/sfdisk-<пристрій>-<відступ>.bak. Типову назву файла резервної копії можна змінити за допомогою параметра --backup-file. Файли резервних копій містять лише необроблені дані з пристрою. Приклад:
sfdisk --backup-pt-sectors /dev/sda
Заголовок GPT пізніше може бути відновлено такою командою:
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
Також можна скористатися параметром --backup для створення тієї самої резервної копії негайно після запуску для інших команд sfdisk. Наприклад, резервне копіювання таблиці розділів до вилучення усіх розділів з таблиці розділів:
sfdisk --backup --delete /dev/sda
Ту саму концепцію файлів резервних копій використано у wipefs(8).
Зауважте, що у sfdisk, починаючи з версії 2.26, не надає параметра -I для відновлення секторів. Усі необхідні функціональні можливості надає dd(1).
КОЛЬОРИ¶
Розфарбовування виведених даних реалізовано у можливості terminal-colors.d(5). Неявне розфарбовування може бути вимкнено спорожненням файла
/etc/terminal-colors.d/sfdisk.disable
для команди sfdisk або для усіх інструментів
/etc/terminal-colors.d/disable
Специфічні для користувача $XDG_CONFIG_HOME/terminal-colors.d та $HOME/.config/terminal-colors.d мають пріоритет над загальними параметрами.
Зауважте, що можна типово увімкнути розфарбовування виведених даних і у цьому випадку каталоги terminal-colors.d не повинні існувати.
Логічними назвами кольорів, підтримку яких передбачено у sfdisk, є такі:
header
warn
welcome
СЕРЕДОВИЩЕ¶
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all
LIBSMARTCOLS_DEBUG=all
LOCK_BLOCK_DEVICE=<режим>
ПРИМІТКИ¶
Починаючи з версії 2.26, у sfdisk не передбачено параметра -R або --re-read для примушення ядра до повторного читання таблиці розділів. Скористайтеся замість цих параметрів командою blockdev --rereadpt.
Починаючи з версії 2.26, у sfdisk не передбачено підтримки параметрів --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer, --not-inside-outer.
ПРИКЛАДИ¶
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
АВТОРИ¶
Karel Zak <kzak@redhat.com>
Поточну реалізацію sfdisk засновано на початковій версії sfdisk, автором якої є Andries E. Brouwer.
ДИВ. ТАКОЖ¶
fdisk(8), cfdisk(8), parted(8), partprobe(8), partx(8)
ЗВІТИ ПРО ВАДИ¶
Для звітування про вади використовуйте систему стеження помилками на <https://github.com/util-linux/util-linux/issues>.
ДОСТУПНІСТЬ¶
sfdisk є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
ПЕРЕКЛАД¶
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.
4 серпня 2022 року | util-linux 2.38.1 |