Вопрос или проблема
Я пытаюсь создать VMDK моего раздела Windows (Win 10 x64 Pro – insider preview) на диске /dev/sda, где мой раздел Windows – это /dev/sda1.
Virtual Box имеет опцию создания vmdk из раздела с помощью -partitions
.
Из страницы документации, найденной здесь:
Чтобы создать специальный образ для поддержки необработанных разделов (который будет содержать небольшое количество данных, как уже упоминалось), на хосте Linux используйте команду
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
-rawdisk /dev/sda -partitions 1,5
Как видите, команда идентична той, что для доступа к “полным жестким дискам”, за исключением дополнительного параметра -partitions. Этот пример создаст образ /path/to/file.vmdk (который, опять же, должен быть абсолютным), и разделы 1 и 5 /dev/sda будут доступны для гостя.
Моя попытка:
Обратите внимание: чтобы разрешить создание и редактирование дисков для каждого пользователя, я использовал
sudo usermod -a -G disk cx
где мой пользователь – это cx
Начнем:
Итак, применяя вышеуказанные команды:
VBoxManage internalcommands createrawvmdk -filename win_hdd_raw.vmdk -rawdisk /dev/sda -partitions 1
выход:
Файл VMDK доступа к необработанному диску хоста win_hdd_raw.vmdk успешно создан.
При выполнении команды createrawvmdk
создано 2 файла:
# ls -la win_hdd_raw*
-rw------- 1 cx cx 161280 Nov 23 00:37 win_hdd_raw-pt.vmdk
-rw------- 1 cx cx 929 Nov 23 00:37 win_hdd_raw.vmdk
Загружая в VBox, используя файл win_hdd_raw.vmdk
, я вижу:
Затем, запуская его, оставляя все настройки по умолчанию, я получаю следующую ошибку:
Эта ошибка была диагностирована кем-то из раздела комментариев к другому вопросу, который я разместил.
В разделе комментариев: @Seth выяснил, что весь жесткий диск используется, таким образом, VBox пытался загрузить grub (мой загрузчик), это вызывало ошибку, о которой я указал выше.
Информация:
VBoxManage internalcommands listpartitions -rawdisk /dev/sda
Разделы VBox:
Номер Тип Начало CHS Конец CHS Размер (МиБ) Начало (Сект)
1 0x07 0 /32 /33 1023/254/63 235520 2048
2 0x83 1023/254/63 1023/254/63 1024 482347008
5 0x83 1023/254/63 1023/254/63 173595 484446208
6 0x83 1023/254/63 1023/254/63 32580 839970816
7 0x83 1023/254/63 1023/254/63 14760 906696704
8 0x83 1023/254/63 1023/254/63 15360 936927232
4 0x82 1023/254/63 1023/254/63 4096 968384512
выход fdisk
fdisk -l
Устройство Загрузка Начало Конец Секторы Размер Id Тип
/dev/sda1 * 2048 482347007 482344960 230G 7 HPFS/NTFS/exFAT
/dev/sda2 482347008 484444159 2097152 1G 83 Linux
/dev/sda3 484444160 968384511 483940352 230.8G 5 Расширенный
/dev/sda4 968384512 976773119 8388608 4G 82 Linux swap / Solaris
/dev/sda5 484446208 839968767 355522560 169.5G 83 Linux
/dev/sda6 839970816 906694655 66723840 31.8G 83 Linux
/dev/sda7 906696704 936925183 30228480 14.4G 83 Linux
/dev/sda8 936927232 968384511 31457280 15G 83 Linux
Из вышеуказанной информации можно увидеть, что раздел “1” относится к разделу размером 230 Гб типа NTFS, который является моим разделом Windows.
Я не вижу, где и если я совершил ошибку,
Есть ли какие-либо предложения?
Обновление после ответа @alinourzad
Включить EFI (Специальные ОС) – включено
Запуская виртуальную машину, получаю:
Что является той же/похожие проблемой, что и в вопросе, связанном с постом, на который комментировал @Seth.
Я бы склонен полностью отказаться от флага -partitions
и передать -rawdisk /dev/sda**1**
и посмотреть, что произойдет.
Решением могло бы быть dd if=/dev/sda1 of=~/Desktop/win_nt.img
, а затем использовать ваш инструмент на выбор для конвертации .img в .cow или .vmdk.
Ответ или решение
Создание VMDK для раздела Windows в VirtualBox
Создание виртуального диска VMDK для конкретного раздела, а не всего жесткого диска, в VirtualBox может вызвать некоторые сложности, особенно если вы работаете с Linux как с хост-системой. Рассмотрим подробно вашу ситуацию и предложим решения.
Описание проблемы
Вы пытались создать файл VMDK для раздела Windows (Windows 10 x64 Pro) на жестком диске /dev/sda
, обозначенном как /dev/sda1
. Вы использовали команду:
VBoxManage internalcommands createrawvmdk -filename /path/to/win_hdd_raw.vmdk -rawdisk /dev/sda -partitions 1
Согласно документации, использование параметра -partitions
должно позволить доступ только к выбранным разделам, однако, вы столкнулись с ошибками, связанными с загрузчиком и попытками VirtualBox запустить grub, что указывало на то, что он пытается получить доступ ко всем данным на диске.
Анализ и решение
-
Проверка прав доступа:
Вы правильно добавили пользователя в группуdisk
, что дает ему необходимые права. Убедитесь, что вы перезагрузили систему или заново вошли в систему, чтобы изменения вступили в силу. -
Использование правильного синтаксиса:
Параметр-partitions
должен быть использован правильно. В вашем случае вы указали только «1», что соответствует/dev/sda1
. Проверьте, что действительно используется правильный номер и что он соответствует вашему Windows-разделу. -
Возможные конфликты с загрузчиком:
Как было замечено, проблема может быть вызвана наличием загрузчика на основном диске. Возможные действия для избежания конфликта:- Попробуйте отключить Secure Boot в настройках BIOS/UEFI.
- Убедитесь, что в настройках VirtualBox включен EFI, так как это может помочь обойти проблемы с загрузкой.
-
Попробуйте альтернативный метод:
Если указанный способ не сработает, попробуйте создать образ раздела с помощью командыdd
:dd if=/dev/sda1 of=~/Desktop/win_nt.img
После этого можете использовать
qemu-img
или другие инструменты для конвертации образа
в нужный формат (например, .vmdk):qemu-img convert -f raw ~/Desktop/win_nt.img -O vmdk ~/Desktop/win_nt.vmdk
-
Использование альтернативного метода с параметрами:
Возможно, стоит попробовать полную команду, без использования-partitions
, указав только-rawdisk
на непосредственно разделе:VBoxManage internalcommands createrawvmdk -filename /path/to/win_hdd_raw.vmdk -rawdisk /dev/sda1
Заключение
Создание VMDK для отдельного раздела Windows в VirtualBox может быть непростой задачей из-за конфликта с загрузчиком и проблем права доступа. Проверка прав доступа, использование правильных параметров, отключение Secure Boot и альтернативные методы создания образов могут помочь решить эту проблему. Если у вас останутся дополнительные вопросы или будут возникать сложности, обязательно обращайтесь за помощью сообщества или опытных пользователей для получения более детального руководства.