Як я можу скриптувати створення одного розділу, який використовує весь пристрій?


9

Я спеціально використовую це для розділення та монтажу томів EBS на примірниках Amazon EC2, але насправді це має бути загальноприйнятним для ініціалізації будь-якого нового накопичувача.

Як зазначено в запитанні, я хочу скриптувати створення єдиного первинного розділу, який використовує весь доступний простір на даному пристрої. Я не буду знати достроково, наскільки великий пристрій, і він може бути дуже великим (тобто декількома туберкульозом).

При дослідженні цього, здається parted, найкращу команду використовувати для сценаріїв. Я думаю, що чогось parted /dev/sdf mkpart primary 0 ENDя хочу, але мені важко знайти елегантний спосіб визначити, яким повинен бути кінець. Хтось знає простий спосіб зробити це?

Відповіді:



5

У мене виникли проблеми, коли я намагався використати іншу відповідь. Для мене працювало те, щоб використовувати замість цього відсоткового підходу:

$ parted /dev/sdf --script -- mkpart primary 0% 100%

Виникає проблема partedта спосіб, яким вона займається вирівнюванням розділів. Ці дві статті трохи обговорюють це питання:

Математика, викладена в цих статтях, просто не працювала в моїх сценаріях. Похований в одному з коментарів до другого, посилання на когось запропонували використовувати відсотки, і це спрацювало.

Між іншим, вам також потрібно буде мітити жорсткий диск. Щоб зробити це через CLI за допомогою parted:

$ parted /dev/sde --script -- mklabel msdos

або

$ parted /dev/sde --script -- mklabel gpt

Залежно від вашого жорсткого диска.


gdiskвирівнюється правильно. На мою думку, partedце безлад. Це робить занадто багато - і речі, які він робить, лише слабко пов'язані. Дивно, як він створює файлові системи та таблиці розділів разом - дискові локаріони для даних, які вони записують, не схожі на те, що знаходиться в одному сусідстві. Я почав розуміти, як працюють диски, коли зрозумів, що таблиця розділів - це невелика карта, яка сидить біля її голови, і вона повідомляє os, де вона може шукати файлову систему, якщо хоче. Коли це натиснуло, я зрозумів суперблоки та мегаман, і все це. Ну, я люблю так вважати.
mikeserv

Дякую, сайт інструментів у цьому просторі для мене завжди був безлад. Я постійно змішую sfdisk, fdisk, cfdisk, розлучився і т. Д. Спробую fdisk і побачу, чи це простіше. Здебільшого шукає простий запуск з варіанту cli для включення в сценарії.
slm

По суті [gf]disk, не піддайте дискримінації їхню дію - їм все одно, якщо це з термінаInal. Тож будь-яку послідовність команд, яку ви ввели б інтерактивно, щоб отримати те, що ви хочете, можна безпосередньо перевести на printfсценарій. Усі новинки у моїй відповіді - це лише (or press enter for default)варіанти. Це досить просто. Коли я погратися ж / них я просто піти /tmpі , fallocate -l1g imgа потім просто використовувати мій новий /tmp/imgфайл як мій диск - вони не дбають. Вони просто хочуть написати таблицю розділів. Якщо ви робите те саме, погляньте, що відбувається без strings -1 imgперіодичності.
mikeserv

Але я брехав раніше - мегаман для мене залишається таємничим. Можливо, він завжди буде.
mikeserv

1
з parted /dev/sdf --script -- mkpart primary 0 -1мене надійшло попередження про нерівнювання для найкращого виконання.
Ішло

2

Ви можете зробити...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... для типу msdos. Практично те ж саме працює для gpt ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

І ви можете мітити свій диск під час створення файлової системи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.