FDISK(8)

НАЗВА
fdisk - керування таблицею розділів диска

КОРОТКИЙ ОПИС

fdisk [параметри] I<пристрій>

fdisk -l [пристрій...]

ОПИС

fdisk — програма для створення і роботи з таблицями розділів, якою керують за допомогою діалогів. У ній передбачено підтримку таблиць розділів GPT, MBR, Sun, SGI і BSD.

Блокові пристрої можна поділити на один або декілька логічних дисків, які називаються розділами. Цей поділ записують до таблиці розділів, яка, зазвичай, починається у секторі 0 диска. (У світі BSD це називається «зрізи диска» або «мітка диска».)

Типово, поділ на розділи є керованим обмеженнями введення-виведення пристрою (топологією). fdisk може оптимізувати компонування диска для розміру сектора у 4 кБ і використовувати зсув вирівнювання на сучасних пристроях для MBR і GPT. Завжди варто використовувати типові значення fdisk (наприклад, перший і останній сектори розділу), а розміри розділів, які вказано у позначеннях +/-<size>{M,G,...}, завжди вирівнюються відповідно до властивостей пристрою.

Адресування CHS (Cylinder-Head-Sector або циліндр-голівка-сектор) вважається застарілим і типово не використовуються. Будь ласка, не користуйтеся застарілими статтями і рекомендаціями, де радять fdisk -S <n> -H <n> для SSD або пристроями із секторами з розміром 4 кБ.

Зауважте, що у partx(8) передбачено чудовий інтерфейс для виведення компонувань дисків за допомогою скриптів, fdisk, здебільшого, дуже зручний у користуванні. Зворотну сумісність у виведених fdisk даних не гарантовано. Вхідні дані (команди) завжди мають бути сумісними із попередніми версіями.

ПАРАМЕТРИ

-b, --sector-size розмір-сектора
    Вказати розмір сектора на диску. Коректними є значення 512, 1024, 2048 і 4096. Ядро знає розмір сектора для звичайних блокових пристроїв. Користуватися цим параметром слід лише на дуже старих ядрах, під час роботи з образами дисків або для заміни стандартного розміру сектора ядра. Починаючи з util-linux-2.17, fdisk розрізняє розмір логічного та фізичного секторів. Цей параметр змінює розміри обох секторів на вказаний розмір-сектора.

-B, --protect-boot
    Не витирати початок першого сектора диска при створенні мітки диска. Підтримку цієї можливості передбачено для GPT і MBR.

-c, --compatibility[=режим]
    Specify the compatibility mode: 'dos' or 'nondos'. The default is non-DOS mode. For backward compatibility, it is possible to use the option without the mode argument — then the default is used. Note that the optional mode argument cannot be separated from the -c option by a space; the correct form is -c=dos, for example.

-L, --color[=умова]
    Розфарбувати виведені дані. Значенням додаткового аргументу варіант може бути auto, never або always. Якщо аргумент варіант пропущено, типовим значенням вважається auto. Розфарбовування можна вимкнути. Із поточним вбудованим типовим значенням можна ознайомитися за допомогою виведення команди з параметром --help. Див. також розділ КОЛЬОРИ.

-l, --list
    Вивести список таблиць розділів для вказаних пристроїв і завершити роботу.

    Якщо пристроїв не задано, буде використано пристрої, які згадано у /proc/partitions (якщо цей файл існує) Пристрої у списку завжди буде упорядковано так, як їх упорядковано у рядку команди або упорядковано ядром за списком у /proc/partitions.

-x, --list-details
    Подібний до --list, але надає більше подробиць.

--lock[=режим]
    Use an exclusive BSD lock for the device or file that is operated upon. The optional argument mode can be yes (1), no (0), or nonblock. If the mode argument is omitted, it defaults to yes. This option overrides the environment variable $LOCK_BLOCK_DEVICE. The default is to not use any lock at all, but using a lock is recommended to avoid collisions with systemd-udevd(8) or other tools.

-n, --noauto-pt
    Не створювати типової таблиці розділів на порожньому пристрої автоматично. Таблицю розділів має бути створено явним чином користувачем (за допомогою команд, подібних до «o», «g» тощо).

-o, --output список
    Визначити, які стовпчики слід використовувати для виведення. Скористайтеся параметром --help, щоб переглянути список підтримуваних стовпчиків.

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

