我正在嘗試在啟動腳本中在 Google Cloud Platform / Google Compute Engine 上設定一個「臨時」本地 SSD,以便在建立虛擬機器時運行可搶佔執行個體。執行此腳本時,VM 上不存在任何有價值的資料。
從 Web 控制台建立具有本機 SSD 的虛擬機器後gcloud
,需要在虛擬機器上進行一些設定。
本機SSD文檔說我應該:
- 識別 SSD 區塊設備
lsblk
- 將其格式化為
mkfs.ext4 -F /dev/[block-dev-from-part1]
- 將其安裝在某個地方&&享受
/dev/sdb1
但在第 2 步中我收到一個未找到的錯誤。
fdisk
顯示/dev/sdb
存在但沒有分區表。
我可以手動使用 fdisk 並且可以正常工作,但是如何在啟動腳本中對 SSD 進行分區並進行設定?
答案1
如果您願意冒險讓 SSD 始終位於 /dev/sdb 並且 fdisk 不會更改其用戶界面,您可以簡單地運行 fdisk 並在區塊中提供 fdisk 的輸入,EOF
如下所示:
#!/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
寫入分區表。
答案2
本地SSD可以直接作為區塊設備使用,無需分區。
你可以:mkfs.ext4 -F /dev/sdb