У меня есть сценарий оболочки, который в основном выполняет раздел устройства 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 МБ) с теми же разделами?