Google-Cloud-Platform

在啟動腳本中對本地 ssd 進行分區和格式化

  • December 7, 2021

我正在嘗試在啟動腳本中在 Google Cloud Platform / Google Compute Engine 上設置“臨時”本地 SSD,以便在創建 VM 時執行可搶占實例。執行此腳本時,VM 上沒有有價值的數據。

從或 Web 控制台創建具有本地 SSD 的 VM 後,gcloud需要在 VM 上進行一些設置。

本地 SSD 文件說我應該:

  1. 辨識 ssd 塊設備lsblk
  2. 格式化它mkfs.ext4 -F /dev/[block-dev-from-part1]
  3. 將它安裝在某個地方&&享受

但在第 2 步中,我得到一個/dev/sdb1未找到的錯誤。

fdisk顯示/dev/sdb存在但沒有分區表。

我可以手動使用 fdisk 並且可以,但是如何在啟動腳本中對 SSD 進行分區和設置?

如果您願意冒險讓 SSD 始終位於 /dev/sdb 並且 fdisk 不會更改其使用者界面,您可以簡單地執行 fdisk 並在一個EOF塊中提供 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 的預設值,然後w寫入分區表。

引用自:https://serverfault.com/questions/899246