我正在尝试在启动脚本中为在创建虚拟机时运行的可抢占实例在 Google Cloud Platform/Google Compute Engine 上设置“临时”本地 SSD。运行此脚本时,虚拟机上没有有价值的数据。
从或 Web 控制台创建具有本地 SSD 的 VM 后gcloud
,需要在 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 不会更改其用户界面,那么您可以简单地运行 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