web-dev-qa-db-ja.com

デバイス全体を使用する単一のパーティションの作成をスクリプト化するにはどうすればよいですか?

私は特にこれを使用して、Amazon EC2インスタンスでEBSボリュームをパーティション化してマウントしますが、実際には、これは一般的に新しいドライブの初期化に適用できます。

質問にあるように、特定のデバイスで利用可能なすべてのスペースを使用する単一のプライマリパーティションの作成をスクリプト化したいと思います。デバイスの大きさが事前にわからないため、非常に大きくなる可能性があります(数TBなど)。

これを調査すると、partedがスクリプト作成に使用するのに最適なコマンドのようです。 parted /dev/sdf mkpart primary 0 ENDは私が欲しいものですが、ENDがどうあるべきかを決定するためのエレガントな方法を理解するのに苦労しています。誰かがこれを行う簡単な方法を知っていますか?

9
Mike Deck

あなたはこれを次のように行うことができます:

parted /dev/sdf --script -- mkpart primary 0 -1
11
Gilles Quenot

他の答えを使おうとしたときに問題が発生しました。私にとってうまくいったのは、代わりにこのようなパーセンテージアプローチを使用することでした:

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

partedと、パーティションの配置を処理する方法に問題があります。これらの2つの記事では、この問題について少し説明しています。

これらの記事で概説されている計算は、私のシナリオでは機能しませんでした。 2番目のコメントの1つに埋もれ、リンクを誰かがパーセンテージを使用することを提案し、それでうまくいきました。

ちなみに、通常はHDDにもラベルを付ける必要があります。 partedを使用してCLIでこれを行うには:

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

-または-

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

HDDによって異なります。

5
slm

できるよ...

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

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

2
mikeserv