Warning: Это очень чувствительная операция. Вы можете очень легко повредить систему и потерять данные. То, что сработало для меня, может не сработать для тебя. Было бы разумно сделать все необходимые резервные копии, прежде чем продолжить.
эти инструкции предназначены для Linux Mint 17.1, но шаги должны быть аналогичны для других дистрибутивов Linux, особенно на основе Ubuntu. Я рекомендую использовать KVM вместо VirtualBox или VMware Player или других продуктов VMware. Для получения инструкций о том, как заставить это работать в чем-то кроме KVM, см. ссылку.
почему KVM? Из исследования, которое я сделал, в настоящее время в этой категории есть три основных игрока. KVM, VirutalBox и несколько других продукт VMware. Продукты VMware не являются открытым исходным кодом, и ни один из них не является бесплатным для коммерческого использования. VirtualBox является свободным и открытым исходным кодом, но если вам нужно добавить поддержку USB 2.0, вам нужно установить пакет расширения, которые вы не должны использовать для бизнеса/коммерческого использования. Несмотря на то, что USB 3.0 поддерживается без этого пакета расширения, поддержка USB в VirtualBox более проблематична, чем в продуктах VMware или KVM. KVM является открытым исходным кодом и свободно использовать для бизнес/коммерческое использование. KVM позволяет избежать накладных расходов, используя модуль ядра, добавленный в Linux, тем самым улучшая производительность и совместимость: http://blog.scalecomputing.com/kvm-or-vmware-why-kvm-is-right-for-the-times-part-1-of-2/
в следующих инструкциях я объясняю, как использовать virt-manager, который будет использовать KVM под капотом, поэтому вы можете использовать GUI вместо того, чтобы настраивать все в KVM через терминал.
установить как Linux и Windows 7 на том же жестком диске на отдельных разделах, если они еще не установлены. Если вы устанавливаете их на отдельные диски, обратитесь к инструкциям по ссылке. Настройте их так, чтобы между ними можно было выполнять двойную загрузку. Получите ваши разделы настроить, как вы хотите, прежде чем продолжить. Примечание: некоторые установки Windows создать отдельный раздел для гибернации. Если вы хотите удалить этот раздел сейчас самое время это сделать. Вам придется искать инструкции для этого, но я знаю, что вы можно сделать это изнутри окна. Если вы не сделаете это правильно/полностью, раздел может воссоздать себя. Поэтому, если вы решите удалить этот раздел, перезагрузите компьютер и загрузитесь в Windows, чтобы увидеть, если он воссоздает раздела.
загрузка в Linux.
выясните путь к жесткому диску, который содержит как Linux, так и Windows. Обычно это /dev/sda
на Linux Mint 17.1 вы можете запустить диски из главного меню, чтобы увидеть путь к жестким дискам. Выберите жесткий диск из списка дисков. Теперь информация о вашем жестком диске займет остальную часть окна. В верхней части этой информации он должен отображать размер вашего жесткого диска жирным шрифтом с нужным вам путем в небольшом тексте под ним.
Примечание: отныне я буду использовать /dev/sda
для ссылки на путь к жесткому диску, содержащему разделы для Windows 7 и Linux. Вам нужно заменить это на правильный путь.
Run sudo fdisk -l /dev/sda
получить некоторую необходимую информацию о разделах на вашем жестком диске с Виндовс 7. Скорее всего, вы увидите два раздела NTFS, используемые Windows 7. Первый довольно маленький. Он содержит загрузчик и систему восстановления. Другой раздел NTFS должен быть намного больше, так как он содержит фактическую установку Windows 7. Как разделы NTFS будут необходимы для ВМ.
цель: теперь ваш цель-создать виртуальный жесткий диск. Это позволит вам настроить MBR, чтобы быть и оставаться правильным, независимо от того, загружаете ли вы Windows 7 с виртуальной машины или напрямую. Это избавит вас от необходимости запускать утилиту восстановления при каждом переключении между загрузкой в Windows 7 напрямую и с виртуальной машины. Я использую device-mapper для создания линейно сопоставленного виртуального жесткого диска, сопоставленного с устройством loop back и двумя разделами Windows 7. Веб-сайт, который я получил большинство из этих шагов от вас использовать RAID, тем не менее, у меня были проблемы с получением, что работать правильно. С RAID виртуальный диск был слишком мал из-за округления размера блока. https://unix.stackexchange.com/questions/217078/raid-mdadm-virtual-disk-too-small настройка линейного отображения device-mapper кажется более подходящей, и это позволяет избежать проблемы округления размера блока. У меня был успех с device-mapper.
Проверьте вывод fdisk на предыдущем шаге. Определите, сколько байт занимает один сектор занимать. Если ваши участки 512 байта как мои, то это сделает вещи более легким.
Проверьте вывод fdisk еще раз. Определите, сколько секторов не используется до начала первого раздела. В моем случае первый раздел начинается с сектора 2048, что означает, что первые 2048 секторов не используются ни одним разделом (0-2047). Содержит загрузчик GRUB.
создайте образ байтов из предыдущего шага, используя следующая команда. Вам нужно будет заменить 2048 на правильное количество секторов. Если ваши секторы не 512 байт, вам также необходимо указать параметр bs=bytes_per_sector:
dd if=/dev/zero of=boot.mbr count=2048
теперь у вас должен быть файл образа с именем boot.mbr в текущем каталоге.
Проверьте вывод fdisk еще раз. Определите путь к разделам Windows 7. Для меня они являются первыми двумя перечисленными разделами, и оба они используют NTFS. Мои два пути являются /dev/sda1
и /dev/sda2
Примечание: отныне, я буду использовать /dev/sda1
и /dev/sda2
для ссылки на разделы Windows 7. Вам нужно будет изменить их на правильный путь в вашей системе.
создайте устройство обратной петли из файла изображения:
sudo losetup /dev/loop0 boot.mbr
это позволяет сопоставить устройство loop0 с виртуальным диском.
создайте файл, который будет определять что сопоставляется с виртуальным диском. Этот файл будет использоваться device-mapper. Я кладу в ~/ВМ/virtual_windows_disk_def.
внутри ~ / vm / virtual_windows_disk_def создайте строку для каждого отображения. Каждая строка должна иметь вид "logical_start_sector num_sectors linear destination_device 0". линейный просто означает, что мы делаем линейную карту. destination_device должен быть путем к устройству. 0 означает, что сопоставление начнется в первом секторе целевого устройства. Первая строка должна отображать загрузку.mbr к началу виртуального диска. Вам понадобится дополнительная строка для каждого раздела Windows 7. Вот содержимое моего файла:
0 2048 linear / dev / loop0 0
2048 3072000 linear / dev / sda1 0
3074048 447886719 linear / dev / sda2 0
это, как я получил правильное количество секторов для каждой строки:
blockdev --getsize не / dev / loop0
blockdev --getsize не на /dev/sda1, поскольку
blockdev --getsize/dev / sda2
проверьте, присутствует ли /dev/mapper/control. Если нет, попробуйте загрузить модуль ядра dm_mod:
modprobe dm_mod
sudo dmsetup create virtual_windows_disk ~/vm/virtual_windows_disk_def
убедитесь, что /dev/mapper/virtual_windows_disk имеет правильный размер.
запустить fdisk в интерактивном режиме для установки двух секций на /Дев/маппер/virtual_windows_disk диск полностью и точно соответствовать вашей секции два окна на вашем устройстве /dev/диск ПДД. Для завершения этого процесса можно использовать экранную справку и инструкции. Если вы не можете настроить разделы идеально, quit вместо записи / сохранения этих разделов. Насколько я знаю, это то, что нужно для каждого раздела: начальный сектор, конечный сектор, независимо от того, загрузочный он или нет, и файл тип системы. Замените 512 байтами на сектор для диска /dev/sda (это запустит fdisk в интерактивном режиме):
sudo fdisk -b 512 /dev/mapper/virtual_windows_disk
sudo chown your_username:group /dev/mapper/virtual_windows_disk
- в главном меню запустите Диспетчер виртуальных машин (это virt-manager).
- внутри virt-manager выберите Файл - >Добавить соединение.
- убедитесь, что гипервизор установлен в QEMU / KVM.
- убедитесь, что флажок для подключения к удаленному хосту непроверенный.
- убедитесь, что установлен флажок Автосоединение.
- Нажмите кнопку "Connect", чтобы создать соединение.
- щелкните правой кнопкой мыши на соединении (localhost (QEMU)) и выберите Создать.
- введите имя.
- для "выберите способ установки операционной системы "выберите" импортировать существующий образ диска".
- Нажмите кнопку "Вперед".
- в разделе "укажите существующий путь к хранилищу" нажмите кнопку Обзор и выберите /dev / md-0 (в моей системе это было автоматически настроено как псевдоним для /dev / mapper / virtual_windows_disk)
- продолжайте идти вперед до тех пор, пока ВМ. Он должен указывать на проблему, которую необходимо устранить. Windows не может загрузиться из-за этой проблемы, но, по крайней мере, если вы получаете эти результаты, вы находитесь на правильном пути.
- заставляют ВМ закрыли.
- подключите DVD/образ для установки/восстановления Windows к виртуальной машине. На моем компьютере уже установлена Windows, но Toshiba предоставила способ создания и восстановления DVD-дисков. Для меня мне нужно использовать диск 4, так как это диск с средой восстановления Windows. Я смог создать ISO этого диска изнутри Linux. Я предпочитаю просто прикрепить ISO к виртуальной машине в качестве компакт-диска, а не помещать диск в дисковод, но в любом случае работает.
- в области сведений о виртуальной машине выберите "Параметры загрузки". Убедитесь, что установлен флажок "Включить меню загрузки". Убедитесь, что жесткий диск и CDROM проверены с указанием будут параметры загрузки. Переместите жесткий диск в верхнюю часть с помощью кнопок со стрелками на компакт-диске чуть ниже. Нажмите кнопку "Применить", чтобы сохранить изменения. Теперь, когда виртуальная машина загружается, она должна подождать некоторое время, чтобы дать вам изменение, чтобы нажать F12, чтобы выбрать устройство для загрузки.
- запустите виртуальную машину и нажмите F12 для доступа к меню загрузки.
- загрузка с диска DVD / CDROM. Это должно начать ваш диск установки/восстановления Windows.
- инструкции от другой веб-сайт говорит, чтобы нажать shift + F10 для доступа к командной строке, но это ничего не делает для меня. Мне пришлось выбрать Параметры восстановления системы (вместо вариантов восстановления Toshiba). Следующий.
- в моей системе автоматически запускается диагностика и компьютер предлагает исправить найденную проблему. Не дайте ему сделать ремонт, выберите другой вариант.
- убедитесь, что "использовать средства восстановления..."выбирается вместо" Восстановить компьютер с помощью образа системы...". Вы должны увидеть Windows 7 в списке операционных систем. Убедитесь, что он выбран, и нажмите "Далее". Щелкните ссылку "Просмотреть дополнительные параметры"..."
- выберите Открыть командную строку.
введите в командной строке следующую команду:
bootrec /FixMbr
теперь ваша виртуальная машина должна быть загрузочной, но пока этого не делайте.
определите, какая буква диска была назначена для установки Windows, введя следующие команды в строке:
dir C:
dir D:
Один из них должен указывать, что буква диска не пуста и содержит ваши файлы. Это правильная буква диска, необходимая для следующего шага. Для меня это был drive C.
теперь необходимо найти подпись диска в реестре. Введите эти команды в приглашение:
reg load HKLM\Computer_System D:\Windows\system32\config\system
regedit
- перейдите к Раздел HKEY_LOCAL_MACHINE\Computer_System\раздел mounteddevices. Найдите запись \DosDevices\X:, где X совпадает с буквой диска, записанной два шага назад. На следующем шаге необходимо будет сослаться на данные из этой записи.
не закрывая редактор Regsitry, активируйте окно командной строки. Введите следующие команды:
diskpart
DISKPART> select disk 0
для следующего шага, вам нужно будет заменить буквы в конце с первыми четырьмя наборами символов в настоящее время отображается значение для этой записи в редакторе реестра. Однако вам нужно будет изменить порядок наборов. Например, если вы видите Ab cd ef gh, вам понадобится ghefcdab в конце команды:
DISKPART>uniqueid disk id=ghefcdab
- введите следующую команду:
exit
. Программа diskpart должна выйти, оставив вас внутри обычной командной строки.
- закрыть реестр редактор.
- введите это в командной строке:
reg unload HKLM\Computer_System
- закройте командную строку.
- если вы видите возможность перезагрузки или выключения, сделайте это сейчас. В противном случае поручите виртуальной машине завершить работу. Если это не сработает, принудительно завершите работу виртуальной машины. Если виртуальная машина выключена, оставьте это так. При перезапуске или завершите работу вручную, или если это невозможно, принудительно завершите работу.
- в ваши детали ВМ, проверьте "настройки" стрелка Показать дополнительные параметры. Нажмите кнопку" Копировать конфигурацию ЦП хоста". Нажмите кнопку "Применить". С тобой покончено! Следующие шаги помогут вам убедиться, что все работает правильно.
- запустите виртуальную машину. Он должен загрузиться в Windows, как правило, без каких-либо проблем или ремонта необходимо. Завершите работу виртуальной машины.
- не отрывайте глаз от экрана во время следующего шага. Выключите систему, выбрав спящий режим (в противном случае вам придется повторить некоторые шаги При загрузке Linux снова). Запустите компьютер и загрузите Windows напрямую. Смотрите на экран внимательно, чтобы увидеть, если какие-либо ремонтные работы происходят или необходимы. Если все правильно, он должен загрузиться в Windows без каких-либо ремонтных работ. В моей системе, когда все не настроено правильно, она автоматически восстанавливает окна, а затем загружается в Windows, как будто ничего плохого не произошло, поэтому вы должны внимательно следить за экраном. Если требуется ремонт, что-то пошло не так с изменением подписи, которое вы сделали в средство diskpart. Загрузитесь в Linux и повторите соответствующие шаги, будучи очень осторожным, чтобы получить правильную подпись.
шаги, связанные с созданием устройства обратной петли, и настройка виртуального диска /dev/dm-0 с помощью device-mapper должны будут повторяться каждый раз при загрузке Linux. Вы должны написать сценарий так, чтобы вы могли просто запустить скрипт перед запуском virt-manager. Сейчас этот сценарий выходит за рамки этого ответа, но я могу добавьте его позже после того, как я создам его для своей системы.