Как установить нестандартный размер необработанного раздела с помощью sfdisk? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть сценарий оболочки, который в основном выполняет раздел устройства eMMC на моей плате с использованием sfdisk. Теперь мне нужно изменить и установить размер для необработанного раздела. Но он не работает должным образом с доступным скриптом.

Сценарий работал нормально, когда у меня только 4 раздела GPT, где я упомянул начальный размер, требуемый размер и тип раздела. Проблема возникает, когда мне нужно расширить разделы до 8, используя 3 раздела GPT и 1 расширенный раздел (с 5 разделами). В этом случае выдает ошибку, если я упоминаю размер необработанного раздела.

Соответствующий скрипт приведен ниже:

#!/bin/sh

# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done

# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1

sfdisk --force ${node} << EOF
,320M,83
,320M,83
,8M,83
,,E
,2M,83
,2048M,83
,512M,83
,16M,83
,,83
EOF

Приведенный выше скрипт сделает раздел без ошибок. Но скрипт по умолчанию выделяет только 2 МБ для исходного необработанного пространства. Мне действительно потребовалось 10 МБ свободного места перед первым разделом. Следовательно, я изменил скрипт как показано ниже:

#!/bin/sh

# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done

# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1

sfdisk --force ${node} << EOF
10M,320M,83
,320M,83
,8M,83
,,E
,2M,83
,2048M,83
,512M,83
,16M,83
,,83
EOF

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

Может ли кто-нибудь помочь мне выяснить, как изменить размер исходного необработанного раздела (то есть 2 МБ) на требуемый размер (то есть 10 МБ) с теми же разделами?

...