Scroll to navigation

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 (починаючи з версії 2.26), якщо вказано відносні розміри, вирівнює початок і кінець розділів до меж введення-виведення блокового пристрою, якщо використано типові значення або якщо використано суфікси множення (наприклад МіБ) для множення. Розмір розділу буде оптимізовано (зменшено або збільшено), якщо це можливо, через вирівнювання, якщо початок відступу вказано точно у секторах і розмір розділу відносно або за суфіксами множення.

Рекомендованим способом є не визначення початкових відступів, а визначення розміру розділу у МіБ, ГіБ (або подібних одиницях). У цьому випадку sfdisk вирівнює усі розділ до обмежень введення-виведення блокового пристрою (або, якщо обмеження введення-виведення є надто низькими, межа у мегабайтах для збереження портативності компонування диска). Якщо ця типова поведінка є небажаною (зазвичай, для дуже малих розділів), вкажіть відступи і розміри у секторах. У цьому випадку sfdisk повністю використовує вказані числа без будь-якої оптимізації.

sfdisk не створює стандартних розділів диска для дискових міток SGI і SUN, як це робить fdisk(8). Усі розділи слід буде створити явним чином, включно із розділами системи на увесь диск.

sfdisk використовує BLKRRPART ioctl (повторного читання таблиці розділів) для забезпечення того, щоб пристрій не буде використано системою або іншими інструментами (див. також --no-reread). Може так статися, що ця можливість або інші дії sfdisk конфліктуватимуть за ресурси з systemd-udevd(8). Рекомендованим способом уникнути цих конфліктів є використання параметра --lock. Виключне блокування призведе до того, що systemd-udevd не виконуватиме обробку подій на пристрої.

Запит sfdisk є лише підказкою для користувачів, а показаний номер розділу не означає, що буде створено той самий запис таблиці розділів (якщо не вказано -N), особливо для таблиць із прогалинами.

КОМАНДИ

Команди є взаємно виключними.

[-N номер-розділу] пристрій
Типова команда sfdisk читає специфікацію для бажаного поділу на розділи пристрою зі стандартного джерела вхідних даних, а потім створює таблицю розділів відповідно до специфікації. Нижче наведено опис формату вхідних даних. Якщо стандартним джерелом введення є термінал, sfdisk розпочинає інтерактивний сеанс.

Якщо вказано параметр -N, зміни буде застосовано до розділу, адресування якого вказано аргументом номер-розділу. Невказані поля розділу не буде змінено.

Зауважте, що можна адресувати невикористаний розділ за допомогою параметра -N. Наприклад, MBR завжди містить 4 розділи, але кількість використаних розділів може бути меншою. У цьому випадку sfdisk використовує типові значення з таблиці розділів і не використовує вбудовані типові значення для невикористаного розділу, які задано за допомогою -N. Див. також --append.

Увімкнути прапорець завантажуваності для вказаних розділів і вимкнути прапорець завантажуваності для всіх невказаних розділів. Можна скористатися особливим замінником, '-', замість номерів розділів для вимикання прапорця завантажуваності для усіх розділів.

Підтримку команди активації передбачено лише для MBR і PMBR. Якщо виявлено мітку GPT, sfdisk виведе попередження і автоматично увійде до PMBR.

Якщо не вказано аргументу номер-розділу, буде виведено список розділів із прапорцем «enabled».

Вилучити усі або вказані розділи.
Створити дамп розділів пристрою у форматі, яким можна скористатися як вхідним для sfdisk. Див. розділ РЕЗЕРВНЕ КОПІЮВАННЯ ТАБЛИЦІ РОЗДІЛІВ.
Вивести список геометрії усіх або вказаних пристроїв. Для зворотної сумісності застарілий параметр --show-pt-geometry має те саме значення, що і цей.
Створити дамп розділів пристрою у форматі JSON. Зауважте, що sfdisk не може використовувати формат вхідних даних JSON.
Вивести список розділів на усіх або вказаних пристроях. Цією командою можна скористатися разом із --verify.
Вивести список не розподілених на розділи областей на усіх або вказаних пристроях.
Змінити біти атрибутів розділу GPT. Якщо аргумент атрибути не вказано, вивести поточні параметри розділу. Аргументом атрибути має бути список номерів або назв бітів, які відокремлено комами або пробілами. Наприклад, рядок "RequiredPartition,50,51" встановлює три біти. У поточній версії підтримуваними бітами атрибутів є такі:
Якщо встановлено цей біт, від розділу вимагатиметься працездатність платформи. Засіб створення розділу визначатиме, що вилучення або внесення змін до вмісту може призвести до втрати можливостей платформи або помилок у завантаженні або роботі платформи. Система не зможе нормально працювати, якщо цей розділ буде вилучено, а сам розділ можна розглядати як частину обладнання системи.
Мікропрограма EFI має ігнорувати вміст розділу і не намагатися виконати читання з нього.
Розділ може бути придатним до завантаження застарілою мікропрограмою BIOS.
Біти 3-47
Не визначено, мають бути нульовими. Зарезервовано для розширення у майбутніх версіях специфікації UEFI.
Біти 48-63
Зарезервовано для специфічного використання GUID. Використання цих бітів визначатиметься типом розділу. Наприклад, Microsoft використовує біт 60 для позначення розділів як придатних лише до читання, 61 для позначення тіньової копії іншого розділу, 62 для позначення прихованих розділів, а 63 для позначення вимикання автоматичного монтування.

