Kısa süre önce GRUB ntldr
modülüne rastladım .
Görünüşe göre kullanılabilecek şeylerden biri, chainloader
aşağıdaki örnekte olduğu gibi Windows'un NT> = 6.0 sürümlerini önyüklemenin alternatifidir . (Windows bölümü için Birim Önyükleme Kaydı bozuksa çok kullanışlıdır.)
menuentry "Windows 7 (bootmgr on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
ntldr ($root)/bootmgr
}
Bu önyükleme yönergesinin nasıl kullanılabileceği hakkında daha fazla bilgiyi nereden edinebilirim? Ben baktığımda o listede görmedik HTML sürümü ait GNU GRUB kılavuzuna .
Ckhan adlı kullanıcının yanıtına cevap ver
Çok teşekkür ederim! GRUB ntldr
komutu / modülü hakkında daha fazla bilgi edinmek için kaynak kodunu kazmaya çalışmam gerektiğine karar verdim . Ama sen benden daha iyi bir iş çıkardın.
Kodu yazan kişinin hangi tasarım tartışmalarına sahip olabileceğini görmek için e-posta arşivlerine bakmak hiç aklıma gelmezdi. Bu yöntem, gelecekte çok yardımcı olabileceğine benziyor. Bahsettiğiniz için teşekkürler.
GRUB ntldr
desteği hakkındaki düşüncelerim
- Ayrımın ne anlama geldiğinden tam olarak emin olmasam da,
ntldr
bir komut değil bir modül. Veya isterseniz dinamik olarak yüklenmiş bir komut.
Senin ardından kaynak kodu bağlantısını ve çizgiler 152 (bakarakGRUB_MOD_INIT
) ve 159 (GRUB_MOD_FINI
) Eğer tahmin ediyorum ... unload modülü ... yüke kodunu görebilir ve.
GRUB, görünüşe göre " komut " olduğunu düşündüğünüz birçok işlevi modül olarak uygulamaktadır. Kullanımda fark ettiğim tek fark, bir modülü kullanmadan önce, komutla yüklendiğinden emin olması gerektiğidirinsmod ntldr
.
Kenara: GRUB'un neden desteklemediğini hep merak ettimreboot
. Komutun var olduğu ortaya çıkıyor, ancak bir modül.reboot
İade edilirseunknown command
,insmod reboot
GRUB'unreboot
komutu "hatırlamasına" izin verir .
Kenara: GRUB bir modülü ne zaman ve neden " boşaltabilir ", henüz bir fikrim yok. Belki de " çöp toplama " benzer bir şey sonucudur ?? Bir kez yüklendiğinde, bir sistem kapatıldıktan ve yeniden başlatıldıktan sonra bile modüllerin sürdüğünü fark ettim. Tabii ki, buna güvenemezsiniz , ancak pratikte bu genellikle işe yarıyor gibi görünüyor. - Onların dayalı olması ilginçtir
ntldr
üzerindechainloader
. Benchainloader.c
koda bakmadım . Muhtemelen Intel 16 bit gerçek modda yeniden yerleştirme yükü yapıyor mu?
Ben değilim uyguladıkları vermedi ziyade memnunntldr
bir seçenek olarakchainloader
. Vladimir'e katılıyorum. Kapakların altındaki benzerlikler ne olursa olsun, kullanım sözdizimi çok farklıdır. Mevcut yaklaşım daha az kludgy. - Bu komutu GRUB'a eklemek için gösterilen coşku eksikliğini görmek de ilginç. Görünüşe göre GRUB geliştiricileri, Windows Partition Boot Record'un (PBR) zarar görmesinin çok düşük olduğunu düşündüler . Ancak, yeterince sıradan bir kurulum sırasında nasıl yapılacağını öğrenebilirim.
Bir kullanıcının sisteminde Windows yüklü olduğunu varsayarak başlayın. Artık Windows ile birlikte Ubuntu (12.04 LTS) yüklüyorlar . Ubuntu kurulumu sırasında bir noktada GRUB'un nereye kurulacağını belirleyebilirler. Tahmin etmeye başlayamadığım nedenlerden bazıları, GRUB'u Windows'un kurulu olduğu bölüme kurmaya karar veriyor.
Yükleme tamamlanır ve Ubuntu'yu başarıyla başlatabilirler. Onlar Grub menüsünün girişi seçerek Windows'u başlatmaya çalıştığınızda Ancak, Windows gelmez değil başlatın. Bunun yerine Windows'u GRUB ile başlatmaya çalışmak GRUB menüsünü yeniden görüntüler mi?
Neden? Görünüşe göre, GRUB'u gerçekten Windows bölümüne yüklemeyi seçtiklerinde, Windows bölümünün PBR'si GRUB'un PBR'si ile aşırı yazıldı. Bu nedenlechainloader +1
bir Windows önyükleyiciyi zincirle yüklemez, bunun yerine GRUB'u yeniden yükler.
IMO, en güvenli , hızlı bu durumda önyükleme Windows bir kullanıcıya izin vermek için bir yol GRUB yeni kullanmaktırntldr
. Bunun geliştiricilerin ilgisini çekip çekmeyeceğini merak ediyorum. Bu senaryoyu beklemediklerini umuyorum.
Acaba Windows dışındaki bootloader'lar ntldr
ve bootmgr
GRUB ntldr
komutu yüklenebilir mi?