UEFI ve eski BIOS için hibrit bir Linux USB Stick mümkün müdür?


14

benim fikrim Lubuntu ile eski bir BIOS Dizüstü Bilgisayar ve daha yeni bir UEFI Sistemlerinde önyükleme yapabilen bir USB-Boot-Stick oluşturmak.

Stick eski bir önyükleme aygıtı olarak ayarlandığında bu oldukça kolay olurdu, ancak UEFI özellikli bir cihaz olmasını istiyorum.

  1. Bu mantıklı geliyor mu ?! Yoksa UEFI kavramını korkunç bir şekilde yanlış mı anladım?
  2. Gerekirse iki farklı Linux yüklemesi olabilir (biri UEFI için, biri eski için ama ikisi de aynı sürücüde)
  3. Eski Bios'ta bir GPT Cihazı önyükleyin - işe yarayacak mı?

Açıkça göremiyorum, ayrı bir eski Linux önyükleme çubuğuna sahip olmak daha iyi bir fikir olabilir, ancak sınırları keşfetmeyi merak ediyorum :)

Peki, eski biyografilerle çalışabilecek hibrit bir linux-uefi-boot-usb-stick fikrim mümkün mü?


(3) grub ile linux için mümkün görünüyor http://www.rodsbooks.com/gdisk/booting.html

Ayrıca, bir Swap, Fat32 ve iki Ext4 bölümünün yanı sıra, bu çubuk üzerinde hazır bir EF00 Bölümüm var.


(1) de mümkün görünüyor http://www.rodsbooks.com/bios2uefi/

Ancak bu talimatlar 2012'den beri, biraz zaman geçti - daha kolay çalışan bir örneği olan var mı?


Bu konunun diğer araştırmacıları için:

EFI olmayan anakarttaki GPT diskinden Windows 7 önyüklemesi GPT'de BIOS kullanarak Windows 7/8 önyüklemenin herhangi bir yolu var mı?

http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


GÜNCELLEME:

REFInd ile güvenli Önyükleme kurulumunu içeren UEFI parçasını oluşturmayı başardım.

Verilen tavsiyenin ardından, şimdi bir BIOS Sisteminde en azından bir şey yapıyor gibi görünen sürücüme ddkopyalama gptmbr.binyaptım: "Bu önyüklenebilir bir disk değil"

Ancak, tavsiyelere uydum ve pmbrdisk ve gpt legacy bootbayrağı için bayrağı ayarladım - hala bu hatayı alıyorum, herhangi bir fikir?

ESP bölümüm diskteki ikinci bölümdür ve efi dosyalarıyla kurulur.

Kurulum:

  • 64 GB Alan
  • GPT Bölümlenebilir
  • Diskte pmbr bayrağı ayarlandı
  • 1.Bölüm 16MiB'den başlıyor ve yaklaşık 45GB, veri için bir fat32 birincil
  • 2.Bölüm 45GB civarında başlar ve çalışan bir rEFInd kurulumuna sahip EFI Sistemi (fat32)
  • 3. - 5.Bölüm benim çalışma Lubuntu 14.04.1 ev (ext4), takas ve kök (ext4)

Kullanma ddben kopyaladığınız gptmbr.binilk 440bytes benim derlenmiş 6.02 SYSLINUX.

Ayrıştırılmış 3.2 altında bölüm 2'nin bir bootve legacy_bootbayrağı olduğunu görebiliyorum.

Önyükleme sırasında önyüklenebilir disk bulunamadı - 2. bölüm yerine 5. bölümümü ayarlarsam Eksik İşletim Sistemine sahiplegacy_boot olurum

Yaşıyor!