Змінити назву розділу GPT (мітку). Якщо мітку не вказано, вивести мітку поточного розділу.
Змінити тип розділу. Якщо тип не вказано, вивести тип поточного розділу.

Аргумент тип має бути шістнадцятковим числом для MBR, GUID for GPT, альтернативною назвою типу (наприклад "linux") або скороченням типу (наприклад «L»). Для зворотної сумісності параметри -c і --id мають те саме призначення, що і цей параметр.

Змінити UUID розділу GPT (мітку). Якщо uuid не вказано, вивести UUID поточного розділу.
Змінити ідентифікатор диска. Якщо ідентифікатор не вказано, вивести поточний ідентифікатор. Ідентифікатором є UUID для GPT або додатне ціле число для MBR.
Перенумерувати розділи, упорядкувавши їх за початковим відступом.
Вивести список розмірів усіх або вказаних пристроїв в одиницях у 1024 байти. Ця команда є ЗАСТАРІЛОЮ. Користуйтеся замість неї blockdev(8).
Вивести усі підтримувані типи для поточної мітки диска або мітки, яку вказано за допомогою параметра --label.
Перевірити, чи є коректною таблиця розділів і розділи.
Перемістити заголовок таблиці розділів. Підтримку цієї команди у поточній версії передбачено лише для заголовків GPT. Аргументом дія може бути:
Пересунути резервний заголовок GPT до стандартного місця наприкінці пристрою.
Пересунути резервний заголовок GPT за останній розділ. Зауважте, що стандарт UEFI вимагає, щоб резервний заголовок перебував наприкінці пристрою, і засоби поділу на розділи можуть автоматично пересувати заголовок так, щоб він відповідав стандартам.

ПАРАМЕТРИ

Не створювати нову таблицю розділів, а лише дописати дані до вказаних розділів.

Зауважте, що у цьому випадку невикористаний розділ може бути повторно використано, хоча він не є останнім розділом у таблиці розділів. Див. також -N щодо визначення запису у таблиці розділів.

Створити резервну копію поточної таблиці розділів до початку поділу на розділи. Типовою назвою файла резервної копії є ~/sfdisk-<пристрій>-<відступ>.bak; щоб скористатися іншою назвою, додайте параметр -O, --backup-file.
Розфарбувати виведені дані. Значенням додаткового аргументу варіант може бути *auto*, *never* або *always*. Якщо аргумент варіант пропущено, типовим значенням вважається *auto*. Розфарбовування можна вимкнути. Із поточним вбудованим типовим значенням можна ознайомитися за допомогою виведення команди з параметром *--help*. Див. також розділ КОЛЬОРИ.
Вимкнути усі перевірки узгодженості.
Застарілий та ігнорований параметр. Типовим є поділ на розділи, який є сумісним із Linux (та іншими сучасними операційними системами).
Скористатися виключним блокуванням BSD для пристрою або файла, який ним керує. Значенням додаткового аргументу режим може бути yes, no (або 1 і 0) чи nonblock. Якщо пропустити аргумент режим, типовим значенням буде "yes". Цей параметр переписує змінну середовища $LOCK_BLOCK_DEVICE. Типовим станом є невикористання блокування, але рекомендуємо уникати конфліктів із udevd або іншими програмами.
Виконати усі дії, окрім запису на пристрій.
Не виконувати перевірку за допомогою ioctl повторного читання таблиці розділів того, чи використовується пристрій.
Не повідомляти ядру про зміни розділу. Цей параметр рекомендовано використовувати разом із параметром --no-reread для внесення змін до розділу на використаному для роботи диску. Змінений розділ не слід використовувати (наприклад монтувати).
Перевизначити типову назву файла резервної копії. Зауважте, що до назви файла завжди буде додано назву пристрою і відступ.
Пересунути дані після пересування розділу, наприклад, при пересуванні початку розділу до іншого місця на диску. Розмір розділу має лишитися тим самим, нове і старе розташування можуть перекриватися. Цей параметр потребує параметра -N для обробки лише на одному вказаному розділі.

