Подключить диск к виртуальной машине
Подключить диск можно как к работающей, так и к остановленной ВМ.
Чтобы диск был успешно подключен к работающей ВМ, операционная система ВМ должна быть готова принимать команды на подключение диска. Перед подключением диска убедитесь, что ОС загружена, или остановите ВМ — иначе операция подключения диска завершится с ошибкой. При возникновении ошибки остановите ВМ и повторите операцию.
При выборе диска для подключения к виртуальной машине можно указать, следует ли удалять этот диск при удалении соответствующей машины. Указать это можно при создании, изменении виртуальной машины и при подключении нового диска.
Подключить диск
Чтобы подключить диск к ВМ:
- В консоли управления выберите каталог, которому принадлежит ВМ.
- Выберите сервис Compute Cloud.
- На панели слева выберите Диски.
- Выберите неподключенный диск или создайте новый.
- Напротив нужного диска нажмите
- В открывшемся окне:
- В поле ВМ выберите ВМ, к которой нужно подключить диск.
- Введите Название устройства.
- Выберите значение параметра Автоматическое удаление.
- Нажмите кнопку Подключить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для подключения дисков:
yc compute instance attach-disk --help
-
Получите список ВМ в каталоге по умолчанию:
yc compute instance list +----------------------+-----------------+---------------+---------+----------------------+ | ID | NAME | ZONE ID | STATUS | DESCRIPTION | +----------------------+-----------------+---------------+---------+----------------------+ | fhm0b28lgfp4tkoa3jl6 | first-instance | ru-central1-a | RUNNING | my first vm via CLI | | fhm9gk85nj7gcoji2f8s | second-instance | ru-central1-a | RUNNING | my second vm via CLI | +----------------------+-----------------+---------------+---------+----------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужной ВМ, напримерfirst-instance
. -
Получите список дисков в каталоге по умолчанию:
yc compute disk list
Результат выполнения:
+----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | ID | NAME | SIZE | ZONE | STATUS | INSTANCE IDS | DESCRIPTION | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | a7lqgbt0bb9s40tifuhc | first-disk | 20401094656 | ru-central1-a | READY | a7lcvu28njbhnkcteb5n | | | a7lv5j5hm1p1hppprga7 | second-disk | 21474836480 | ru-central1-a | READY | | | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужного диска, напримерfirst-disk
. Посмотреть список подключенных к ВМ дисков можно с помощью команды:yc compute instance get --full first-instance
-
Подключите диск к ВМ:
yc compute instance attach-disk first-instance \ --disk-name first-disk \ --mode rw
Чтобы диск был автоматически удален при удалении ВМ, укажите флаг
--auto-delete
.Примечание
На пустых дисках файловая система отсутствует. Если вы подключаете пустой диск, разметьте и смонтируйте его вручную. Или, вместо подключения пустого диска, вы можете сделать снимок загрузочного диска и создать ВМ из этого снимка.
Если возникла ошибка, остановите ВМ:
yc compute instance stop first-instance
Затем подключите диск повторно.
-
Если ВМ была остановлена, запустите ее заново:
yc compute instance start first-instance
Воспользуйтесь методом attachDisk для ресурса Instance.
Смонтировать диск, созданный из снимка или образа
Для использования подключенного диска:
Смонтируйте диск:
-
Подключитесь к ВМ по SSH.
-
Выполните команду
blkid
и проверьте, что нет разделов с одинаковыми UUID:sudo blkid /dev/vda2: UUID="0d6dfef0-542d-47ba-b55b-18ab5f5f9210" TYPE="ext4" PARTUUID="752aa845-94ee-4850-9188-71c2f919ee7b" /dev/vdb2: UUID="0d6dfef0-542d-47ba-b55b-18ab5f5f9210" TYPE="ext4" PARTUUID="752aa845-94ee-4850-9188-71c2f919ee7b" ...
-
Если вы обнаружили, что какие-то UUID дублируются, сгенерируйте новый UUID для тех дубликатов, которые идут последними в выводе команды
blkid
. Для примера из предыдущего шага надо сгенерировать UUID для раздела/dev/vdb2
:sudo e2fsck -f /dev/vdb2 sudo tune2fs -U $(uuidgen) /dev/vdb2
Этот способ подойдет для разделов с файловыми системами
ext2
,ext3
иext4
. Последняя используется в образах Linux, предоставляемых Yandex Cloud. Тип файловой системы возвращается командойblkid
в параметреTYPE
.Если у вас отличается файловая система, используйте соответствующие команды. Например, для
XFS
выполните:sudo xfs_admin -U generate /dev/vdb2
Чтобы проверить, что UUID изменился, снова выполните команду
blkid
:sudo blkid /dev/vda2: UUID="0d6dfef0-542d-47ba-b55b-18ab5f5f9210" TYPE="ext4" PARTUUID="752aa845-94ee-4850-9188-71c2f919ee7b" /dev/vdb2: UUID="ea004485-07fb-4128-b20d-e408db1e8ae8" TYPE="ext4" PARTUUID="752aa845-94ee-4850-9188-71c2f919ee7b"
В Linux при создании снимка или образа сохраняются UUID и PARTUUID разделов диска. Эти данные Linux использует при монтировании разделов, в том числе корневого раздела, поэтому они должны быть уникальными. Например, если склонировать загрузочный диск и подключить его к той же виртуальной машине, на виртуальной машине появятся 2 раздела с одинаковыми UUID. В результате после запуска ВМ, в качестве корневого раздела может быть использован не тот диск, который вы указали загрузочным.
-
Смонтируйте разделы диска с помощью утилиты
mount
, например, смонтируйте разделvdb2
в папку/mnt
:sudo mkdir /mnt sudo mount /dev/vdb2 /mnt
-
Выполните команду
df
, чтобы проверить состояние файловой системы.
- Подключитесь к ВМ по RDP.
- Назначьте букву подключенному диску. Как это сделать читайте в документации Microsoft.
Разметить и смонтировать пустой диск
Чтобы самостоятельно разметить и смонтировать пустой диск:
-
Проверьте, подключен ли диск как устройство и узнайте его путь в системе:
lsblk
Результат:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 13G 0 disk ├─vda1 252:1 0 1M 0 part └─vda2 252:2 0 13G 0 part / vdb 252:16 0 1G 0 disk
Обычно пустой диск имеет метку вида /dev/vdb.
-
Разметьте диск. Для этого создайте на нем разделы с помощью утилиты
cfdisk
, утилитыfdisk
или утилитыparted
. -
Для примера создадим разделы с помощью команды
fdisk
. Используйте командуsudo
или выполняйте команды от имени пользователяroot
: для этого выполните командуsudo su -
.sudo fdisk /dev/vdb
Вы попадете в меню программы
fdisk
. Чтобы получить список доступных команд нажмите клавишу M. -
Создайте новый раздел — нажмите N.
-
Укажите, что раздел будет основным — нажмите P.
-
Появится предложение выбрать номер раздела. Нажмите Enter, чтобы создать первый раздел.
-
Номера первого и последнего секторов раздела оставьте по умолчанию — два раза нажмите Enter.
-
Убедитесь, что раздел успешно создан. Для этого нажмите клавишу P и выведите список разделов диска. Пример созданного раздела:
Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 41943039 41940992 20G 83 Linux
-
Для сохранения внесенных изменений нажмите клавишу W.
-
Отформатируйте диск в нужную файловую систему, например, с помощью утилиты
mkfs
. Например, чтобы отформатировать раздел в ext4 введите команду:sudo mkfs.ext4 /dev/vdb1
-
Смонтируйте разделы диска с помощью утилиты
mount
. Для того, чтобы монтировать разделvdb1
в папку/mnt/vdb1
выполните:sudo mkdir /mnt/vdb1 sudo mount /dev/vdb1 /mnt/vdb1
-
Настройте разрешения на чтение и запись на диске с помощью утилиты
chmod
. Например, для предоставления доступа на запись к диску всем пользователям, выполните команду:sudo chmod a+w /mnt/vdb1
-
Получите идентификатор (
UUID
) диска с помощью утилитыblkid
:sudo blkid /dev/vdb1
Результат:
/dev/vdb1: UUID="397f9660-e740-40bf-8e59-ecb88958b50e" TYPE="ext4" PARTUUID="e34d0d32-01"
-
Чтобы настроить автоматическое монтирование раздела после перезапуска ВМ:
-
Откройте файл
/etc/fstab
с помощью текстового редактораnano
:sudo nano /etc/fstab
-
Допишите в файл следующую строку, указав в параметре
UUID
идентификатор вашего диска, например:UUID=397f9660-e740-40bf-8e59-ecb88958b50e /mnt/vdb1 ext4 defaults 0 2
-
Сохраните изменения в файле.
-
-
Проверьте состояние файловых систем:
df
Результат:
Filesystem 1K-blocks Used Available Use% Mounted on udev 989424 0 989424 0% /dev tmpfs 203524 816 202708 1% /run /dev/vda2 13354932 2754792 10015688 22% / tmpfs 1017608 0 1017608 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 1017608 0 1017608 0% /sys/fs/cgroup tmpfs 203520 0 203520 0% /run/user/1000 /dev/vdb1 523260 3080 520180 1% /mnt/vdb1
-
Запустите приложение Управление компьютером с правами администратора.
-
В меню Запоминающие устройства выберите Управление дисками.
Примечание
При подключении диска к работающей ВМ он может не отобразиться в списке. В этом случае перезагрузите ОС и повторите шаги 1 и 2. После этого нажмите правой кнопкой мыши на пустой диск и выберите пункт В сети.
-
Инициализируйте диск. Для этого нажмите правой кнопкой мыши на пустой диск и выберите пункт Инициализировать диск. Откроется окно Инициализация диска.
-
Выберите стиль разделов и нажмите ОК.
-
Создайте разделы на диске. Для этого нажмите правой кнопкой мыши на пустой диск и выберите пункт Создать простой том.
-
С помощью Мастера создания простых томов задайте размер раздела, назначьте букву диска и укажите файловую систему.