prime os インストール　【自動パーティション作成】

詳細は要望があれば記載します。
PrimeOS-2.1.3-64-bit-20220719-BETA

パーティション作成を自動化しました。

install.img/install/scripts/1-install

```
# Chih-Wei Huang <cwhuang@linux.org.tw>によって書かれました
# redstar hr<X(twitter)@redstar_hr>によって、記憶媒体自動キッティング状態
# ライセンス: GNU 公開ライセンス
# 明示的に、Android-x86 プロジェクトでこのスクリプトを使用する権利を付与します。
#

tempfile=/tmp/temp-$$
menufile=/tmp/menu-$$

CPIO=cpio
OS_TITLE=${OS_TITLE:-Android-x86}

rebooting() {
    dialog --title "再起動中..." --nocancel --pause "" 8 41 1
    sync
    umount -a
    reboot -f
}

auto_answer() {
    echo "$answer" > $tempfile
    unset answer
    test "`cat $tempfile`" != "0"
}

set_answer_if_auto() {
    [ -n "$AUTO_INSTALL" ] && answer="$1"
}

adialog() {
    if [ -n "$answer" ]; then
        auto_answer
    else
        dialog "$@" 2> $tempfile
    fi
}

choose() {
    adialog --clear --title " $1 " --menu "$2" 21 79 13 --file $menufile

    retval=$?
    choice=`cat $tempfile`
}

size_gb() {
    printf %0.2fGB $(dc `cat $1/size` 2097152 / p)
}

find_partition() {
    grep -H ^$2$ /sys/block/$1/*/partition 2> /dev/null | cut -d/ -f5
}

list_disks() {
    for b in /sys/block/[shv]d[a-z] /sys/block/mmcblk? /sys/block/nvme*; do
        [ -d $b ] && echo $b
    done
}

auto_partition() {
    [ "$AUTO_INSTALL" = "force" ] || dialog --title " 自動インストーラー " --defaultno --yesno \
        "\n自動インストールを選択しました。\n\nインストーラーは /dev/$1 を完全に消去し、$OS_TITLE をインストールします。\n\nこれは最後の確認です。本当に実行してもよろしいですか？" 12 61
    [ $? -ne 0 ] && rebooting

    if [ -z "$efi" ]; then
        echo -e "o\nn\np\n1\n\n\nw\n" | fdisk /dev/$1
        p=1
    else
        sgdisk --zap-all /dev/$1
        sgdisk --new=1::+260M --typecode=1:EF00 --largest-new=2 --typecode=2:8300 /dev/$1
        p=2
    fi > /dev/tty6

    while sleep 1; do
        answer=`find_partition $1 $p`
        [ -n "$answer" ] && break
    done
    [ -n "$efi" ] && mkdosfs -n EFI /dev/`find_partition $1 1`
}

partition_drive() {
    echo -n > $menufile
    for i in `list_disks`; do
        echo -n `basename $i` >> $menufile
        if [ -f $i/removable -a `cat $i/removable` -eq 0 ]; then
            echo -n ' "ハードディスク ' >> $menufile
        else
            echo -n ' "リムーバブル' >> $menufile
        fi
        if [ -f $i/size ]; then
            sz=$(size_gb $i)
            [ "$sz" = "0.00GB" ] && sz="<0.01GB"
            printf " %10s" $sz >> $menufile
        fi
        for f in $i/device/model $i/*/name; do
            [ -e $f ] && echo -n " `sed $'s/\x04//g' $f`" >> $menufile && break
        done
        [ "`basename $i`" = "$booted_from" -o -d $i/$booted_from ] && echo -n " *" >> $menufile
        echo '"' >> $menufile
    done
    count=`wc -l < $menufile`
    if [ $count -eq 0 ]; then
        dialog --title " エラー " --msgbox \
            "\nOK. 編集可能なハードディスクがありません。" 8 49
        return 255
    fi

    if [ $count -eq 1 -o "$AUTO_INSTALL" = "force" ]; then
        drive=1
    else
        drive=`basename $AUTO_INSTALL`
    fi
    choice=`awk -v n=$drive '{ if (n == NR || n == $1) print $1 }' $menufile`
    if [ -b /dev/$choice ]; then
        retval=0
    else
        choose "ドライブの選択" "パーティションを編集するドライブを選択してください:\n\n* - インストーラーソース"
    fi
    if [ $retval -eq 0 ]; then
        if [ -n "$AUTO_INSTALL" ]; then
            auto_partition $choice
            return 1
        fi
        if fdisk -l /dev/$choice | grep -q GPT; then
            part_tool=cgdisk
        elif fdisk -l /dev/$choice | grep -q doesn.t; then
            dialog --title " 確認 " --defaultno --yesno "\n GPTを使用しますか?" 7 29
            [ $? -eq 0 ] && part_tool=cgdisk || part_tool=cfdisk
        else
            part_tool=cfdisk
        fi
        $part_tool /dev/$choice
        if [ $? -eq 0 ]; then
            retval=1
        else
            retval=255
        fi
    fi
    return $retval
}
```