--bytes*
    Print SIZE in bytes rather than in human readable format.

-s, --getsz
    Вивести розмір у 512-байтових секторах кожного заданого блокового пристрою. Цей параметр вважається ЗАСТАРІЛИМ. Користуйтеся blockdev(8).

-t, --type тип
    Увімкнути підтримку лише міток диску вказаного типу і вимкнути підтримку усіх інших типів.

-u, --units[=одиниця]
    When listing partition tables, show sizes in 'sectors' or in 'cylinders'. The default is to show sizes in sectors. For backward compatibility, it is possible to use the option without the unit argument — then the default is used. Note that the optional unit argument cannot be separated from the -u option by a space; the correct form is -u=cylinders, for example.

-C, --cylinders число
    Вказати кількість циліндрів на диску. Невідомо, чи комусь взагалі це потрібно.

-H, --heads число
    Вказати кількість голівок на диску. (Звичайно ж, не фізичну кількість, а кількість, яку використано для таблиць розділів.) Прийнятними значеннями є 255 та 16.

-S, --sectors число
    Вказати кількість секторів на доріжку на диску. (Звичайно ж, не фізичну кількість, а кількість, яку використано для таблиць розділів.) Прийнятним значенням є 63.

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

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

-h, --help
    Вивести текст довідки і завершити роботу.

-V, --version
    Показати дані щодо версії і завершити роботу.

ПРИСТРОЇ

Аргументом пристрій>, зазвичай, є _/dev/sda, /dev/sdb або щось подібне. Назва пристрою вказує на цілий диск. У старих системах без libata (бібліотеки, яку використано у ядрі Linux для підтримки контролерів і пристроїв ATA основної системи) є різниця між дисками IDE і SCSI. У таких випадках назвою пристрою буде /dev/hd* (IDE) або /dev/sd* (SCSI).

Аргументом розділ є назва пристрою, за якою має бути вказано номер розділу Наприклад, /dev/sda1 є першим розділом на першому жорсткому диску у системі. Див. також документацію з ядра Linux (файл Documentation/admin-guide/devices.txt).

РОЗМІРИ

У діалозі «останній сектор» приймається розмір розділу, який вказано за кількістю секторів або за позначенням +/-<розмір>{K,B,M,G,...}.

Якщо до розміру дописано префікс «+», його буде оброблено як визначник значення, яке є відносним щодо першого сектора розділу. Якщо до розміру додано префікс «-», значення буде оброблено, як відносне до верхнього обмеження (останнього доступного сектора для розділу).

У випадку, якщо розмір вказано у байтах, за числом можна вказати одиницю виміру: KiB (=1024 байтів), MiB (=1024*1024 байтів) тощо для GiB, TiB, PiB, EiB, ZiB та YiB (частина «iB» є необов’язковою, наприклад «K» є тим самим, що і «KiB»).

Відносні розміри, якщо вказано із суфіксом розмірності (наприклад +100MiB), завжди вирівняно відповідно до обмежень на введення-виведення для пристрою. Рекомендовано користуватися позначенням +/-<розмір>{K,B,M,G,...}.

Останній сектор розділу буде строго обчислено за формулою <початок>
<розмір> (без -1), якщо розмір вказано у позначенні +<сектори>. У цьому випадку розмір не буде вирівняно за обмеженнями введення-виведення пристрою.

Для забезпечення зворотної сумісності у fdisk також можна використовувати суфікси KB (1000 байтів), MB (1000*1000 байтів), і так само для GB, TB, PB, EB, ZB і YB. Ці суфікси для 10^N вважаються застарілими.

ФАЙЛИ СКРИПТІВ

fdisk уможливлює читання (за допомогою команди «I») сумісних із sfdisk файлів скриптів. Скрипт буде застосовано до таблиці розділів у пам’яті, а отже, можна змінити таблицю розділів до запису її на пристрій.

І навпаки, можна записувати поточне компонування диска у пам’яті до файла скрипту за допомогою команди «O».

Файли скриптів є сумісними одразу з cfdisk(8), sfdisk(8), fdisk та іншими програмами libfdisk. Докладніші відомості можна знайти у підручнику з sfdisk(8).

МІТКИ ДИСКІВ

