grub: ISO'dan önyükleme


41

GRUB'da bir ISO dosyasını nasıl başlatabilirim? ISO dosyası bir reiserfs bölümündedir ve GRUB bu dosyaya erişebilir (zaten test edilmiştir).


grubun hangi versiyonu?
quack quixote

1
Aynı soru burada da cevaplandı .
dma_k


Yanıtlar:


55

Bir ISO dosyasını önyüklemenin en büyük sorunu, önyükleme için tasarlanmış ISO'ların neredeyse her zaman bir CD'den önyüklenecek şekilde tasarlanmış olmasıdır . Marco'nun Grub 2 ile ilgili blogunda açıklandığı gibi (benimki vurgusu):

GRUB ISO9660 (”iso”) görüntüleri okuyabilir. Örneğin ilk birkaç sektörü yükleyebilir ve başlatabilir. Ancak çoğu insan, "o zaman ne?" Olduğunun farkında değil. Yüklenen işletim sistemi ne yapar? Büyük olasılıkla bulamayacağı ve başarısız olamayacağı bir CDROM arayacaktır.

Bu nedenle , rastgele bir ISO dosyasından önyüklemenin en basit yolu sanal bir CD olarak sanal bir makineye (VirtualBox, VMware veya Virtual PC) yüklemek ve orada önyüklemektir. Neredeyse her zaman çalışması gerekir, çünkü VM için bu bir ISO dosyası değil - gerçek CD donanımında gerçek bir CD.

Çıplak metal üzerindeki ISO dosyasından önyükleme yapmak daha zordur. Bunu nasıl yaptığınız Grub'un hangi versiyonunu kullandığınıza bağlıdır ve sonuçlar, kullandığınız ISO'ya ve önyükleme için nasıl yapılandırıldığına bağlı olarak değişebilir. Bu yüzden çoğu USB'den USB önyükleme aracı (Unetbootin, WinToFlash, vb.) Genellikle ISO içeriğini sürücüye çıkarır ;


Grub 1

... emin değil. Mümkünse, menü girişleri Grub4DOS'a çok benzeyecek, ancak "map - hook" komutunun bir Grub4DOS geliştirmesi olduğunu düşünüyorum . Artı tarafta, Grub, Grub4DOS'tan daha geniş bir dosya sistemi desteğine sahiptir.

Reiserfs'li Grubun (onaylanmamış) notu, "bölümünüzü çalışması notailiçin onu monte etmeniz gerektiğini" gösterir.

Memdisk bir seçenektir; aşağıya bakınız.


Grub4Dos

Grub4DOS , bazı ISO'larla çalışan deneysel bir “CD emülasyonu” sunmaktadır. Ne yazık ki, Grub4DOS sadece FAT32 / NTFS dosya sistemlerini okur. Grub4DOS'u indirin.

İşte bir örnek giriş ( kaynak ):

title fdfullcd.iso (0xFF)
  find --set-root /fdfullcd.iso
  map /fdfullcd.iso (0xFF)
  map --hook
  root (0xFF)
  kernel /isolinux/data/memdisk
  initrd /isolinux/data/fdboot.img

Güya Win7 ISO bu giriş ile başlatılabilir :

title Windows 7
  map (hd0,0)/win7.iso (hd32)
  map --hook
  chainloader (hd32)

Diğer ISO'lar Memdisk ile başlatılabilir :

title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
  kernel /memdisk iso
  initrd /hdt.iso

PenDriveLinux'taki MultiBootISOs.exe gibi bir menü yapılandırıcısını da kullanabilirsiniz . ISO'ları flash sürücüye yerleştirin ve önyükleyiciyi kurmak ve önyükleme menüsünü yapılandırmak için yardımcı programı çalıştırın.

İşte Grub4DOS kurulumu ile ilgili bir Hak5 bölümü .


Grub 2

İşte Grub2 girişlerinden birkaç örnek. chainloader şu anda bir ISO önyüklemesi için çalışmaz, bu nedenle bu girişlerin (1) ISO'yu "monte etmek" için geri döngü kullanması ve (2) ISO dosyasını belirten linux satırına iso-scan veya findiso gibi bir şey eklemesi gerekir .

Ne yazık ki, bunu yapmanın genel bir yolu yoktur. Her farklı önyükleme girişi, hedef ISO'nun içeriğine göre özelleştirilmelidir. Çoğu Linux LiveCD, ISOLINUX'u önyükleyici olarak kullanır; isolinux.cfg dosyasını bulun ve ne önyükleme yaptığını görmek için bu önyükleme girişini inceleyin.

Örnek girişler ( kaynak ):

menuentry "Ubuntu Live 9.10 32bit" {
 loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

menuentry "Grml small 2009.10" {
  loopback loop /boot/iso/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}

Linux olmayan bir LiveCD önyüklemeye çalışıyorsanız, şansınız tükenebilir. Yine, Memdisk yardımcı olabilir :

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}

@ albert: Grub2'yi flash sürücüde kullanıyorum ve aynı şeyler yüzünden hayal kırıklığına uğradım, bu yüzden bir araya getirmek zor değildi. Diğer sorunuza bakıyorum, ancak daha önce bir ISO'ya bir ISO'yu "yakmayı" hiç denemedim, bu yüzden ilginç olabilir.
quack quixote

Of VMware içinde önyükleme yapabilirim (ve ben de çoktan yaptım) ama bu bana çok yardımcı olmuyor çünkü Windows'tur ve diskime VMware aracılığıyla kurduğumda daha sonra açılmayacaktır (aptal Windows ...).
Albert

İlk önce hangi seçeneği denemeliyim, yani Grub1, Grub2 veya Grub4DOS? Sadece ne gerekiyorsa kurabilirim, bu gerçekten problem olmayacak.
Albert

@ albert: Önceki sorunuza değiniyor musunuz? En iyi seçeneğinizin çıkarma yöntemini kullanmak olduğuna inanıyorum; Windows yükleyici, donanımdan başlatılmadıklarında sorun yaşayan ISO'lardan biridir. memtest deneyebilirsiniz, ancak bu konuda fazla bir şey bilmiyorum. Muhtemelen bir flash sürücü almak ve kullanmak istersiniz; bkz. superuser.com/questions/66948/… veya superuser.com/questions/62193/install-win7-from-usb
quack quixote

1
@quackquixote, Kalın kelimelerinize göre "Yüklenen işletim sistemi ne yapar? Muhtemelen bulamayacağı ve başarısız olamayacağı bir CDROM arayacaktır" , İşletim Sisteminin neden bir CDROM araması gerekiyor? Zaten mükemmel bir iso dosyası ve işletim sistemini yüklemek için gereken her şey zaten iso dosyasının içinde, bu yüzden neden CDROM'ları aramayı atlayamıyor?
Pacerier

1

Bir dd dosyasına bir iso dosyası yazmak için dd'yi terminalden kullanabilirsiniz. Sadece dikkatli olun, yanlış dd kullanıyorsanız her şeyi silebilirsiniz. Şuna benzer bir şey olmalı: dd if = Desktop / LinuxCDFile.iso of = / Path / To / Partition


Ancak, Windows Yükleyici tarafından önyüklenebilir olması için bölümün Birincil olması gerekir.
Firelord

Bu sadece arada sırada çalışır, genellikle sonuç önyüklenebilir değildir.
David Tonhofer

1
@ Beşinci: Eh, Windows Yükleyici kullanmayın. Grub'u kullanın. Evet, gerçekten ihtiyacınız varsa, Windows'u da başlatıyor.
Evi1M4chine
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.