Необов'язковий аргумент шлях вказує назву файла журналу. Файл журналу містить відомості щодо усіх дій читання-запису щодо даних розділу. Якщо вказано «@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

Використовувати системний виклик fsync(2) після кожного запису при пересуванні даних до нового місця за допомогою --move-data.
Визначити, які стовпчики слід використовувати для виведення. Скористайтеся параметром --help, щоб переглянути список підтримуваних стовпчиків.

Типовий список стовпчиків може бути розширено, якщо список вказано у форматі +список (наприклад, -o +UUID).

Придушити додаткові інформаційні повідомлення.
Застарілий параметр. Передбачено підтримку лише одиниці «сектор». Підтримки цього параметра не передбачено, якщо використано команду --show-size.
Вказати тип мітки диска (наприклад dos, gpt, ...). Якщо цей параметр не вказано, sfdisk типово використає наявну мітку, але якщо на пристрої ще немає мітки, стандартним типом буде dos. Типову або поточну мітку може бути перезаписано рядком заголовка скрипту «label: <назва>». Параметр --label не примушує sfdisk до створення порожньої мітки диска (див. розділ ПОРОЖНЯ МІТКА ДИСКА нижче).
Примусове редагування вкладеної мітки диска. Основна мітка диска має вже існувати. За допомогою цього параметра можна редагувати, наприклад, гібридну/захисну MBR на пристроях з GPT.
Витерти файлову систему, RAID та підписи таблиці розділів з пристрою для того, щоб уникнути можливих конфліктів. Значенням аргументу варіант може бути auto, never або always. Якщо не вказано цей параметр, типовим варіантом є auto, коли підписи буде витерто, лише якщо програма працює в інтерактивному режимі; окрім застарілих підписів таблиць розділів, які програма завжди витирає до створення нової таблиці розділів, якщо аргументом умова не є значення never. В усіх випадках програма повідомлятиме про виявлені підписи шляхом видання попереджень перед створенням таблиці розділів. Див. команду wipefs(8).

Витерти файлову систему, RAID та підписи таблиці розділів з новостворених розділів для того, щоб уникнути можливих конфліктів. Значенням аргументу варіант може бути auto, never або always. Якщо не вказано цей параметр, типовим варіантом є auto, коли підписи буде витерто, лише якщо програма працює в інтерактивному режимі і після підтвердження з боку користувачів. В усіх випадках програма повідомлятиме про виявлені підписи шляхом видання попереджень після створення розділу. Див. команду wipefs(8).

Вивести дані щодо версії і завершити роботу.
Вивести текст довідки і завершити роботу.

ФОРМАТИ ВХІДНИХ ДАНИХ

У sfdisk передбачено підтримку двох форматів вхідних даних і типових рядків заголовка.

Рядки заголовка

Необов'язкові рядки заголовка визначають загальні відомості, які застосовуються до таблиці розділів. Формат рядка заголовка є таким:

<назва>: <значення>

У поточній версії розпізнаваними заголовками є такі:
Визнає одиницю поділу на розділи. Єдиною підтримуваною одиницею є sectors (сектори).
Вказати тип таблиці розділів. Приклади: dos або gpt.
Вказати ідентифікатор таблиці розділів. Це має бути шістнадцяткове число (із префіксом 0x) для MBR і UUID для GPT.
Вказати перший придатний до використання сектор для розділів GPT.
Вказати останній придатний до використання сектор для розділів GPT.
Вказати максимальну кількість розділів GPT.
Вказати мінімальний розмір у байтах, який буде використано для обчислення вирівнювання розділів. Типовим є 1 МіБ, і ми наполегливо рекомендуємо його не змінювати. Не змінюйте значення цієї змінної, якщо ви не певні щодо результатів.
Вказати розмір сектора. Цей заголовок є лише інформативним. sfdisk не використовує його для створення таблиці розділів. Для створення завжди використовується справжнє специфічне для пристрою значення, а розмір сектора з дампу завжди буде проігноровано.