GPT (GUID Partition Table)
    GPT - сучасний стандарт для компонування таблиці розділів. GPT використовує 64-бітові адреси логічних блоків, контрольні суми, UUID та назви для розділів та уможливлює необмежену кількість розділів (хоча кількість розділів, зазвичай, обмежується 128 у багатьох інструментах для роботи з розділами).

    Зауважте, що перший сектор у специфікації GPT усе ще зарезервовано для захисного MBR. Він запобігає помилковому розпізнаванню і перезапису дисків GPT інструментами для роботи з розділами, які розуміють лише MBR.

    GPT є завжди кращим вибором за MBR, особливо на сучасному обладнанні із завантажувачем UEFI.

DOS-тип (MBR)
    Таблиця розділів DOS-типу може описувати необмежену кількість розділів У секторі 0 є місце для опису 4 розділів (які називають «основними»). Одним з цих розділів може бути розширеним розділом. Розширений розділ може містити логічні розділи за допомогою дескрипторів, які розміщують у пов’язаному списку секторів, кожен з яких передує відповідним логічним розділам. Чотири основні розділи, є вони на диску чи ні, мають номери 1-4. Номери логічних розділів починаються з 5.

    У таблиці розділів DOS-типу початкове зміщення та розмір кожного з розділів зберігається у два способи: як абсолютна кількість секторів (задана у 32 біти) і як трійка циліндри/голівки/сектори (задана у 10+8+6 бітів). З першим варіантом усе гаразд - з 512-байтовими секторами це працює до 2 ТБ. З другим варіантом є дві проблеми. Перша полягає у тому, що ці поля Ц/Г/С може бути заповнено, лише якщо відома кількість голівок та секторів на доріжку. А друга - у тому, що навіть якщо нам відомі значення цих параметрів, 24 доступних бітів недостатньо для їхнього запису. У DOS використано лише Ц/Г/С, у Windows - обидва варіанти, Linux ніколи не використовує Ц/Г/С. Адресування Ц/Г/С вважається застарілим, його підтримку може бути вилучено у якійсь з майбутніх версій fdisk.

    Будь ласка, ознайомтеся із розділом щодо режиму DOS, якщо вам потрібні сумісні із DOS розділи. Типово, fdisk не переймається вирівнюванням на межу циліндра.

BSD/Sun-тип
    Мітка диска BSD/Sun може описувати 8 розділів, третім з яких має бути розділ «усього диска». Не розпочинайте розділ, який використовує його перший сектор (подібний до розділу резервної пам’яті на диску) на циліндрі 0, оскільки це знищить мітку диска. Зауважте, що мітку BSD, зазвичай, вкладено у розділ DOS.

IRIX/SGI-тип
    Мітка диска IRIX/SGI може описувати 16 розділів, одинадцятим з яких має бути розділ усього «тому», а дев’ятий має бути позначено як «заголовок тому» Заголовок тому також покриває таблицю розділів, тобто він починається на нульовому блоці і, типово, займає п’ять циліндрів. Решту місця у заголовку тому може бути використано для записів каталогів заголовка. Жоден з розділів не може перекривати заголовок тому. Також не можна змінювати тип заголовка та створювати на ньому файлову систему, оскільки при цьому буде втрачено таблицю розділів. Користуйтеся цим типом міток, лише якщо ви працюєте з Linux на машинах IRIX/SGI або працюєте з дисками IRIX/SGI у Linux.

    Якщо таблицю розділів було оновлено, перед виходом з програми буде виконано sync(2) та ioctl(BLKRRPART) (повторне читання таблиці розділів з диска).

РЕЖИМ DOS І ПОПЕРЕДЖЕННЯ ЩОДО DOS 6.X

Зауважте, що усе описане нижче вважається застарілим. Вам не варто перейматися речима, подібними до геометрії та циліндрів у сучасних операційних системах. Якщо вам дуже потрібний поділ на розділи із сумісністю з DOS, вам слід увімкнути режим DOS і одиниці-циліндри за допомогою параметрів командного рядка fdisk «-c=dos -u=cylinders».

Команда FORMAT для DOS 6.x шукає певні дані у першому секторі області даних розділу і обробляє ці дані як надійніші за відомості з таблиці розділів. FORMAT для DOS очікує від FDISK для DOS очищення перших 512 байтів області даних розділу під час кожної зміни розмірів. FORMAT для DOS шукатиме ці додаткові відомості, навіть якщо вказано параметр /U - ми вважаємо це вадою у FORMAT для DOS та FDISK для DOS.

