Windows 10 в KVM: змініть завантажувальний диск на Virtio


23

Я встановив віртуальну машину Windows 10 за допомогою диска IDE і тепер хотів би змінити диск на драйвер Virtio.

Для інших версій Windows підхід у цьому питанні здається достатнім - Як перенести ID ID VM до virtio VM?

Однак із Windows 10 це призводить до INACCESSIBLE_BOOT_DEVICEпроблеми.

Мені відомо, що кращим підходом є використання пристрою Virtio з самого початку та встановлення відповідного драйвера virtio при появі запиту. На жаль, у мене виникли окремі проблеми із зміною компакт-диска в KVM (я також не міг змусити 2 пристрої CDROM працювати).

Чи є спосіб виправити цю проблему без перевстановлення?

Аналогічний випуск тут - https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090


+1. Я не міг сам розібратися в цьому питанні. Після різних методів вирішення попередніх версій Windows, я спробував встановити драйвер VirtIO на Windows VM після підключення блокового пристрою VirtIO, але у мене все-таки з'явився INACCESSIBLE_BOOT_DEVICEсиній екран. Я закінчив перевстановлення на завантажувальний пристрій VirtIO.
Делтік

Оскільки я лінивий, я опублікую це як коментар для перевірки: Додайте додатковий диск із контролером virtio. Встановіть драйвер, коли Windows попросить вас. Не потрібно створювати розділи чи щось. Потім перемкніть завантажувальний диск на virtio. Оскільки зараз встановлений екземпляр драйвера контролера (дуже важливо), він повинен працювати.
Даніель Б

@DanielB: Саме це я і зробив. Схоже, ваша пропозиція працює для попередніх версій Windows, але не для Windows 10.
Deltik,

Гм, гаразд. Я гадаю, тоді у мене є єдиний найкращий спосіб не вирішити вашу проблему (lol): просто змініть ISO Windows і включіть драйвери. Майте на увазі, що він повинен залишатися завантажувальним. Таким чином, ви можете (сподіваємось) встановити прямо на virtio.
Даніель Б

@DanielB: драйвер VirtIO можна завантажити в процесі встановлення окремим диском драйвера. Якщо з драйвером VirtIO встановлено Windows 10, проблем немає. Просто існуючі в Інтернеті інструкції щодо переключення Windows з IDE на VirtIO не працюють для віртуальних машин Windows 10 KVM.
Делтік

Відповіді:


16

Усі відповіді правильні, але вам може знадобитися виконати кілька додаткових кроків після встановлення драйверів virtio. Ось наступні кроки:

  1. Відкрийте командний рядок підвищеного рівня та встановіть VM для завантаження в безпечний режим, ввівши

    bcdedit / set {current} безпечне завантаження мінімальне

  2. вимкнути VM та змінити тип завантажувального пристрою на virtio.

  3. завантажують ВМ. Він перейде в безпечний режим.

    Примітка. У безпечному режимі будуть включені та завантажені всі драйвери запуску, включаючи драйвер virtio. Оскільки для його використання зараз встановлений мініпорт, ядро ​​тепер зробить його частиною драйверів, які потрібно завантажити, а не відключити його знову.

  4. у завантаженому VM скиньте параметри bcdedit, щоб машина могла завантажуватися в звичайний режим, ввівши (знову в підвищеному командному рядку):

    bcdedit / deletevalue {current} безпечне завантаження

  5. Зроблено.


1
Фантастичний! Це був для мене недолік. Я використовував bcdedit /set safeboot minimal, опускаючи це, {current}бо не був впевнений, що треба туди зайти.
Чарльз Грін

2
@CharlesGreen {current}буквально, ви вводите як є.
Марк.2377,

Проблема, якщо ви маєте логін для введення PIN-коду, оскільки для входу з паролем може знадобитися доступ до мережі. Як результат, я перевстановлюю Windows. answer.microsoft.com/en-us/windows/forum/windows_10-security/…
Ендрю Олні

Я спробував за допомогою мережі bcdedit / set {current} Safeboot на першому кроці, щоб уникнути проблеми з входом, я також спершу створив локального користувача, щоб бути додатково безпечним, і я не думаю, що ця проблема стосується мене все одно, але оскільки машина підключено до домену, і я не маю контролю над усім, що хотів, щоб переконатися, що я не зробив нічого поганого. І мережевий параметр принаймні не зіпсував процес.
HackerBaloo

як у вас 1), тобто піднесений підказ?
Фредерік Норд

12

Наводиться досить проста відповідь - і вона може працювати у багатьох випадках разом із підказками на інші варіанти. Якщо (як і я) ви не в змозі перейти на IDE і змушені використовувати VirtIO, то можливий наступний альтернативний підхід:

  1. Додайте обидва вікна 10 DVD / CD ISO та віртуальний драйвер ISO до VM.
  2. Завантажте Windows 10 DVD / CD та введіть командний рядок із режиму ремонту.
  3. Завантажте драйвер через CLI, наприклад drvload e:\viostor\w10\amd64\viostor.inf
    • У моєму випадку e: було призначено встановлення virtio ISO.
    • Після завантаження драйвера f: було де встановлено вікна.
  4. За допомогою команди DISM введіть драйвер контролера пам’яті
    • Напр dism /image:f:\ /add-driver /driver:e:\viostor\w10\amd64\viostor.inf
    • Як зазначено вище, змініть призначення літер диска відповідно до вашого власного оточення.

