Saya telah mencoba menemukan cara yang lebih mudah untuk menginstal Windows dan Linux dual booting pada laptop saya, belum tentu dalam urutan itu. Apa yang umumnya harus kita lakukan adalah menginstal Windows terlebih dahulu, kemudian menginstal linux dan mengizinkan GRUB untuk menangani Windows.
Jadi apa yang saya coba capai adalah menemukan cara untuk memotong proses instalasi sial (windows) dan hanya menggunakan gambar untuk langsung menyalin ke drive saya. Ini juga memungkinkan saya mempertahankan boot manager (GRUB) saya. (bukan berarti saya tidak bisa mengembalikannya setelah itu, tetapi itu adalah kebijakan Microsoft untuk memonopoli, dalam hal ini menolak keberadaan boot manager lain dalam sistem).
Saya pertama kali mendapatkan salinan resmi Windows 8.1, kemudian mulai menginstalnya di mesin virtual menggunakan VirtualBox. Kemudian, saya membuat partisi NTFS pada hard drive yang dipartisi GPT dan menyalin konten partisi Windows dari gambar .vdi ke partisi yang baru dibuat.
Tentu saja, itu belum berfungsi. Saya tidak tahu cara mengganti bootmgr. Memberikan
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
karena tidak dapat menemukan file itu dari partisi lain yang digunakan untuk mem-boot, pemulihan sistem, dll.
Sekarang, saya telah membaca bahwa bootmgr akhirnya mengeksekusi winload.exe untuk mem-boot Windows. Saya tidak tahu apa yang harus saya lakukan selanjutnya.
Saya rasa itu harus bekerja secara teoritis karena saya memiliki semua file yang diperlukan untuk menjalankan Windows. Saya juga berpikir bahwa saya seharusnya tidak menjadi satu-satunya yang memikirkan hal ini, dan karenanya saya mungkin kehilangan sesuatu yang sangat mendasar di sini. Mungkin sudah dilakukan?
Saya tidak tahu bagaimana cara booting bekerja. Apa yang berhasil saya pahami adalah bahwa ketika Anda dual-boot Windows dan Linux, Anda rantai windows bootloader ke linux. Jadi apa yang saya coba capai adalah entah bagaimana menyingkirkan bootloader Windows.
EDIT
Saya telah melihat file biner bootmgr
dan \Boot\BCD
. bootmgr
membaca file BCD dan daftar opsi Anda, di antaranya Anda dapat memilih untuk boot ke.
Jadi informasi seperti mengeksekusi winload.exe
berada di file BCD. Sekarang, saya pikir bootmgr
itu sendiri dijalankan oleh syslinux menggunakan chain.c32
modul. Apa yang saya coba lakukan adalah entah bagaimana mengeksekusi bootloader windows, yaitu winload.exe
langsung dari syslinux (jika mungkin), atau memodifikasi bootmgr
sehingga dijalankan winload.exe
sendiri (yang jalurnya akan langsung di bootmgr
executable) tanpa mencari BCD atau apa pun.
Hibernasi (yang membutuhkan prosedur berbeda) tidak menjadi masalah bagi saya pada langkah ini.
Edit pertanyaan Anda untuk memberi tahu kami jenis firmware, dan (jika EFI) apakah Anda telah mengaktifkan Modul Dukungan Kompatibilitas di pengaturan firmware
Firmware saya adalah EFI (dengan CSM diaktifkan), dan saya biasanya boot ke Arch Linux menggunakan GRUB. Saya telah menemukan bahwa bootmgr
dijalankan System32\winload.exe
pada sistem warisan, dan System32\winload.efi
pada EFI.
Saya punya 0.0
ide tentang apa yang harus dilakukan dari sini. Selama 10 hari terakhir, saya telah mencoba untuk membuat perubahan pada BCD dan saya pikir saya akan mencapai kesuksesan. Tapi itu tidak relevan, karena yang ingin saya lakukan adalah mem-bypass Windows Boot Manager.
Jika Anda memiliki ide apakah ada cara untuk mengeksekusi winload.efi
dari shell EFI (hanya tebakan), atau modifikasi lain untuk GRUB sehingga akan mem-boot Windows dalam mode EFI tanpa chainloader.
Setiap saran dipersilakan.
Tambahan
Posting forum berikut mungkin memberikan beberapa wawasan bermanfaat:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1.
Grub4dos sekarang dapat mem-chainload sebuah bootloader (seperti NTLDR atau BOOTMGR) karena ia dapat bertindak sebagai pengganti kode yang terdapat dalam bootsector "normal" (yaitu sekitar 300 byte kode mesin).
Kode ini cukup menetapkan beberapa parameter dan kemudian memanggil loader.
Bahkan itu tidak mudah sama sekali untuk dipahami dan direplikasi dengan kode yang berbeda.
Pemuat sistem NT seperti BOOTMGR memiliki lebih atau kurang dalam satu. Exe sistem operasi "mode nyata" (tidak sepenuhnya berbeda dengan DOS) dan fasilitas / alat untuk menguraikan teks biasa dan kumpulan Registry, itu bukan sesuatu yang dapat diperbaiki. ditulis dari awal dengan mudah.
Orang-orang baik @ReactOS sedang mengerjakan penulisan FREELDR (yang bertujuan untuk menjadi pengganti NTLDR yang jauh lebih sederhana) sejak TAHUN (dan percayalah ada beberapa programmer ReactOS yang benar-benar bagus dan bagus kawan).
Ini tampaknya (tetapi tidak didokumentasikan dengan jelas) bahwa mereka berhasil untuk boot eksperimental Server 2003 dengan NTLDR.
2.
Dengan diperkenalkannya dukungan untuk (U) EFI, BootMgr membantu untuk mengabstraksi perbedaan antara BIOS dan (U) EFI. Sebagai contoh, berikut adalah dua urutan:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad mengharapkan lingkungan tertentu (termasuk API) untuk hadir. BootMgr menangani ini, sehingga [hampir] program WinLoad yang sama akan bekerja di lingkungan mana pun.
Faktanya, (U) EFI mendefinisikan metode untuk menyimpan dan mengambil parameter boot, jadi BCD BootMgr mencakup tujuan yang sama, terlepas dari BIOS / (U) EFI.
Tetapi di luar perbedaan BIOS dan (U) EFI, BootMgr memungkinkan Anda membuat "pilihan boot," sedangkan WinLoad mem-boot sistem operasi tertentu yang diketahui cara mem-boot.
Tergantung pada seberapa banyak lingkungan yang diharapkan WinLoad untuk hadir, mungkin untuk memanggil WinLoad secara langsung. Wimboot Michael Brown memanggil BootMgr PE [1] secara langsung, sehingga ia bisa memanggil WinLoad secara langsung, kecuali bahwa WinLoad mungkin menginginkan lebih dari satu lingkungan. Anda bisa mencobanya!
[1] Jangan bingung dengan BootMgr yang dapat digunakan oleh GRUB4DOS dan Syslinux chain.c32. BootMgr itu termasuk sebuah rintisan yang tahu bagaimana memohon BootMgr PE yang tertanam.
setup
utilitas firmware .