У підсумку, якщо ви користуєтеся fdisk або cfdisk(8) для зміни розмірів запису у таблиці розділів DOS, вам слід також скористатися dd(1) для занулення перших 512 байтів цього розділу до використання FORMAT для DOS для форматування розділу. Наприклад, якщо ви скористалися fdisk для створення запису DOS у таблиці розділів для /dev/sda1, далі, (після виходу з fdisk і перезавантаження Linux, щоб освіжити дані таблиці розділів) вам слід скористатися командою dd if=/dev/zero of=/dev/sda1 bs=512 count=1 для занулення перших 512 байтів розділу.

Зазвичай, fdisk отримує дані щодо геометрії диска автоматично. Це не обов’язково фізична геометрія диска (насправді, у сучасних дисків насправді немає ніякої фізичної геометрії, точно немає того, що описано у спрощеній формі циліндри/голівки/сектори), але це геометрія диска, яку MS-DOS використовує для таблиці розділів.

Зазвичай, усе має бути типово добре, і не повинно бути проблем, якщо Linux є єдиною системою на диску. Втім, якщо диск спільно використовується іншими операційними системами, часто варто надати змогу fdisk з іншої операційної системи створити принаймні один розділ. При завантаженні Linux система аналізує таблицю розділів і намагається визначити, яка (фіктивна) геометрія потрібна для належної сумісності з іншими операційними системами.

Кожного разу, коли виводиться таблиця розділів у режимі DOS, буде виконано перевірку записів таблиці розділів. Під час перевірки буде встановлено, чи є ідентичними фізичні і логічні початкова і кінцева точки, і чи кожен розділ починається і завершується на межі циліндра (окрім першого розділу).

Деякі версії MS-DOS створюють перший розділ, який починається не на початку межі циліндра, а на секторі 2 першого циліндра. Розділи, що починаються на циліндрі 1, не можуть починатися на межі циліндра, але це навряд чи спричинить труднощі, якщо на вашому комп’ютері немає OS/2.

Для покращення результатів вам слід завжди користуватися специфічною для операційної системи програмою для роботи з таблицею розділів. Наприклад, вам слід створювати розділи DOS за допомогою програми FDISK для DOS, а розділи Linux за допомогою програм fdisk та Linux cfdisk(8) для Linux.

КОЛЬОРИ

Розфарбовування виведених даних реалізовано у можливості terminal-colors.d(5). Неявне розфарбовування може бути вимкнено спорожненням файла

    /etc/terminal-colors.d/{команда}.disable

для команди {команда} або для усіх інструментів

    /etc/terminal-colors.d/disable

Починаючи з версії 2.41, передбачено підтримку змінної середовища $NO_COLOR для вимикання розфарбовування виведених даних, якщо розфарбовування не буде явним чином увімкнено параметром командного рядка.

Специфічні для користувача $XDG_CONFIG_HOME/terminal-colors.d або $HOME/.config/terminal-colors.d мають пріоритет над загальними параметрами.

Зауважте, що можна типово увімкнути розфарбовування виведених даних і у цьому випадку каталоги terminal-colors.d не повинні існувати.

Логічними назвами кольорів, підтримку яких передбачено у fdisk, є такі:

header
    Заголовок виведених таблиць.

help-title
    Заголовки розділів довідки.

warn
    Повідомлення попереджень.

welcome
    Повідомлення вітання.

СЕРЕДОВИЩЕ

FDISK_DEBUG=all
    вмикає діагностичне виведення fdisk.

LIBFDISK_DEBUG=all
    вмикає показ діагностичних повідомлень libfdisk.

LIBBLKID_DEBUG=all
    вмикає показ діагностичних повідомлень libblkid.

LIBSMARTCOLS_DEBUG=all
    вмикає показ діагностичних повідомлень libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    використати символи візуального доповнення.

LOCK_BLOCK_DEVICE=<режим>
    використати виключне блокування BSD. Режимом може бути «1» або «0». Див. --lock, щоб дізнатися більше.

АВТОРИ

Початкову версію було написано Andries E. Brouwer, A. V. Le Blanc та іншими авторами.

ТАКОЖ ПЕРЕГЛЯНЬТЕ

cfdisk(8), mkfs(8), partx(8), sfdisk(8)

ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ

Для звітування щодо вад скористайтеся

ДОСТУП ДО ПРОГРАМИ

Програма fdisk є частиною пакунка util-linux, який можна отримати з