0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2024-12-02

詳細は要望があれば記載します。
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
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?