Ich versuche, in einem Startskript eine lokale „Scratch“-SSD auf Google Cloud Platform/Google Compute Engine für eine präemptive Instanz einzurichten, die bei der VM-Erstellung ausgeführt werden soll. Beim Ausführen dieses Skripts befinden sich keine wertvollen Daten auf der VM.
gcloud
Nachdem Sie über die Webkonsole eine VM mit einer lokalen SSD erstellt haben , müssen auf der VM einige Einstellungen vorgenommen werden.
Lokale SSD-Dokumentationsagt, ich sollte:
- Identifizieren Sie das SSD-Blockgerät mit
lsblk
- formatieren Sie es mit
mkfs.ext4 -F /dev/[block-dev-from-part1]
- montieren Sie es irgendwo und genießen Sie es
Aber in Schritt 2 erhalte ich die Fehlermeldung „ /dev/sdb1
Nicht gefunden“.
fdisk
zeigt, dass es /dev/sdb
vorhanden ist, aber keine Partitionstabelle hat.
Ich könnte fdisk manuell verwenden und das funktioniert, aber wie kann ich die SSD partitionieren und in einem Startskript einrichten?
Antwort1
Wenn Sie das Risiko eingehen möchten, dass sich die SSD immer unter /dev/sdb befindet und fdisk die Benutzeroberfläche nicht ändert, können Sie einfach fdisk ausführen und die Eingabe von fdisk in einem EOF
Block wie folgt bereitstellen:
#!/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
Die fdisk-Eingabe ist n
für „Neu“, p
für die Systempartition, dann 1
für Partition 1, zwei Leerzeilen, um die Vorgabewerte von fdisk zu akzeptieren, dann w
zum Schreiben der Partitionstabelle.
Antwort2
Die lokale SSD kann ohne Partitionierung direkt als Blockgerät verwendet werden.
Du kannst:mkfs.ext4 -F /dev/sdb