Подключить диск к виртуальной машине
Подключить диск можно как к работающей, так и к остановленной виртуальной машине.
Чтобы диск был успешно подключен к работающей ВМ, операционная система машины должна быть готова принимать команды на подключение диска. Перед подключением диска убедитесь, что ОС загружена, или остановите виртуальную машину — иначе операция подключения диска завершится с ошибкой. При возникновении ошибки остановите ВМ и повторите операцию.
При выборе диска для подключения к виртуальной машине можно указать, следует ли удалять этот диск при удалении соответствующей машины. Указать это можно при создании, изменении виртуальной машины и при подключении нового диска.
Подключить диск
Чтобы подключить диск к виртуальной машине:
- Выберите каталог, которому принадлежит виртуальная машина.
- Выберите сервис Yandex 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
.Чтобы проверить, что 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 использует при монтировании разделов, в том числе корневого раздела, поэтому они должны быть уникальными. Например, если cклонировать загрузочный диск и подключить его к той же виртуальной машине, на виртуальной машине появятся 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.
-
Отформатируйте диск в нужную файловую систему, например, с помощью утилиты mkfs.
-
Смонтируйте разделы диска с помощью утилиты
mount
, например, смонтируйте разделvdb2
в папку/mnt
:sudo mkdir /mnt sudo mount /dev/vdb2 /mnt
-
Проверьте состояние файловой системы:
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/vdb2 523260 3080 520180 1% /mnt
-
Запустите приложение Управление компьютером с правами администратора.
-
В меню Запоминающие устройства выберите Управление дисками.
-
Инициализируйте диск. Для этого нажмите правой кнопкой мыши на пустой диск и выберите пункт Инициализировать диск. Откроется окно Инициализация диска.
-
Выберите стиль разделов и нажмите ОК.
-
Создайте разделы на диске. Для этого нажмите правой кнопкой мыши на пустой диск и выберите пункт Создать простой том.
-
С помощью Мастера создания простых томов задайте размер раздела, назначьте букву диска и укажите файловую систему.