Estoy intentando configurar un SSD local "cero" en Google Cloud Platform/Google Compute Engine en un script de inicio para que se ejecute una instancia interrumpible en la creación de VM. No hay datos valiosos en la VM cuando se ejecuta este script.
Después de crear una máquina virtual con un SSD local desde gcloud
la consola web, hay que realizar algunas configuraciones en la máquina virtual.
Documentación SSD localdice que debería:
- identificar el dispositivo de bloque ssd con
lsblk
- formatearlo con
mkfs.ext4 -F /dev/[block-dev-from-part1]
- montarlo en algún lugar y disfrutar
Pero en el paso 2 me sale un error que /dev/sdb1
no se encuentra.
fdisk
revela que /dev/sdb
existe pero no tiene tabla de particiones.
Podría usar fdisk manualmente y funciona, pero ¿cómo puedo particionar el SSD y configurarlo en un script de inicio?
Respuesta1
Si está dispuesto a arriesgarse a que el SSD esté siempre en /dev/sdb y que fdisk no cambie su interfaz de usuario, simplemente puede ejecutar fdisk y proporcionar la entrada de fdisk en un EOF
bloque de la siguiente manera:
#!/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
La entrada de fdisk es n
para nueva, p
para la partición del sistema, luego 1
para la partición 1, dos líneas en blanco para aceptar los valores predeterminados de fdisk y luego w
para escribir la tabla de particiones.
Respuesta2
El SSD local se puede utilizar directamente como dispositivo de bloque sin particionar.
Puede:mkfs.ext4 -F /dev/sdb