Уникайте необхідності поспішати із створенням спеціальних завантажувальних компакт-дисків / зображень Windows та "виправляти" фактичні вікна, встановлюючи зображення на льоту.

Зауважте, що для цього нішевого випадку я б рекомендував уникати ремонту запуску (який не вдався для мене). Здавалося, не знаю, як включити vistor.inf після завантаження, і якщо ви спробуєте це, будьте обережні, щоб уникнути готовності DVD-дисків Windows 10 відновити чи перевстановити все ...

Заслуга підходу DISM : Використання dism для додавання драйверів


1
Альтернатива 4: Клацніть правою кнопкою миші файл inf -> Встановити.
rbs

Крім того, слідкуйте за тим, щоб оновлення Windows порушило це. Відповідно до публікації reddit, "оновлення стирало мої драйвери VirtIO": reddit.com/r/VFIO/comments/6b06y5/… . Це може статися в кутовому випадку, коли ви запустите інсталяцію Windows як подвійний завантажувач, так і VM та застосуйте оновлення, коли на рідному апаратному забезпеченні ...
JPvRiel

1
Це, плюс відповідь нижче. Мені довелося виконати завантаження в безпечному режимі (bcdedit / set {current} safeboot minimum), а потім видалити завантаження Safe Mode (bcdedit / deletevalue {current} safeboot), а потім перезапустити. Після цього він працював з Windows Server 2016 Essentials.
G Trawo

10

Кроки, які слід дотримуватися в цілому:

  1. Встановіть драйвери VirtIO у віртуальному комп'ютері
  2. Встановіть системний диск VM для використання VirtIO
  3. Якщо VM не завантажується, виконайте Ремонт при запуску або навіть відновлення встановлення

Процедура детально це:

  1. Поверніть завантажувальний диск до IDE.
  2. Переконайтесь, що Windows VM відключена.
  3. Завантажте драйвери VirtIO ISO тут .
  4. Встановіть його на привід CD для VM.
  5. Додайте запам'ятовуючий пристрій типу VirtIO. Розподіл розміру не має значення, оскільки ви використовуєте його для встановлення драйверів.
  6. Запустіть Windows VM. Він спробує встановити драйвери. Якщо цього не відбувається, відкрийте диспетчер пристроїв, і ви побачите пристрій SCSI, перелічений із значком оклику біля нього. Ви можете вибрати оновити драйвер і вказати на відповідний каталог, встановлений ISO. Після встановлення не перезавантажуйте, а вимикайте машину.
  7. У налаштуваннях virt-менеджера для Windows змініть тип пам’яті з IDE на VirtIO.
  8. Ви можете видалити створений раніше пристрій зберігання. Він більше не потрібен.
  9. Запустіть Windows, він повинен завантажитися та встановити драйвери SCSI. Вам потрібно буде перезавантажити після цього.
  10. Якщо VM не завантажується, але драйвери встановлені, ви можете спробувати зробити:

    1. Ремонт запуску, який може виправити певні системні проблеми, які можуть перешкоджати запуску Windows.
    2. Останнє рішення: відновлення встановлення під час завантаження з Windows 10 ISO. Це дозволить зберегти всі програми та налаштування користувачів, просто оновити Windows та завантажити. Використовуйте нещодавню Windows 10 ISO.

Якщо, на жаль, потрібен останній крок, ще одна складна проблема, яка може виникнути, полягає в тому, якщо завантажувальний компакт-диск Windows не може зрозуміти диск VirtIO, оскільки Microsoft не включила ці драйвери до нього. У цьому випадку потрібно створити власний завантажувальний CD / USB, який містить ці драйвери, але переконайтесь, що ви починаєте з Windows ISO, який знаходиться на тому ж рівні, що і інсталяція, отримавши найновіший (зараз 1511).

Ось кілька навчальних посібників про те, як просканувати драйвери в Windows:


Ця відповідь спрацювала (і працює в інших версіях в Windows), за винятком того, що на кроці 9, коли ви намагаєтеся завантажити, виникає помилка INACCESSIBLE_BOOT_DEVICE (саме тут я був, коли публікував питання). Ремонт запуску (10.1) не працює, а крок 10.2 насправді неможливий. Установку для ремонту можна здійснити лише спочатку завантаживши систему, без компакт-диска, а потім запустивши setup.exeна компакт-диск. Саме так описується посилання у запитанні, і наскільки мені відомо, іншого способу це зробити не існує.
Graeme

