Подключаем внешний HDD к виртуальной машине VirtualBox

prolinux

Опубликован:  2023-06-22T05:33:50.342288Z
Отредактирован:  2023-06-22T05:33:50.342288Z
Статус:  публичный
159
0
0

Привет, Интернет... У меня есть очередной лайфхак, делюсь опытом. В этом обзоре я расскажу, как подключить внешний HDD к виртуальной машине VirtualBox на базе десктопа Debian, и зачем это нужно. Для реализации задуманного в моём распоряжении есть компьютер с Debian sid на борту, установленный в систему VirtualBox и внешний HDD, который я подключаю к компьютеру в порт USB. Поставленная задача сама по себе несложная, но требует некоторого внимания, с ней легко справится даже новичок. Сейчас покажу как...


О VirtualBox

Программа VirtualBox даёт возможность запустить в сеансе текущей операционной системы, установленной на стационарный HDD пользовательского компьютера, вторую операционную систему. Программа даёт возможность создать так называемую виртуальную машину, настроить её оборудование с широкими возможностями кастомизации и запустить эту машину в отдельном окне, в сеансе текущей операционной системы.

Программа очень удобна и даёт возможность не только качественно дистрохопить, но и тестировать некоторые интересные ситуации. Если вам нужно отработать процесс развёртывания операционной системы на сервер, например, VirtualBox будет незаменим. Если необходимо собрать собственный iso-образ живой системы, то протестировать этот образ тоже можно в VirtualBox не перезагружая рабочий компьютер. Ну и конечно же VirtualBox очень понравится разного рода дистрохоперам, новичкам и просто интересующимся. Когда нужно установить на компьютер незнакомую до этого операционную систему, VirtualBox будет как нельзя кстати.

Термины

При работе с VirtualBox необходимо различать стационарную машину и виртуальный компьютер. Обычно в мануалах и howto стационарную машину, ту, на которой запущена программа VirtualBox, называют хост-машиной, от английского слова host - тот, кто принимает гостей. А виртуальную машину, ту, которая запущена в окне VirtualBox, называют гостевой машиной, от английского guest - гость. В этой демонстрации я буду придерживаться заданной разработчиками терминологии.

О задаче

Стационарный жесткий диск гостевой машины по умолчанию тоже является виртуальным и располагается в файле на жестком диске хост-машины. Программа поддерживает различные форматы, и начинающие пользователи обычно создают диски формата VDI (VirtualBox Disk Image). У этого формата есть характерный недостаток, он предоставляет слишком низкую скорость записи на диск, и поэтому при установке на такой носитель операционной системы условный дистрохопер успеет заснуть три раза.

Программа поддерживает ещё и формат VMDK (Virtual Machine Disk). Файл формата VMDK может ссылаться на внешний накопитель. При этом скорость записи в виртуальной машине будет равна скорости записи подключенного физического накопителя, и в этом случае установка операционной системы на виртуальную машину будет осуществляться также быстро, как и на физический, железный компьютер. Единственным недостатком такой настройки можно считать невозможность запуска виртуальной машины, когда внешний диск не подключен к хост-машине.

Установленную на внешний диск операционную систему можно запускать не только в виртуальном компьютере, с внешнего диска можно загрузить и реальный компьютер. Это обстоятельство сильно порадует условного дистрохопера удобными вариантами замены текущей операционной системы на рабочем компьютере.

Сейчас я продемонстрирую процесс создания файла VMDK для внешнего USB-HDD на базе операционной системы Debian sid и VirtualBox-7.0.8.

Настройка окружения

Подключить внешний HDD к файлу VMDK в Debian могут только пользователи из системной группы disk. Проверить, является ли текущий пользователь сеанса участником этой системной группы можно следующей командой.

$ grep ^disk /etc/group
disk:x:6:newbie

Имя текущего пользователя можно увидеть из выхлопа команды whoami.

$ whoami
newbie

Как видно из представленных листингов, имя пользователя текущего сеанса моей системы - newbie, и он входит в системную группу disk.

Добавить пользователя в системную группу можно при помощи программы usermod, запущенной с правами суперпользователя, sudo решает задачу. Команда выглядит следующим образом.

$ sudo usermod -a -G disk newbie

Чтобы изменения вступили в силу, после исполнения этой команды будет необходимо выйти из текущего сеанса и войти вновь. Окружение готово.

