デバイス全体を使用して単一のパーティションを生成するスクリプトをどのように作成できますか?

デバイス全体を使用して単一のパーティションを生成するスクリプトをどのように作成できますか?

Amazon EC2インスタンスでEBSボリュームを分割してマウントするために特にこれを使用しましたが、実際には通常、新しいドライブの初期化に適用できます。

質問が示すように、特定のデバイスで利用可能なすべてのスペースを使用する単一の基本パーティションを作成するスクリプトを作成したいと思います。デバイスがどれだけ大きくなるかは事前に知られておらず、かなり大きくなる可能性があります(例:数テラバイト)。

調査結果によると、partedスクリプトに最適なコマンドのようです。私はそのようなものがparted /dev/sdf mkpart primary 0 END私が望むものだと思いますが、ENDが何であるかを判断するためのエレガントな方法を見つけるのに苦労しています。これを行う簡単な方法を知っている人はいますか?

答え1

次のことができます。

parted /dev/sdf --script -- mkpart primary 0 -1

答え2

別の回答を使用しようとしたときに問題が発生しました。私に役立つのは、次のパーセンテージ方法を使用することです。

$ parted /dev/sdf --script -- mkpart primary 0% 100%

partedパーティションのソートと処理方法に問題があります。次の2つの記事では、この問題について少し議論します。

この記事で説明されている数学は私のシナリオでは機能しません。 2番目のコメントリンクのコメントで、誰かがパーセンテージの使用を提案しました。

しかし、通常、HDDにもラベルを付ける必要があります。 CLIを介してこれを行うには、次のようにしますparted

$ parted /dev/sde --script -- mklabel msdos

-または-

$ parted /dev/sde --script -- mklabel gpt

ハードドライブによって異なります。

答え3

あなたはできます...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

...msdos型の場合。 gptもほぼ同じですが…

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

または以下を使用してくださいsgdisk(非対話型gdisk):

sgdisk -n 1:0:0 /dev/disk

ファイルシステムの作成中にディスクにラベルを付けることができます。

関連情報