Мне не удалось получить усадьбу для загрузки, используя указания, приведенные здесь https://laravel.com/docs/5.7/homestead с использованием hyper-V. Первоначальная проблема заключалась в том, что машина не загружалась, а зависала бесконечно. После исправления этой проблемы я столкнулся с еще двумя, прежде чем смог выполнить команду vagrant up.
Я не уверен на 100%, что это правильное место, чтобы опубликовать это, но я потратил около 2 недель на попытки решить эту проблему, и, надеюсь, я смогу сэкономить немного времени, если у них возникнут аналогичные проблемы. Я мог использовать усадьбу с использованием виртуальной коробки, но было крайне неудобно не запускать Hyper-V на моем ПК, поэтому я удалил виртуальную коробку и попытался настроить усадьбу с помощью Hyper-V. Для меня виртуальная машина не загружалась бы вообще. Когда я смотрел на него в диспетчере Hyper-V, он просто зависал при запуске. Оказалось, что он настроен как блок поколения 1 с дисководом, подключенным как IDE. Для меня решением было создать виртуальную машину нового поколения 2 и подключить предоставленный диск с помощью SCSI. Затем я отключил безопасную загрузку и смог загрузить. Затем произошел сбой во время сценария инициализации, который пытался смонтировать стандартную папку vagrant. Я не мог понять, как изменить этот вызов, поэтому отключил его, поскольку для усадьбы он не нужен, насколько я могу судить. Тогда моя третья проблема не заключалась в том, чтобы смонтировать какой-либо пользовательский общий ресурс в файле homestead.yaml. Некоторый поиск в Google показал, что мне нужно было сделать этот вызов без дополнительных параметров, которые, по-видимому, сценарий не предоставил. Я изменил скрипт, и команда vagrant up была успешно выполнена. Ниже приведены подробности шагов, которые я предпринял. Если есть более простой способ запустить Vagrant Homestead с использованием Hyper-V, я был бы признателен за совет.
Проблема 1: не загружается
Описание: Похоже, проблема заключается в том, что при загрузке первого поколения используется контроллер IDE. Это не похоже на работу для моей установки Windows 10 Pro.
Разрешение:
1. Created a new VM using Generation 2 and attached the existing
"ubuntu-18.04-amd64.vhdx" to it using SCSI.
2. Boot this VM and then shutdown.
3. Turn off secure boot
4. Replace the Virtual machine files in [VagrantInstallFolder]\boxes\laravel-VAGRANTSLASH-homestead\6.4.0\hyperv with the new ones created above.
5. Delete newly created box from HyperV
Проблема 2: не будет монтировать общий ресурс Vagrant
Сообщение об ошибке:
==> Усадьба-7: Машина загружена и готова!
Для реализации синхронизированной папки NFS не было предоставлено действительных идентификаторов
чернослив. Это внутренняя ошибка с Vagrant, и проблема должна быть
поданный.
Описание: Сбой команды vagrant up при попытке смонтировать общий ресурс vagrant. Я не нашел способа переопределить параметры для этого вызова, поэтому он всегда пытался сделать вызов, используя nfs, который не поддерживается в Windows. Если есть возможность переопределить настройки этого вызова, то это будет предпочтительным способом. Но единственный способ заставить сценарий инициализации продолжить выполнение - отключить этот общий ресурс.
Разрешение:
1. Modify the scripts\homestead.rb file and add the code below to the
Hyper V config settings section "Configure A Few Hyper-V Settings". This
will disable the default file share but you can still add your own from
the homestead.yaml file after completion of issue 3.
#Disable the default Vagrant file share
config.vm.synced_folder ".", "/vagrant", disabled: true
Проблема 3: ошибка, связанная с определением пользователем общих файлов в файле homestead.yaml.
Сообщение об ошибке:
Не удалось смонтировать папки в гостевой системе Linux. Обычно это потому, что
файловая система "vboxsf" недоступна. Пожалуйста, убедитесь, что
гостевые дополнения правильно установлены в гостевой и
может работать правильно. Была предпринята команда:
крепление -t CIFS -o уегз = 3, мандатная = / и т.д. / smb_creds_vgt-96269f65d23acb279735d26264428995-66f0bd5cbca4d218f5f0b8a5f1712727, UID = 1000, GID = 1000, NOLOCK, UDP, noatime //192.168.1.107/vgt-96269f65d23acb279735d26264428995-66f0bd5cbca4d218f5f0b8a5f1712727 / дом / бродяга / код
Вывод ошибки из последней команды:
ошибка монтирования (22): неверный аргумент
См. Справочную страницу mount.cifs (8) (например, man mount.cifs)
Описание: Сбой команды vagrant up при попытке смонтировать определенные пользователем общие ресурсы в файле homestead.yaml. Кажется, что монтирование передает ненужные параметры команде монтирования. Нам нужно переопределить вызов mount в файле scripts \ homestead.rb, чтобы не использовать параметры.
Разрешение:
1. In the "Register All Of The Configured Shared Folders" section replace the line below.
Replace
config.vm.synced_folder folder['map'], folder['to'], type: folder['type'] ||= nil, **options
With
config.vm.synced_folder folder['map'], folder['to'], type: "smb"
2. Then run "vagrant up --provider hyperv"