VM 作成時に実行されるプリエンプティブ インスタンスの起動スクリプトで、Google Cloud Platform / Google Compute Engine 上に「スクラッチ」ローカル SSD を設定しようとしています。このスクリプトの実行時には、VM 上に貴重なデータは存在しません。
gcloud
または Web コンソールからローカル SSD を使用して VM を作成した後、VM 上でいくつかの設定を行う必要があります。
ローカル SSD ドキュメント私はこう言うべきだ:
- SSDブロックデバイスを識別する
lsblk
- フォーマットする
mkfs.ext4 -F /dev/[block-dev-from-part1]
- どこかに取り付けて楽しんでください
/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