Яку саме інформацію я маю надати саме? Я вам неодноразово говорив, що варіанту немає. Проблема тут полягає в тому, що ви постійно наполягаєте на тому, щоб це було. Якщо це так, що в різних статтях, знайдених в Інтернеті, є «десятки інших», посилання на них. Пов’яжіть одну статтю, яка описує, як завантажуватись з компакт-диска та починати установку на ремонт - без попереднього завантаження встановленої системи та запуску setup.exeна компакт-диску. Пов’яжіть одну статтю з надійного джерела, яка доводить, що ви не брешите прямо, і я попрошу вибачення і дам вам дорогоцінну нагоду.
Graeme

Дивіться, наприклад, це відео про те, як виконати відновлення запуску Windows 10 з інсталяційного носія. Якщо ні, спробуйте скористатися командним рядком . Як я вже говорив вище, можливо, вам знадобиться пробуксований ISO - я не маю уявлення, чи встановлення WIn10 містить драйвери VirtIO.
harrymc

Або ви можете адаптувати метод drvload для додавання драйверів VirtIO до завантаженого образу встановлення Windows PE.
harrymc

2
Хоча вищезазначена відповідь звучить добре і виглядає просто, на жаль, для мого VM, що використовує pc-q35-2.5машинну емуляцію / тип, додати IDE-контролер неможливо.
JPvRiel

4

відповідь від harrymc для мене добре працює.

наступні кроки:

  1. Встановіть драйвер virtio у windows
  2. Додайте додатковий "фіктивний" диск для віріо
  3. Перемкніть завантажувальний диск на virtio
  4. Перезавантажте
  5. Видаліть додатковий "фіктивний" диск для віріо
  6. ...

Будь ласка, не додайте у відповідь "дякую" Вкладіть деякий час у сайт, і ви отримаєте достатньо привілеїв, щоб одержати відповіді, які вам подобаються, - це спосіб Super User сказати спасибі.
DavidPostill

1
Це недооцінена відповідь - у Proxmox Windows 10 виникли проблеми з ініціалізацією, навіть після встановлення всіх драйверів. Мені довелося створити невеликий диск на 1 Гб як блок пристрою VirtIO, запустити VM, переконатися, що він відображається правильно, а потім вимкнути + змінити основний диск на VirtIO. Windows 10 неправильно виявив драйвер жорсткого диска, тому мені довелося перемогти його, щоб завантажити його під час завантаження перед перемиканням.
Альберт Н

1

На жаль, можливо, щоб драйвер був ідеально встановлений і ПОСЛІДНО отримати "недоступний пристрій завантаження". Причина трохи шокуюча (я вважаю): установка Win 10 "запам'ятовує" драйвери, які були потрібні при її першому встановленні, і за замовчуванням НЕ буде завантажувати інші драйвери пам’яті під час завантаження. Робиться це, схоже, для "піратства" - це ускладнює запуск "тієї ж" установки на іншому обладнанні. У цій публікації з форумів gentoo є чудова документація щодо цієї "функції" . Суть така:

Драйвери, націлені на заборонену для завантаження при завантаженні, можна визначити наступним чином: У ключі реєстру Комп'ютер \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services є один підрозділ для кожного відомого для встановлення драйвера. Ім'я цього підрозділу - це лише ім'я драйвера. У кожному підрозділі драйвера буде підрозділ "STARTOVERRIDE", якщо цього драйвера не можна буде завантажувати під час завантаження. Зокрема, в підрозділі STARTOVERRIDE є параметр, назва якого "0". Якщо значення цього параметра "3", воно не завантажується під час завантаження. Якщо замість цього значення встановити значення 0, це буде "перекривати" поведінку.

Я сам заходжу в Комп'ютер \ HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services і шукаю "STARTOVERRIDE". Кожен раз, коли я знаходжу його, якщо під ним є ім'я під назвою "0" зі значенням "3", я змінюю "0". Це здається непосильним, потрібно лише змінити привід, який потрібно завантажити. У моєму випадку їх декілька, і я ніколи не пам'ятаю, тому я просто роблю "F3-пошук" у цьому розділі "Послуги".

І ще одна остання порада, яка не потрібна для поточного, підписаного, зберігання virtio, але може бути комусь, хто читає це, якщо вони хочуть скористатися більш експериментальним драйвером, який ще не підписаний: Я виявив, що НАДІЙ після виконання вищевказаного трюк, Я ТАКОЖ потрібно було завантажитися на екран розширених параметрів і вибрати F7 ("вимкнути перевірку підпису драйвера"). Прикро, недостатньо було встановити прапор bcd, щоб вимкнути перевірку драйверів, оскільки драйвер повинен завантажуватись до того, як машина прочитає BCD і виявить, що не потрібно перевіряти підпис.

Загалом, не найяскравіша година Microsoft. Ви дійсно повинні ненавидіти своїх користувачів, якщо ви хочете дати легітимним користувачам створений штучний Blue-Screen, ніж дозволити людям (скажімо) замінити SATA диск на NVMe-диск і мати його "просто працювати".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.