Зауважте, що рядки заголовка можна використовувати лише до того, як у вхідних даних визначено перший розділ.

Формат неіменованих полів

початок розмір тип завантажуваність

де кожен рядок складається з одного дескриптора розділу.

Поля відокремлюють пробілами, комами (рекомендовано) або крапками з комами, за якими може бути використано пробіл; початковий та кінцевий пробіли буде проігноровано. Числа може бути записано у вісімковій, десятковій або шістнадцятковій системі; типовою є десяткова. Якщо поле пропущено, вказано порожнім або вказано як '-', буде використано типове значення. Але якщо вказано параметр -N (змінити окремий розділ), типовим для кожного з полів буде його попереднє значення.

Типовим значенням аргументу початок є перший непов'язаний сектор, який вирівняно відповідно до обмежень введення-виведення пристрою. Типовим початковим відступом для першого розділу є 1 МіБ. Якщо після відступу вказано суфікси множення (KiB, MiB, GiB, TiB, PiB, EiB, ZiB і YiB), число буде оброблено як відступ у байтах.

Типове значення аргументу розмір визначає поведінку «якомога більше»; тобто, аж до наступного розділу або кінця пристрою. Числовий аргумент типово буде оброблено як кількість секторів. Втім, якщо за числовим розміром вказано один із суфіксів-множників (KiB, MiB, GiB, TiB, PiB, EiB, ZiB або YiB), число буде оброблено як розмір розділу у байтах і вирівняно відповідно до обмежень на введення-виведення пристрою. Замість числа можна вказати '+'. Це значення призведе до максимального збільшення розділу. Зауважте, що '+' є еквівалентом типової поведінки для нового розділу; якщо потрібно, розмір наявних розділів буде змінено відповідним чином.

Значення тип для розділу задається у форматі шістнадцяткового числа для MBR (DOS), де префікс x є необов'язковим; рядка GUID для GPT; скорочення або альтернативної назви. Рекомендуємо користуватися двома літерами для шістнадцяткових кодів MBR, щоб уникнути плутанини між застарілим скороченням 'E' і шістнадцятковим кодом MBR '0E'. У скриптах поділу на розділи для зворотної сумісності sfdisk намагається спершу обробити тип як скорочення, хоча в інших місцях (наприклад у команді --part-type) програма намагається використати скорочення як останню можливість.

Починаючи з версії v2.36, у libfdisk передбачено підтримку альтернативних назв типів розділів, як розширення до скорочень. Альтернативною назвою є просте зручне для читання слово (наприклад "linux").

Підтримувані скорочення і альтернативи:

Linux; означає 83 для MBR і 0FC63DAF-8483-4772-8E79-3D69D8477DE4 для GPT.
простір резервної пам'яті на диску; означає 82 для MBR і 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F для GPT
розширений розділ MBR; означає 05 для MBR. Початкове скорочення «E» вважається застарілим через конфлікт з типом розділів MBR 0x0E.
домашній розділ; означає 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 для GPT
системний розділ EFI, означає EF для MBR і C12A7328-F81F-11D2-BA4B-00A0C93EC93B для GPT
Linux RAID; означає FD для MBR і A19D880F-05FC-4D3B-A006-743F0F84911E for GPT
LVM; означає 8E для MBR і E6D6D379-F507-44C2-A23C-238F2A3DF928 for GPT

Типовим значенням типу є linux

Скорочення «X» для розширеного розділу Linux (85) вважається застарілим, його замінило скорочення «Ex».

Аргумент завантажуваність вказують як [*|-]. Типовим є значення, яке вказує на непридатність до завантаження. Значення цього поля не беруть до уваги для Linux — якщо запущено Linux, його вже завантажено, — але він може братися до уваги для певних типів завантажувачів і для інших операційних систем.

Формат іменованих полів

Цей формат є зручнішими для читання, стійкішим та розширюванішим і надає змогу вказати додаткові відомості (наприклад UUID). Рекомендуємо користуватися цим форматом, щоб зробити ваші скрипти зручнішими для читання.

[пристрій :] назва[=значення], ...

Поле пристрій є необов'язковим. sfdisk видобуває номер розділу з назви пристрою. Поле надає змогу вказати розділи у випадковому порядку. Цю функціональну можливість, здебільшого, використовують для --dump. Не користуйтеся нею, якщо не впевнені у результатах.

