Подключаем внешний HDD к виртуальной машине VirtualBox
prolinux
Опубликован: | 2023-06-22T05:33:50.342288Z |
Отредактирован: | 2023-06-22T05:33:50.342288Z |
Статус: | публичный |
Привет, Интернет... У меня есть очередной лайфхак, делюсь опытом. В этом обзоре я расскажу, как подключить внешний 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.
На внешнем HDD нет операционной системы, поэтому я подключаю к виртуальной машине ещё и iso-образ с живой системой, чтобы загрузить гостя и посмотреть на полученный результат. Жму кнопку "OK", и таким образом покидаю окно настроек виртуальной машины.
Проверяем
Включаю виртуальную машину, и дожидаюсь загрузки операционной системы с живого iso-образа. В загруженной живой операционной системе запускаю терминал и вновь смотрю на выхлоп lsblk.
Как видно на снимке экрана у гостевой машины есть диск sda
- это и есть внешний HDD подключенный к USB-разъёму хост-машины, догадываюсь по размеру накопителя. Диск доступен в гостевой машине, и на него можно устанавливать любую операционную систему. А когда операционная система будет установлена и настроена, с внешнего HDD можно загрузить реальный компьютер. Очень удобно.., дистрохоперам понравится.
Выводы и умозаключения
-
Очень удобно иметь в своём хозяйстве внешний HDD, на него можно установить операционную систему и использовать её на чужом компьютере вдали от дома, если хозяин компьютера позволит загрузить машину с вашего накопителя.
-
VirtualBox довольно удобная программа для отработки и тестирования разных системных действий без риска что-нибудь нечаянной сломать.
-
Довольно несложно подключить в гостевой машине VirtualBox внешний USB-накопитель, если это HDD, быстрота установки и замены операционной системы на виртуальной машине очень порадует пытливого пользователя.