起動スクリプトでローカル SSD をパーティション分割してフォーマットする

起動スクリプトでローカル SSD をパーティション分割してフォーマットする

VM 作成時に実行されるプリエンプティブ インスタンスの起動スクリプトで、Google Cloud Platform / Google Compute Engine 上に「スクラッチ」ローカル SSD を設定しようとしています。このスクリプトの実行時には、VM 上に貴重なデータは存在しません。

gcloudまたは Web コンソールからローカル SSD を使用して VM を作成した後、VM 上でいくつかの設定を行う必要があります。

ローカル SSD ドキュメント私はこう言うべきだ:

  1. SSDブロックデバイスを識別するlsblk
  2. フォーマットするmkfs.ext4 -F /dev/[block-dev-from-part1]
  3. どこかに取り付けて楽しんでください

/dev/sdb1しかし、ステップ 2 で見つからないというエラーが発生します。

fdisk/dev/sdb存在するがパーティション テーブルがないことがわかります。

fdisk を手動で使用して動作させることはできますが、SSD をパーティション分割して起動スクリプトでセットアップするにはどうすればよいでしょうか?

答え1

SSD が常に /dev/sdb にあり、fdisk がユーザー インターフェイスを変更しないという可能性を受け入れられる場合は、EOF次のように fdisk を実行し、fdisk の入力をブロックで指定するだけです。

#!/bin/bash
sleep 30
fdisk /dev/sdb <<EOF
n
p
1


w
EOF
mkfs.ext4 -F /dev/sdb1
mkdir /tmp/ssd
mount /dev/sdb1 /tmp/ssd
chmod 777 /tmp/ssd

fdisk 入力はn、新規、pシステム パーティション、1パーティション 1、fdisk からのデフォルトを受け入れるための 2 つの空白行、そしてwパーティション テーブルを書き込むためのものです。

答え2

ローカル SSD は、パーティション分割せずにブロック デバイスとして直接使用できます。

あなたはできる:mkfs.ext4 -F /dev/sdb

関連情報