Есть ли способ создать и отформатировать раздел, используя скрипт bash?
Я думаю, что это можно сделать с помощью fdisk, но я не знаю, как передать команды из сценария bash в оболочку fdisk, а затем выйти из оболочки fdisk.
Я хочу создать раздел, а затем отформатировать его в NTFS из Bash.
bash
partitioning
ntfs
fdisk
GlassGhost
источник
источник
sfdisk
более дружественен к автоматизации, чемfdisk
sfdisk
sfdisk
это сценарий версииfdisk
Это часть
util-linux
, так же какfdisk
и доступность должна быть одинаковой.Таблица разделов с одним разделом, занимающим весь диск, может быть создана с помощью:
и более сложные таблицы разделов описаны ниже.
Чтобы сгенерировать пример сценария, получите настройку одного из ваших дисков:
Пример вывода на моей двойной загрузке Lenovo T430 для Windows 7 / Ubuntu:
После сохранения сценария в файле вы можете применить его к
sdX
:Для
sfdisk
ввода вы можете просто опустить имена устройств и использовать строки типа:Они просто игнорируются, если присутствуют, а имя устройства берется из аргумента командной строки.
Некоторые объяснения:
label
: тип таблицы разделов.dos
(MBR) - старая, широко поддерживаемая,gpt
новая блестящая вещь.unit
: толькоsector
поддерживается. 1 сектор обычно равен 512 байтов. Найти сcat /sys/block/sda/queue/hw_sector_size
Смотри также: https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partitiondevice
: информативно только думаюразделительные линии:
start
: смещение внутри диска, с которого начинается раздел.start
имеет очень хорошие значения по умолчанию и часто может быть опущено:start
- 2048, то есть 1Mb (2048 + 512), что является нормальным значением по умолчанию для совместимости дисковstart
дефолт до первой нераспределенной позицииsize
:man sfdisk
Говорит:The default value of size indicates "as much as possible"
. Итак, для заполнения диска одним разделом используйте:/dev/sda : start=2048, type=83
type
: магический байт, хранящийся в загрузочном секторе для каждой записи раздела . Возможные значения: https://en.wikipedia.org/wiki/Partition_type. В этом примере мы наблюдаем:7
(sda1
,2
И3
): файловые системы , которая поддерживает Windows. Предустановленные компоненты Windows и разделы восстановления Lenovo.sudo blkid
этикетки помогают идентифицировать их.5
(sda4
): расширенный основной раздел, который будет содержать другие логические разделы (поскольку у нас может быть только 4 основных раздела с MBR)83
(sda5
,7
и8
): разделы, которые поддерживает Linux. Для меня одинhome
и два корня с разными версиями Ubuntu82
(sd6
): свопfdisk
Вы также можете читатьsfdisk
сценарии с помощьюI
команды, которая «берет их» во время интерактивногоfdisk
сеанса, что позволяет вам выполнить дальнейшую настройку перед написанием раздела.Протестировано на Ubuntu 16.04,
sfdisk
2.27.1.Отформатируйте и заполните разделы файла изображения без
sudo
Это хороший способ научиться использовать,
sfdisk
не взрывая свои жесткие диски: https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-disk-image-without-root- привилегии / 52850819 # 52850819источник
fdisk
читает из стандартного ввода, так что вам просто нужно дать ему соответствующие команды. Например, следующее очищает таблицу разделов, если она есть, и создает новую таблицу с одним разделом, который является; весь диск:Я рекомендую вам делать то, что вы хотите, записывая то, что вы печатаете, чтобы вы могли воспроизвести его.
источник
printf
вместо того,echo
чтобы просто иметь привычку использовать что-то, что ведет себя последовательно во всех системах.Вы можете сделать это с помощью пары команд, используя intros \ n вместо нескольких echos.
источник
\n
Нужен ли другой послеw
?echo
автоматически завершает строку новой строкой (если-n
не используется опция)Вы можете сценарий
fdisk
.Это создает раздел 200 МБ на
/dev/sdc
источник
Передача команд в fdisk работает хорошо, как объяснили другие люди, но этот способ немного более элегантен и удобочитаем:
Трубопровод из (временного) файла также работает:
источник
Создайте новый тип метки диска gpt:
sudo /sbin/parted /dev/xvdf mklabel gpt --script
Раздел диска:
sudo /sbin/parted /dev/xvdf mkpart primary 0% 100% --script
источник
источник
Скрипт использует fdisk для создания разделов, основанных на ответах других людей.
Измените следующее в скрипте:
NUM_PARTITIONS = 5
PARTITION_SIZE = "+ 10G"
Пример использования приведен после сценария.
бежать с:
sudo sh mk_partition.sh / dev / sdxxx
источник
Вы можете использовать этот скрипт. Просто убедитесь, что вы определяете свои собственные разделы, где
hdd
это определено. Есть 2 пустых пространства между1
иw
; они должны быть там для принятия значений по умолчанию.источник