Автоматизация создания разделов с помощью fdisk

Вопрос или проблема

Я использую эти команды в командной строке:

sudo fdisk /dev/mmcblk1
p
d
w

sudo fdisk /dev/mmcblk1
n
(используя все настройки по умолчанию)
w

Есть ли способ автоматизировать эту задачу или сделать это в виде однострочной команды (или одной однострочной команды для каждой команды fdisk, то есть всего две однострочные команды)? Может быть, с использованием Python?

Можно использовать однострочную команду (bash):

(echo p; echo d; ... ; echo w) | fdisk /dev/mmcblk1

Чтобы установить ответ по умолчанию, используйте echo "", чтобы ответить “Да”, используйте echo "Y"

Просто создайте файл (например, fdisk_cmds), который содержит команды, например:

p
i
    # Это пустая строка для выбора ответа по умолчанию
q

sudo fdisk /dev/mmcblk1 < fdisk_cmds

Рассмотрите SFDisk для этой работы. См. Как написать скрипт для sfdisk или parted для нескольких разделов? для подробностей.

Сначала используйте более подходящий инструмент. Но если вам нужно автоматизировать такой ввод, используйте here-doc:

sudo fdisk /dev/mmcblk1 <<\КонецОтветов
p
d
w
q
КонецОтветов

(Вы можете выбрать любой символ, который вам нравится вместо КонецОтветов; вы увидите, что во многих документациях используется EOF, но это всего лишь условность. Символ \ после << просто “цитирует” первую букву КонецОтветов, как это видит оболочка, что означает, что в теле here-doc не происходят расширения $; вы можете добиться того же эффекта, используя <<'КонецОтветов' или <<"КонецОтветов" или даже <<КонецА\nсветов.)

Ответ или решение

Автоматизация создания разделов с помощью fdisk

Вопрос, который вы подняли, касается автоматизации создания разделов на устройстве с использованием fdisk. В данном ответе мы рассмотрим различные методы автоматизации этого процесса, обеспечив простоту, эффективность и безопасность.

Понимание fdisk

fdisk — это мощная утилита командной строки, используемая для управления разделами на жестких дисках и других устройствах хранения. Однако интерактивный интерфейс может затруднить автоматизацию задач.

Чтобы автоматизировать выполнение команд fdisk, вы можете использовать несколько подходов:

1. Использование here-doc в Bash

Один из самых простых и эффективных способов автоматизации команд fdisk — это использование here-document. Этот метод позволяет передать несколько команд в стандартный ввод fdisk без необходимости их вручную вводить.

Пример:

sudo fdisk /dev/mmcblk1 <<EOF
p
d
w
EOF

В этом случае EOF — это маркер, который указывает, где начинается и заканчивается ввод. Вы можете выбрать любое другое имя для маркера по вашему усмотрению.

2. Использование файла команд

Также вы можете создать текстовый файл, содержащий необходимые команды, и передать его в fdisk. Например, создайте файл, названный fdisk_cmds, и вставьте в него следующие команды:

p
d
w

Затем выполните команду:

sudo fdisk /dev/mmcblk1 < fdisk_cmds

3. Использование echo для однострочных команд

Если вам нужно использовать однострочные команды, вы можете использовать следующее:

(echo p; echo d; echo w) | sudo fdisk /dev/mmcblk1

Этот подход работает, перенаправляя вывод команды echo в fdisk.

4. Рассмотрите использование sfdisk или parted

Если ваша задача заключается в создании нескольких разделов или более сложных сценариях, возможно, стоит рассмотреть sfdisk или parted. Эти инструменты предлагают более мощные функции для работы с таблицами разделов и могут быть легче автоматизированы.

Пример использования sfdisk может выглядеть следующим образом:

echo ",,L" | sudo sfdisk /dev/mmcblk1

Заключение

Автоматизация создания разделов на устройствах с помощью fdisk может быть выполнена различными способами, включая использование here-doc, файлов команд или однострочных команд. Выбор самого подходящего метода зависит от ваших конкретных потребностей и сценариев использования.

Помните, что работа с разделами может привести к потере данных, поэтому обязательно создавайте резервные копии важных данных перед выполнением операций с дисками.

Для более сложных сценариев рассмотрите возможность использования инструментов, таких как sfdisk или parted, которые могут предложить больше функциональности и гибкости по сравнению с fdisk.

Оцените материал
Добавить комментарий

Капча загружается...