Подключаем внешний диск к хост-машине

В моём распоряжении есть старенький SATA-HDD, который я воткнул в купленный по случаю корпус для HDD, что даёт мне возможность подключить этот внешний накопитель в порт USB. Вставляю разъём.

Команда lsblk поможет определить идентификацию диска в системе, вот как выглядит её выхлоп на моей системе.

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 119,2G  0 disk 
└─sda1   8:1    0 119,2G  0 part /
sdb      8:16   0 232,9G  0 disk 
└─sdb1   8:17   0 232,9G  0 part 
sr0     11:0    1  1024M  0 rom

Из выхлопа видно, что в системе присутствует диск sdb, на нём уже есть раздел sdb1, по странному стечению обстоятельств размер этого диска совпадает с размером моего внешнего HDD, и таким образом я его идентифицирую в системе. Устройства в Debian хранятся в системном каталоге /dev, добавив к нему sdb через косую черту, я получу путь к устройству в моей операционной системе хост-машины, он мне понадобится при создании VMDK.

Создаём VMDK файл для внешнего HDD

Файлы виртуальных дисков удобно хранить в именной папке ~/VirtualBox VMs, этот каталог создаётся автоматически программой VirtualBox при создании первой виртуальной машины. В него я и положу связанный с внешним HDD файл VMDK. Выполняю в терминале следующую команду.

$ VBoxManage createmedium disk --filename VirtualBox\ VMs/tosh.vmdk --format VMDK --variant RawDisk --property RawDrive=/dev/sdb
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Носитель создан. UUID: 6d24782d-6d42-4ceb-8535-6e6f2fddb3b3

В этой команде я задал следующие ключи:

  • --filename VirtualBox\ VMs/tosh.vmdk - адрес и имя создаваемого файла.

  • --format VMDK - указывает формат создаваемого файла.

  • --variant RawDisk - указывает, что создаваемый файл связан с внешним физическим накопителем.

  • --property RawDrive=/dev/sdb - указывает идентификатор конкретного внешнего диска, с которым связан создаваемый файл.

Как видно из выхлопа исполненной команды, файл создан успешно, и его можно увидеть командой ls.

$ ls VirtualBox\ VMs/ | grep tosh.vmdk
tosh.vmdk

Подключаем внешний HDD к гостевой машине

Запускаю программу VirtualBox, в главном окне жму кнопку "Создать" и создаю виртуальную машину без жесткого диска с именем Desktop. Нахожу созданную машину в списке виртуальных машин, выделяю её левым кликом мыши и жму кнопку "Настроить". В окне настроек перехожу на вкладку "Носители" и добавляю созданный только что файл VMDK на контроллер SATA.

wCFO4PXboO.png

wxrKQaHx5z.png

aPPIIAfYAS.png

На внешнем HDD нет операционной системы, поэтому я подключаю к виртуальной машине ещё и iso-образ с живой системой, чтобы загрузить гостя и посмотреть на полученный результат. Жму кнопку "OK", и таким образом покидаю окно настроек виртуальной машины.

Проверяем

Включаю виртуальную машину, и дожидаюсь загрузки операционной системы с живого iso-образа. В загруженной живой операционной системе запускаю терминал и вновь смотрю на выхлоп lsblk.

9PrdGlykGM.png

Как видно на снимке экрана у гостевой машины есть диск sda - это и есть внешний HDD подключенный к USB-разъёму хост-машины, догадываюсь по размеру накопителя. Диск доступен в гостевой машине, и на него можно устанавливать любую операционную систему. А когда операционная система будет установлена и настроена, с внешнего HDD можно загрузить реальный компьютер. Очень удобно.., дистрохоперам понравится.

Выводы и умозаключения

  1. Очень удобно иметь в своём хозяйстве внешний HDD, на него можно установить операционную систему и использовать её на чужом компьютере вдали от дома, если хозяин компьютера позволит загрузить машину с вашего накопителя.

  2. VirtualBox довольно удобная программа для отработки и тестирования разных системных действий без риска что-нибудь нечаянной сломать.

  3. Довольно несложно подключить в гостевой машине VirtualBox внешний USB-накопитель, если это HDD, быстрота установки и замены операционной системы на виртуальной машине очень порадует пытливого пользователя.

Метки:  debian, virtualbox, guest, host, usb, hdd, lsblk