Подключить диск к виртуальной машине
Вы можете подключить дополнительный диск к работающей и остановленной ВМ.
На ВМ с Linux из Cloud Marketplace или из пользовательских образов с установленным набором драйверов подключенный дополнительный диск будет доступен в качестве нового устройства без перезагрузки ВМ.
Чтобы диск был успешно подключен, операционная система ВМ должна быть полностью загружена или остановлена, иначе операция завершится с ошибкой. При возникновении ошибки остановите ВМ и повторите операцию.
На ВМ с Windows подключенный дополнительный диск будет доступен в качестве нового устройства только после перезагрузки ВМ.
При выборе диска для подключения к виртуальной машине можно указать, следует ли удалять этот диск при удалении соответствующей машины. Указать это можно при создании, изменении виртуальной машины и при подключении нового диска.
Подключить диск
Примечание
Подключить локальный диск к ВМ на выделенном хосте можно только при ее создании. Подробнее см. в инструкциях.
- В консоли управления
выберите каталог, которому принадлежит ВМ. - Выберите сервис Compute Cloud.
- На панели слева выберите
Диски. - Выберите неподключенный диск или создайте новый.
- Напротив диска, который вы хотите подключить, нажмите
и выберите Присоединить. - В открывшемся окне:
-
В поле ВМ выберите виртуальную машину, к которой нужно подключить диск.
-
Если в хотите подключить зашифрованный диск, выберите сервисный аккаунт c ролью
kms.keys.encrypterDecrypter
на ключ KMS, которым зашифрован диск. -
Укажите название устройства.
-
При необходимости включите опцию Удалять вместе с виртуальной машиной.
-
- Нажмите кнопку Подключить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для подключения дисков:
yc compute instance attach-disk --help
-
Получите список ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+----------------------+ | ID | NAME | ZONE ID | STATUS | DESCRIPTION | +----------------------+-----------------+---------------+---------+----------------------+ | fhm0b28lgfp4******** | first-instance | ru-central1-a | RUNNING | my first vm via CLI | | fhm9gk85nj7g******** | 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 | PLACEMENT GROUP | DESCRIPTION | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+ | a7lqgbt0bb9s******** | first-disk | 20401094656 | ru-central1-a | READY | a7lcvu28njbh******** | | | | a7lv5j5hm1p1******** | 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
Воспользуйтесь методом REST API attachDisk для ресурса Instance или вызовом gRPC API InstanceService/AttachDisk.
Смонтировать диск, созданный из снимка или образа
-
Подключите диск к ВМ.
-
Подключитесь к ВМ по 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/vdb2 sudo mount /dev/vdb2 /mnt/vdb2
-
Выполните команду
df
, чтобы проверить состояние файловой системы.
-
Подключитесь к ВМ по RDP.
-
Запустите приложение Управление компьютером (оснастка
compmgmt.msc
) с правами администратора. -
В меню Запоминающие устройства выберите Управление дисками.
Примечание
При подключении диска к работающей ВМ он может не отобразиться в списке. В этом случае перезагрузите ОС и повторите шаги этой инструкции.
-
Если подключенный диск Не в сети, нажмите на него правой кнопкой мыши и выберите пункт В сети.
-
При необходимости назначьте букву подключенному диску. Как это сделать читайте в документации Microsoft
. -
Откройте Проводник, чтобы убедиться, что подключенный диск смонтирован и доступен.
Разметить и смонтировать пустой диск
-
Подключите пустой диск к ВМ.
-
Проверьте, подключен ли диск как устройство, и узнайте его путь в системе:
ls -la /dev/disk/by-id
Результат:
total 0 drwxr-xr-x 2 root root 140 Jan 16 12:09 . drwxr-xr-x 6 root root 120 Jan 13 13:51 .. lrwxrwxrwx 1 root root 9 Jan 16 12:09 virtio-fhm1dn62tm5d******** -> ../../vdc lrwxrwxrwx 1 root root 9 Jan 13 13:51 virtio-fhm4ev6dodt9******** -> ../../vdb lrwxrwxrwx 1 root root 10 Jan 13 13:51 virtio-fhm4ev6dodt9********-part1 -> ../../vdb1 lrwxrwxrwx 1 root root 10 Jan 13 13:51 virtio-fhm4ev6dodt9********-part2 -> ../../vdb2 lrwxrwxrwx 1 root root 9 Jan 13 13:51 virtio-nvme-disk-0 -> ../../vda
Где:
- Сетевым дискам соответствуют ссылки вида
virtio-<идентификатор_диска>
. Например, записьvirtio-fhm1dn62tm5d******** -> ../../vdc
означает, что неразмеченный диск с IDfhm1dn62tm5d********
имеет меткуvdc
. - Локальным дискам на выделенных хостах соответствуют ссылки вида
virtio-nvme-disk-<номер_диска>
(если вы подключали диски к ВМ при ее создании). Диски нумеруются с нуля. Например, записьvirtio-nvme-disk-0 -> ../../vda
означает, что первый (нулевой) локальный диск имеет меткуvda
.
- Сетевым дискам соответствуют ссылки вида
-
Разметьте диск. Для этого создайте на нем разделы
с помощью утилитыcfdisk
, утилитыfdisk
или утилитыparted
.Выполняйте команды с правами суперпользователя. Для этого в каждой команде используйте
sudo
или перед началом работы выполните командуsudo su -
, чтобы перевести терминал в режим суперпользователя. Для примера создадим разделы с помощьюfdisk
:-
Запустите утилиту:
sudo fdisk /dev/<метка_диска>
Где
<метка_диска>
— метка диска, который нужно разметить, напримерvdb
илиvdc
.Вы попадете в меню программы
fdisk
. Чтобы получить список доступных команд, введитеm
и нажмите Enter. -
Создайте новый раздел — введите
n
и нажмите Enter. -
Укажите, что раздел будет основным — введите
p
и нажмите Enter. -
Появится предложение выбрать номер раздела. Нажмите Enter, чтобы создать раздел
1
. -
Номера первого и последнего секторов раздела оставьте по умолчанию — нажмите Enter дважды.
-
Убедитесь, что раздел успешно создан. Для этого запросите список разделов диска: введите
p
и нажмите Enter.Результат:
Device Boot Start End Sectors Size Id Type /dev/vdc1 2048 41943039 41940992 20G 83 Linux
Где
vdc1
— метка раздела, состоящая из метки диска и номера раздела. Метка раздела понадобится при выполнении дальнейших действий с разделом. -
Чтобы сохранить внесенные изменения, введите
w
и нажмите Enter.
-
-
Отформатируйте раздел в нужную файловую систему. Для этого можно воспользоваться утилитой
mkfs
. Например, чтобы отформатировать раздел вext4
, выполните команду, указав метку созданного ранее раздела:sudo mkfs.ext4 /dev/<метка_раздела>
Результат:
Creating filesystem with 261888 4k blocks and 65536 inodes Filesystem UUID: 584a800c-e1fc-4f66-9228-a444f2d7440d Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done
Где
Filesystem UUID
— уникальный идентификатор раздела. Идентификатор раздела понадобится при настройке автоматического монтирования этого раздела к системе. Получить идентификатор раздела также можно с помощью командыsudo blkid /dev/<метка_раздела>
. -
Смонтируйте раздел диска с помощью утилиты
mount
. Чтобы смонтировать раздел/dev/<метка_раздела>
в директорию/mnt/new_disk
, выполните следующую команду:sudo mkdir /mnt/new_disk && sudo mount /dev/<метка_раздела> /mnt/new_disk
-
Настройте разрешения на чтение и запись в разделе с помощью утилиты
chmod
. Например, чтобы разрешить всем пользователям запись в раздел, выполните следующую команду:sudo chmod a+w /mnt/new_disk
-
Настройте автоматическое монтирование раздела в директорию
mnt/new_disk
при запуске ВМ:-
Откройте файл
/etc/fstab
с помощью текстового редактораnano
:sudo nano /etc/fstab
-
Допишите в конец файла следующую строку, указав в параметре
UUID
идентификатор вашего раздела:UUID=<идентификатор_раздела> /mnt/new_disk ext4 defaults 0 2
Где
UUID
— уникальный идентификатор раздела, полученный ранее при форматировании. Например584a800c-e1fc-4f66-9228-a444f2d7440d
. -
Сохраните изменения и закройте файл.
-
-
Проверьте состояние файловых систем:
df
Результат:
Filesystem 1K-blocks Used Available Use% Mounted on udev 989424 0 989424 0% /dev tmpfs 203524 816 202708 1% /run /dev/vdb2 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/vdc1 523260 3080 520180 1% /mnt/vdc1
-
Подключитесь к ВМ по RDP.
-
Запустите приложение Управление компьютером (оснастка
compmgmt.msc
) с правами администратора. -
В меню Запоминающие устройства выберите Управление дисками.
Примечание
При подключении диска к работающей ВМ он может не отобразиться в списке. В этом случае перезагрузите ОС и повторите шаги этой инструкции.
-
Если подключенный диск Не в сети, нажмите на него правой кнопкой мыши и выберите пункт В сети.
-
Инициализируйте диск. Для этого нажмите на него правой кнопкой мыши и выберите пункт Инициализировать диск. Откроется окно Инициализация диска.
-
Выберите стиль разделов
и нажмите ОК. -
Создайте разделы на диске. Для этого нажмите правой кнопкой мыши на пустой диск и выберите пункт Создать простой том.
-
С помощью Мастера создания простых томов задайте размер раздела, назначьте букву
диска и укажите файловую систему. -
Откройте Проводник, чтобы убедиться, что подключенный диск смонтирован и доступен.