Dizüstü bilgisayarıma Windows ve Linux çift önyüklemeyi yüklemenin daha kolay bir yolunu bulmaya çalışıyorum, bu sırayla değil. Genel olarak yapmamız gereken şey önce Windows'u yüklemek, ardından linux'u yüklemek ve GRUB'un Windows'u işlemesine izin vermektir.
Bu yüzden elde etmeye çalıştığım şey o sinir bozucu kurulum işlemini (windows) atlatmanın ve doğrudan sürücüme doğrudan kopyalamak için bir görüntü kullanmanın bir yolunu bulmak. Bu aynı zamanda önyükleme yöneticimi (GRUB) korumamı da sağlar. (daha sonra geri yükleyemeyeceğimden değil, ancak tekelleştirmek Microsoft politikasıdır, bu durumda sistemdeki diğer önyükleme yöneticilerinin varlığını reddeder).
İlk olarak Windows 8.1'in yasal bir kopyasını aldım, sonra VirtualBox kullanarak sanal bir makineye kurmaya devam ettim. Sonra, GPT bölümlenmiş sabit sürücümde bir NTFS bölümü oluşturdum ve Windows bölümünün içeriğini .vdi görüntüsünden yeni oluşturulan bölüme kopyaladım.
Tabii ki, henüz çalışmıyor. Bootmgr'un nasıl değiştirileceğini bilmiyorum. O verir
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
çünkü önyükleme, sistem kurtarma, vb. için kullanılan diğer bölümdeki dosyayı bulamaz.
Şimdi, bootmgr sonunda Windows'u yüklemek için winload.exe'yi çalıştırdığını okudum. Bundan sonra ne yapacağım hakkında hiçbir fikrim yok.
Teorik olarak çalışması gerektiğini düşünüyorum çünkü Windows'u çalıştırmak için gereken tüm dosyalara sahibim. Ayrıca, bunu düşünen tek kişi olmamam gerektiğini düşünüyorum ve bu yüzden burada çok temel bir şeyi kaçırıyor olabilirim. Belki zaten yapılmıştır?
Önyüklemenin nasıl çalıştığı hakkında pek bir fikrim yok. Anlayabildiğim şey, Windows ve Linux'u çift önyüklediğinizde, windows önyükleyiciyi linux'lara zincirlemiş olmanızdır. Yani elde etmeye çalıştığım şey bir şekilde Windows bootloader'dan kurtulmak.
DÜZENLE
İkili dosyalara bakıyorum bootmgr
ve \Boot\BCD
. bootmgr
BCD dosyasını okur ve önyükleme yapabileceğiniz seçenekleri listeler.
Bu yüzden yürütme gibi bilgiler winload.exe
BCD dosyasında bulunur. Şimdi, modülün bootmgr
kendisi tarafından syslinux tarafından yürütüldüğünü düşünüyorum chain.c32
. Ne bir şekilde pencereler bootloader yürütmek yapmanız ie çalışıyorum winload.exe
(mümkünse) syslinux doğrudan veya değiştirmek bootmgr
çalıştırır, böylece winload.exe
(kimin yolu doğrudan olacaktır kendisini bootmgr
BCD veya başka bir şey bakmadan yürütülebilir).
Hazırda bekletme (farklı bir prosedür gerektirir) bu adımda beni ilgilendirmez.
Ürün yazılımı türünü ve (EFI ise) ürün yazılımı kurulumunda Uyumluluk Destek Modülünü etkinleştirip etkinleştirmediğinizi belirtmek için sorunuzu düzenleyin
Ürün yazılımım EFI (CSM etkinken) ve normalde GRUB kullanarak Arch Linux'a önyükleme yapıyorum. Bunun eski sistemlerde ve EFI'da bootmgr
yürütüldüğünü keşfettim .System32\winload.exe
System32\winload.efi
Ben 0.0
buradan ne yapılması fikri. Son 10 gündür BCD'de değişiklikler yapmaya çalışıyorum ve bence başarıya ulaşmak üzereyim. Ama bu alakasız, çünkü gerçekten yapmak istediğim şey Windows Önyükleme Yöneticisini tamamen atlamak.
winload.efi
EFI kabuğundan (sadece bir tahmin) veya GRUB'da başka bir modifikasyon yapmanın bir yolu olup olmadığı hakkında bir fikriniz varsa, Windows'u zincir yükleyici olmadan EFI modunda önyükleyecektir.
Herhangi bir tavsiye bekliyoruz.
ek
Aşağıdaki forum gönderileri bazı yararlı bilgiler sağlayabilir:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1.
Grub4dos şu anda bir önyükleyiciyi (NTLDR veya BOOTMGR gibi) zincir yükleyebilir, çünkü "normal" önyükleyicide bulunan kodun (yani 300 bayt makine kodu gibi bir şeyin) yerini alabilir.
Bu kod birkaç parametreyi ayarlar ve yükleyiciyi çağırır.
Bu bile farklı kodu anlamak ve çoğaltmak hiç de kolay değildi.
BOOTMGR gibi bir NT sistem yükleyicisi, tek bir .exe'de "gerçek mod" işletim sisteminde (tamamen DOS'un aksine değil) ve hem düz metin hem de Kayıt Defteri kovanlarını ayrıştırmak için tesisler / araçlarda az ya da çok vardır. kolayca sıfırdan yazılmış.
@ReactOS iyi adamları FREELDR (bu çok daha basit NTLDR'nin yerini almayı hedefliyor) yazmaya çalışıyor (ve inan bana ReactOS programcıları arasında gerçekten iyi ve iyi olanlar var).
Görünüyor onlar NTLDR ile deneysel bir Server 2003 önyükleme başardı (ama açıkça belgelenmiş değildir).
2.
(U) EFI desteği ile BootMgr, BIOS ve (U) EFI arasındaki farkın soyutlanmasına yardımcı olur. Örneğin, işte iki dizi:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad belirli bir ortamın (API dahil) bulunmasını bekler. BootMgr bununla ilgilenir, bu nedenle aynı WinLoad programı her iki ortamda da çalışır.
Aslında, (U) EFI önyükleme parametrelerini saklamak ve almak için bir yöntem tanımlar, bu nedenle BootMgr'un BCD'si BIOS / (U) EFI'dan bağımsız olarak aynı amacı kapsar.
Ancak BIOS ve (U) EFI farklılıklarının ötesinde, BootMgr bir "önyükleme seçimi" yapmanıza izin verirken, WinLoad nasıl önyükleneceğini bildiği belirli bir işletim sistemini önyükler.
WinLoad'ın mevcut olmasını beklediği ortamın miktarına bağlı olarak, WinLoad'ı doğrudan çağırmak mümkün olabilir. Michael Brown'ın wimboot'u doğrudan BootMgr PE'yi [1] çağırıyor, bu yüzden WinLoad'ı doğrudan daha fazla ortam istemesi dışında WinLoad'ı doğrudan çağırabilir. Deneyebilirsiniz!
[1] GRUB4DOS ve Syslinux 'chain.c32'nin çağırabileceği BootMgr ile karıştırılmamalıdır. Bu BootMgr, katıştırılmış BootMgr PE'yi nasıl çağıracağını bilen bir saplama içerir.