bashプログラムを使用してデバイスを破壊しないパーティショナーを作成する方法についてのアイデアはありますか?

bashプログラムを使用してデバイスを破壊しないパーティショナーを作成する方法についてのアイデアはありますか?

だから私はすべての作業をせずにArchをインストールするために必要なすべての機能を実行するbashプログラムをウェブサイトで作成しようとしています。ディスクの消去、パーティションの作成/削除、プログラムのインストールにはこのプログラムが必要です。私が経験している問題は、ディスクを安全に消去してパーティションを作成/削除することです。デバイスをブロックせずにこれを行うにはどうすればよいですか?

このリソースに関する別の質問(https://superuser.com/questions/332252/how-to-create-and-format-a-partition-using-a-bash-script)

私はこのコードを見ました:

# to create the partitions programatically (rather than manually)
# we're going to simulate the manual input to fdisk
# The sed script strips off all the comments so that we can 
# document what we're doing in-line with the actual commands
# Note that a blank line (commented as "defualt" will send a empty
# line terminated with a newline to take the fdisk default.
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk ${TGTDEV}
  o # clear the in memory partition table
  n # new partition
  p # primary partition
  1 # partition number 1
    # default - start at beginning of disk 
  +100M # 100 MB boot parttion
  n # new partition
  p # primary partition
  2 # partion number 2
    # default, start immediately after preceding partition
    # default, extend partition to end of disk
  a # make a partition bootable
  1 # bootable partition is partition 1 -- /dev/sda1
  p # print the in-memory partition table
  w # write the partition table
  q # and we're done
EOF

ユーザーが変数を指定する必要があるかどうかを教えてもらえますか?私は、ユーザーの便宜のために、プログラムがすべての分割コマンドを実行できるようにしたいと思います。さらに、これは安全ですか?

ベストアンサー1

sfdisk代わりに、次のものを使用することを検討する必要がありますfdisk

まず、ディスクにgptパーティションテーブル、EFIパーティション、およびEXT4パーティションを作成するには、/dev/sda次の手順を実行します。

sfdisk -X gpt /dev/sda <<EEOF 
,+500M,U,
,,L,
write   
EEOF

GPTの代わりにDOSが必要な場合は、次の手順を実行します-X dos-X gpt

これにより、ディスクに残っている空き領域を使用して500 mb EFIパーティションとEXT4パーティションが作成されます/dev/sdaUそしてVパーティションタイプを指定します。その中にはVEFIパーティションとUEXT4パーティションがあります。

それでもfdiskを使いたいなら。以前と同様の操作を実行する必要がありますが、古いパーティションテーブルを上書きすると警告が表示されることがあります。これにはユーザー入力が必要です(あなたが望んでいないようです)。

man sfdiskパーティションタイプのエイリアスと詳細情報を確認してください。

考慮すべき事項:sdaユーザーにディスクがない場合、この操作は失敗します。代わりに、ユーザーがArchをインストールするディスクを指定できるように、ユーザー入力をお勧めします。

read -p "Name of disk to install: " disk

次に、前のように実行し、代わりに次をsda使用します$disk

sfdisk -X gpt /dev/$disk <<EEOF

パーティションを作成して覚えてくださいパーティションフォーマット

おすすめ記事