(Eski Sorumun silinmesi gibi https://askubuntu.com/q/516730/319747 )


Benim tahminim, bazı *.c32ve diğer dosyaları çalışmam için EFI (nerede ?!) veya kök bölümümde ( ?!) Bir syslinux klasör eighter'a kopyalamam /boot/syslinuxgerekiyor - doğru mu? Hangi dosyalar gerekli?

Ayrıca sanırım bu syslinucx.cfgdosyaya da ihtiyacım olacak - değil mi?


Amacım kök ext4 bölümünde lubuntu sisteminin en azından doğrudan bir önyükleme olacaktır.

Güncelleme:

Neden olduğu hakkında hiçbir fikrim yok, ancak çalıştım - manuel kurulumla değil.

  • pmbrbayrak kötüydü ve UEFI olarak sopa önyükleme benim UEFI sistemi yasak
  • legacy_bootbayrak benim 5 bölüm (linux kök) için gerekliydi
  • Kullanmak zorundaydım extlinux --install /path/to/root/parition
  • syslinux.cfgKök bölümümün önyüklemesi altında syslinux klasöründe bir tane oluşturmak zorunda kaldım

Tüm bunları ikinci bir çubukta yaptım, sonra sadece syslinux klasörünü kopyalamaya çalıştım, ancak hiç şansım yoktu - extlinux --installzorunlu gibi görünüyor.

Tam olarak ne yaptığını bilen extlinux --installvar mı? Manuel olarak yapılabilir mi yoksa 6.02 gibi daha yeni bir sürümü sisteminize kurmadan nasıl kurabilirsiniz?

Stick, BIOS, UEFI ve UEFI SecureBoot üzerinde belirtilen bölümlerle çalıştım, cehennemde bir sürü öğrendim, çok şey öğrendim, neredeyse 2 TB'ı ayrıldı, dikkatli ve iyi şanslar.


bağlantınız koptu .. hikayenizi başka bir yerde görüyor musunuz? Ben de aynısını yapmak istiyorum. Teşekkürler.
pvinis

1
bu silinmiş var olarak @pvinis bilgi için teşekkürler, ben, burada Ask Ubuntu gelen soru / birleştirme sonucunu ettik
Jook

Yanıtlar:


11

Bu mümkündür ve hem harici USB çubuklarla hem de dahili sürücülerle çok sık yapılır.

Bölüm tablosu türleri ile ilgili:

  • BIOS normalde disk bölümleme tablosuna ihtiyaç duymaz . Sadece MBR'nizin ilk 440 baytı olan bootstrap kod kısmı ile ilgilenir . (İstisnalar olmasına rağmen. Bazı BIOS uygulamaları, normal bölümleme türlerinden birine sahip bir MBR bulamazlarsa aslında bozulur. Umarım bunlar nadirdir.)

    GPT bölümleme tablosu bir MBR'nin fiziksel olarak yerini almaz - MBR sektör 0'da iken her zaman sektör 1'de başlar - bu nedenle bir diskin her ikisine birden sahip olması mümkündür. Aslında, çoğu GPT diskleri do kapaklar Tüm diski, yanlışlıkla veri yok etmesini eski MBR okunur bölünmesi araçları önlemek için sadece tek bir bölüm içeren bir "koruyucu MBR" var.

    Böylece, örneğin, Syslinux önyükleme kesimini MBR'nize kurabilirsiniz ve önyükleme yapılır. (  syslinux-install_updateKomut dosyası bunu sizin için yapar, ancak gptmbr.binsyslinux paketinizde elle yapmak için arayabilirsiniz .)

    MBR bölümlerinde "etkin" bayrağı gibi, Syslinux GPT bölümlerinde "eski BIOS önyüklenebilir" bayrağı arayacaktır (bit 2 - UEFI spec 2.4 bölüm 5.3.3 tablo 20); yukarıda belirtilen komut dosyası sgdisk(gptfdisk'ten) yüklüyse bu bayrağı otomatik olarak ayarlar .

    GRUB da kullanılabilir, ancak aynı zamanda biraz daha can sıkıcıdır. GRUB 2, geleneksel olarak kullanılmayan sektörler 1-62'de kendi parçalarını "gömmek" istediği için, aynı yerde depolanan bir GPT'nin üzerine yazacaktır. Bu nedenle, 2-4 MB'lik özel bir bölüm oluşturmanız ve BIOS'u önyüklenebilir olarak işaretlemeniz gerekebilir, böylece bu grub-install, gömülü bir yer bulur.

  • Öte yandan, UEFI şartname yapar MBR bölüm türleri için destek (bölüm 12.3.1) gerektirmez ve MBR bölüm türünü atamak 0xEFEFI sistem bölümü (bölüm 5.2.2) için.

    Bu nedenle, herhangi bir nedenle diskinizin GPT ile çalışmasını sağlayamıyorsanız, MBR'de bir EFI sistem bölümü oluşturabilirsiniz ve doğru dosya sistemine ve tüm gerekli dosyalara sahip olduğu sürece kullanılır (bölüm 12.3.1.3):

    Çıkarılabilir medya aygıtları için yalnızca bir UEFI uyumlu sistem bölümü bulunmalı ve bu bölüm kök dizinde UEFI tanımlı bir dizin içermelidir. Dizin adlandırılır EFI. Tüm işletim sistemi yükleyicileri ve uygulamaları aşağıda EFIçağrılan bir alt dizinde saklanacaktır BOOT. BOOTDizindeki desteklenen her işlemci mimarisi için yalnızca bir yürütülebilir EFI görüntüsü olmalıdır . Çıkarılabilir medyanın EFI altında önyüklenebilir olması için, Bölüm 3.4.1.1'de belirtilen kurallara uygun olarak oluşturulması gerekir.

İşletim sistemleri ile ilgili olarak, Linux genellikle bugün BIOS'tan ve yarın UEFI'den başlatılıp başlatılmadığı konusunda en ufak bir şeyi umursamıyor. 3.17 UEFI desteğinde bir hata bulmaya çalışırken, dizüstü bilgisayarımı UEFI modundan "BIOS uyumluluğu" moduna ve bu hafta belki yüz kez yeniden başlatmam gerekiyordu ...


"BIOS'tan UEFI'ye Dönüştürme" makalesinin oldukça farklı bir şey olduğunu unutmayın. Bu yüklemek açıklamaktadır UEFI kendini - "DÜET" adlı bir UEFI uygulaması - BIOS sadece sistemden başlatılması gerekir. Bir işletim sistemini doğrudan BIOS'tan önyükleme ile ilgisi yoktur.


+1 - syslinux_install Buna bakacağım, onay, güvence ve yeni girdi için teşekkür ederim
Jook

Tavsiyenizi takip ettim, ancak kurulumda sıkışıp kaldım, benim iyi mbrgörünüyor ama bölümümü bulamıyor EFI System. 45GB civarında başlayan diskteki ikinci bölümün bir sorun olması mı? Buradaki alreadz çalışan EFI kurulumuna ek olarak EFI üzerinde spektral bir bölüm kurmam gerekiyor mu?
Jook

Çalıştı :) çok, teşekkürler! syslinux oldukça güzel ve beni başka bir zaman daha inceleyeceğim gPxe ve plopkexec'e yönlendirdi. Başka araştırmacılar için: askubuntu.com/q/516730/319747
Jook

2

Evet, bu mümkün.

Temel fikir, GPT'nizi şu şekilde bölümlendirmek :

  1. BIOS önyükleme bölümü (GPT türü 1686148-6449-6E6F-744E-656564454649) - 1 MiB, dosya sistemi yok
  2. EFI sistem bölümü (GPT türü C12A7328-F81F-11D2-BA4B-00A0C93EC93B) - 200 MiB, VFAT dosya sistemi
  3. Linux önyükleme bölümü (GPT türü 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - 1 GiB, ext4 dosya sistemi
  4. Linux kök / ev dosya sistemi (GPT türü 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - kalan alan, XFS veya Btrfs dosya sistemi

Bu bölümleme, Eski sistemlerde önyükleme yapmamıza izin verir, çünkü GPT ile bir MBR (geriye dönük uyumluluk nedenleriyle) için hala yer vardır ve Grub2 , BIOS önyükleme bölümüne bazı orta aşama yüklemek için yeterli alana sahiptir. Eski BIOS'lar bölümleme şemasını umursamıyor ve Grub2 / Linux Çekirdeği Eski sistemlerde GPT'yi anlamada hiçbir sorun yaşamıyor.

On UEFI sistemleri , UEFI firmware MBR göz ardı eder ve giriş noktası olarak EFI sistem bölümü kullanır.

Örneğin, Fedora ile temel olarak aşağıdakileri yapmanız gerekir:

Linux Önyükleme dosya sisteminin altına /bootve EFI sistem bölümü dosya sisteminin altına monte edildiğinden emin olun /boot/efi.

(Yeniden) Hem eski hem de UEFI önyükleme yükleyicilerini yükleyin:

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

(Yeniden-) Eski ve UEFI önyüklemesi için grub yapılandırma dosyalarını oluşturun:

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

Sistem mirası veya birinci ya da ikinci dosyayı ya düzeltmek ve değiştirmek zorunda UEFI modunda önyükleme olsun bağlı (linux|initrd)16olan (linux|initrd)efiveya tersi.

Grub'u MBR'ye yükleyin:

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

Voila.


Not: Bu hibrit yaklaşımı uygulayan ve böylece otomatik olarak böyle bir USB bellek oluşturmak için kullanılabilecek bir sağlama komut dosyası yazdım .
maxschlepzig
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.