Аргумент значення може бути вказано у лапках (наприклад, name="This is partition name"). У поточній версії підтримуваними полями є такі:

Перший непов'язаний сектор, який вирівняно відповідно до обмежень введення-виведення пристрою. Типовим початковим відступом для першого розділу є 1 МіБ. Якщо після відступу вказано суфікси множення (KiB, MiB, GiB, TiB, PiB, EiB, ZiB і YiB), число буде оброблено як відступ у байтах.
Вказати розмір розділу у секторах. Після числового значення може бути вказано суфікс множення (KiB, MiB, GiB, TiB, PiB, EiB, ZiB або YiB). Значення з таким суфіксом буде оброблено як розмір у байтах і вирівняно відповідно до обмежень на введення-виведення пристрою.
Позначити розділ як придатний до завантаження системи.
Атрибути розділу, зазвичай, біти атрибутів розділу GPT. Див. --part-attrs, щоб дізнатися більше про формат рядка бітів GPT.
UUID розділу GPT.
Назва розділу GPT.
Шістнадцяткове число (без 0x) для розділу MBR, GUID для розділу GPT, скорочення для формату неіменованих полів. Для зворотної сумісності поле Id= має те саме значення

ПОРОЖНЯ МІТКА ДИСКА

Типово, sfdisk не створює таблиці розділів без розділів. Типово, програма очікує у скрипті рядків із розділами. Запит на порожню таблицю розділів можна надіслати явним чином за допомогою рядка заголовка скрипту "label: <назва>" без будь-яких рядків розділів. Приклад:

echo 'label: gpt' | sfdisk /dev/sdb

створює порожню таблицю розділів GPT. Зауважте, що --append вимикає цю можливість.

РЕЗЕРВНЕ КОПІЮВАННЯ ТАБЛИЦІ РОЗДІЛІВ

Рекомендуємо зберегти компонування ваших пристроїв. У sfdisk передбачено підтримку двох способів.

Скористайтеся командою --dump для збереження опису компонування розділів до текстового файла. Формат дампу є сумісним із вхідними командами sfdisk. Приклад:

sfdisk --dump /dev/sda > sda.dump

Копію пізніше може бути відновлено такою командою:

sfdisk /dev/sda < sda.dump

Якщо ви хочете виконати повне резервне копіювання двійкової копії усіх секторів, де зберігалася таблиця розділів, скористайтеся командою --backup. Ця команда записує сектори до файлів ~/sfdisk-<пристрій>-<відступ>.bak. Типову назву файла резервної копії можна змінити за допомогою параметра --backup-file. Файли резервних копій містять лише необроблені дані з пристрою. Зауважте, що ту саму концепцію файлів резервних копій використано у wipefs(8). Приклад:

sfdisk --backup /dev/sda

Заголовок GPT пізніше може бути відновлено такою командою:

dd  if=~/sfdisk-sda-0x00000200.bak  of=/dev/sda  \
seek=$((0x00000200))  bs=1  conv=notrunc

Зауважте, що у sfdisk, починаючи з версії 2.26, не надає параметра -I для відновлення секторів. Усі необхідні функціональні можливості надає dd(1).

КОЛЬОРИ

Неявне розфарбування можна вимкнути створенням порожнього файла /etc/terminal-colors.d/sfdisk.disable.

Див. terminal-colors.d(5), щоб дізнатися більше про налаштовування розфарбування. Логічними назвами кольорів, підтримку яких передбачено у sfdisk, є такі:

Заголовок виведених таблиць.
Повідомлення попереджень.
Повідомлення вітання.

СЕРЕДОВИЩЕ

вмикає діагностичне виведення даних sfdisk.
вмикає показ діагностичних повідомлень libfdisk.
вмикає показ діагностичних повідомлень libblkid.
вмикає показ діагностичних повідомлень libsmartcols.
використати виключне блокування BSD. Режимом може бути «1» або «0». Див. --lock, щоб дізнатися більше.

ПРИМІТКИ

Починаючи з версії 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.

АВТОРИ

Karel Zak <kzak@redhat.com>

Поточну реалізацію sfdisk засновано на початковій версії sfdisk, автором якої є Andries E. Brouwer.

ДИВ. ТАКОЖ

fdisk(8), cfdisk(8), parted(8), partprobe(8), partx(8)

ДОСТУПНІСТЬ

Програма sfdisk є частиною пакунка util-linux і доступна за адресою 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.

Червень 2015 року util-linux