Я пытаюсь настроить "scratch" локальный SSD на Google Cloud Platform / Google Compute Engine в стартовом скрипте для запуска вытесняемого экземпляра при создании VM. При запуске этого скрипта на VM нет никаких ценных данных.
После создания виртуальной машины с локальным SSD-диском gcloud
или через веб-консоль необходимо выполнить некоторые настройки виртуальной машины.
Локальная документация SSDговорит, что я должен:
- идентифицируйте блочное устройство ssd с помощью
lsblk
- отформатируйте его с помощью
mkfs.ext4 -F /dev/[block-dev-from-part1]
- закрепите его где-нибудь и наслаждайтесь
Но на шаге 2 я получаю ошибку, что /dev/sdb1
объект не найден.
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