Mencoba menjalankan Hyper-v 2016 dari USB

10

Sudah mencoba untuk menguji Hyper-v 2016 sore ini tetapi saya tidak bisa mendapatkan R630 saya untuk boot dari USB yang saya konfigurasikan menggunakan petunjuk berikut https://technet.microsoft.com/library/ee731893(ws.10).aspx

Saya menggunakan panduan yang sama persis pada Hyper-v 2012 R2 tanpa masalah.

Adakah yang beruntung dengan ini?

Tuan Raspberry
sumber
1
Windows Server 2016 bukan Windows Server 2008 R2, Windows Server 2012 atau Windows Server 2012 R2. Apa yang membuat Anda berpikir ini harus / akan berhasil? Saya tidak dapat menemukan dokumentasi MS untuk menyarankan bahwa itu mungkin.
joeqwerty
3
karena microsoft memang memiliki keterlambatan memperbarui dokumentasi berpikir tentang semua masalah dengan sistem itu sendiri sulit untuk menjaga semua dokumen online up to date itu akan ada hanya butuh waktu ....... tidak ada alasan mengapa itu tidak akan berfungsi seperti itu ......
Michal

Jawaban:

8

Saya menemukan informasi tentang menggunakan Windows Server 2016 TP3 ke kartu SD.

https://www.danielstechblog.info/how-to-deploy-windows-server-2016-tp3-onto-an-sd-card/

Topik ini menjelaskan penggunaan Windows Server pada kartu SD, tapi itu TP3. Saya kira Anda dapat melakukan tindakan yang sama dengan versi rilis.

Anda juga dapat mempertimbangkan SATA DOM.

https://www.supermicro.com/products/nfo/SATADOM.cfm

Ini adalah pilihan ukuran murah dan kecil untuk Anda. Anda dapat menggunakan OS apa pun di dalamnya. Jadi itu juga pilihan.

Stuka
sumber
3

Saya mengalami masalah ini baru-baru ini, dan setelah beberapa hari melakukan debug, saya menemukan masalah dan memperbaikinya.

Drumroll, silakan:

Setelah menginstal Hyper-V Server 2016, gunakan alat offline (seperti, katakanlah, Windows PE) untuk memasang sarang SISTEM dari instalasi baru, dan mengubah DWORD ControlSet001 \ Control \ BootDriverFlags dari 0x04 ke 0x1c. (Anda mungkin harus mengubah versi ControlSet002 juga untuk ukuran yang baik, dan Anda dapat memanggang perubahan ke install.wim Anda untuk menghindari harus melakukan ini setelah setiap pemasangan.)

(Karena tentu saja dibutuhkan satu minggu dan debugger kernel untuk mengetahui bahwa itu hanya membutuhkan perubahan dua-bit dalam bitfield yang tidak jelas dan tidak terdokumentasi secara menyeluruh.)

Inilah sebabnya.

Pemuat boot Windows menggunakan rutin UEFI bawaan untuk menemukan instalasi Windows, dan memuat driver kernel dan boot ke dalam RAM sebelum memanggil ExitBootServices. Setelah melakukan itu dan memberikan kontrol ke kernel, kernel tidak dapat mengakses volume boot kecuali driver yang sesuai sudah ada dalam RAM.

Inilah kickernya: winload.efi tidak cukup rumit untuk menyebutkan perangkat keras dan menentukan driver apa yang sebenarnya diperlukan. Dalam versi yang lebih lama itu hanya akan memuat hal-hal yang diatur ke Boot Start. Namun, memuat driver asing menimbulkan penalti kinerja, dan ketika Windows mulai mendukung lebih banyak kelas perangkat boot, diperlukan sistem yang lebih baik.

Masukkan nilai BootFlags pada driver individual dan nilai BootDriverFlags di seluruh sistem. Jika (BootFlags & BootDriverFlags)! = 0, driver akan dimuat meskipun tidak diatur ke Boot Start. Setiap bit dalam nilai seharusnya sesuai dengan jenis perangkat keras yang berbeda, sehingga nilai BootDriverFlags menentukan jenis perangkat keras mana yang dapat di-boot dari.

Ketika mekanisme ini diperkenalkan, Bit 3 ditujukan untuk perangkat boot USB, tetapi boot dari perangkat USB tidak didukung di Windows standar. Versi Hyper-V Server 2008 R2 menambahkan dukungan khusus untuk boot dari USB dengan menetapkan nilai ini ke 0x04, dan nilai ini telah ditetapkan di setiap versi Server Hyper-V yang dirilis sejak itu.

Perbaikan umum yang dibuat sejak saat itu untuk mendukung fitur Windows To Go berarti Anda tidak harus menggunakan trik boot-to-VHD yang direkomendasikan untuk versi Hyper-V Server sebelumnya yang diinstal pada perangkat USB. Namun, mereka juga mengubah arti dari nilai BootDriverFlags. Perangkat USB 3 telah diberikan bit yang terpisah, dan kartu SD secara khusus telah diberikan bit yang lain.

Dalam versi 2016, ini berarti bahwa nilai 0x04 sekarang memungkinkan booting hanya dari disk USB2 yang bukan kartu SD. Semua versi Server 2016 kecuali Server Hyper-V dikirimkan dengan nilai default 0x1c, yang memungkinkan boot USB2, USB3, dan kartu SD; Namun, nilai 0x04 masih ditetapkan di Hyper-V Server, karena ditambahkan sebagai pengesampingan dalam proses pembuatan gambar untuk versi 2008R2. Alih-alih menambahkan fitur, nilai ini sekarang menghapusnya.

Ini menjelaskan mengapa beberapa solusi sebelumnya untuk masalah ini merekomendasikan penonaktifan USB3 dan boot dari USB stick daripada kartu SD: ini akan memaksa kategori perangkat boot menjadi sesuatu yang masih tercakup oleh definisi "USB" yang sekarang lebih terbatas. "bit dalam BootDriverFlags.

Reid Rankin
sumber
Daftar nilai bendera dan artinya dapat ditemukan di sini: docs.microsoft.com/en-us/windows-hardware/drivers/install/…
RJ Cuthbertson
@RJCuthbertson Sangat bagus!
Reid Rankin
1

Saya mengikuti arahan surat itu (dengan satu-satunya pengecualian adalah huruf drive) untuk Hyper-V Server 2016 dan berfungsi dengan baik untuk Server Dell PowerEdge T710 yang lama. Ini berjalan pada port USB internal sekarang. Namun unit Dell dapat memberi tahu sistem bahwa USB internal akan muncul sebagai hard disk. Itu mungkin perbedaannya. Tapi saya bisa bilang ya Anda bisa memperkirakan instruksi untuk 2008 R2 dan menerapkannya ke Server 2016 HyperV saja.

DOS_Vader
sumber