Ubuntu'yu UEFI ile harici bir sabit diske kurmak hala mümkün müdür?


Yanıtlar:


12

Aslında mümkün .

Devam etmeden önce, bu talimatlar boş EFI Sistem Bölümleri (ESP) içindir ve muhtemelen mevcut dosyaların üzerine yazacaktır veya beklendiği gibi çalışmayacaktır. En azından yedek al!

Farklı platformlar için gerekli bölümleri ekleme

Platformlar: Eski PC, UEFI tabanlı Windows bilgisayar, Apple bilgisayar

MBR ile mevcut bir yüklemeye ESP ekleme

Bu talimatları başka bir kurulumdan veya canlı medyadan izlemeniz gerekir.

  1. grub-efi-amd64-binPaketi kurun . Bu yalnızca gerekli kaynakları yükleyecektir. Mevcut MBR tarzı kurulumunuzu UEFI'ye geçirmeyecek ve işleri tersine çevirmeyecektir.

  2. ESP için yer açmak üzere GParted'te Ubuntu bölümünüzü daraltın . ESP'ler için önerilen boyutlar 100 MB ila 500 MB arasındadır, ancak bu talimatları uygulayarak oluşturulan dosyalar 2 ila 5 megabayttan fazla gerektirmez.

    Not: ESP diskte bulunan ve birkaç megabayt ederek Ubuntu bölümü küçülterek nerede önemli olmamalı sonunda hızlı ve güvenli olmalıdır. Başlangıçta küçülmek güvenli değildir . Ancak bir uyarı, ESP'nizin birincil bir bölüm olması ve genişletilmiş bir bölümün veya mantıksal bir hacmin parçası olmaması gerekir, 1'den 4'e kadar olan bölüm numaraları iyidir, yukarıdaki sayılar MBR bölüm tablolarında genişletilmiş bir bölümü gösterir.

    Dosya sistemi olarak FAT32'yi seçin ve önyükleme bayrağını ayarlayın.

  3. Yeni oluşturduğunuz ESP'yi ve daralttığınız kök dosya sistemini bağlayın:

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Not: Değiştir $esp_deviceve $root_devicebirlikte uygun cihazlar örneğin /dev/sdb2ve /dev/sdb1. Mountpoints /mnt/esp ve /mnt/rootfsbu cevabın kalan kısmı ile çalışmalarına seçilmiş sadece örnekleridir.

    GRUB'un EFI görüntüsünü ve asgari bir yapılandırma dosyasını aşağıdakilerle yükleyin:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Not $deviceBütün cihaz örneğin olduğunu /dev/sdb, bir bölüm.

  4. İşte bu, zaten bitirdik, ama birkaç şeyi açıklamaya çalışayım.

    Parametre --target x86_64-efi, UEFI görüntülerinin ve modüllerinin verilen yollara yüklenmesini sağlayacaktır. --removableUEFI görüntüsünü \EFI\BOOT\BOOT{arch}.EFI, dağıtıma özgü bir yol yerine çıkarılabilir medya için sabit kodlu yola yükler . Sizin grub.cfgde /boot/grub/çizme yöntemleri ve adında yeni bir klasör hem çalışmalıdır x86_64-efişimdi yanındaki bulunmalıdır i386-pc.

    Tamlık için, platformdaki NVRAM girişlerini yazan ve bunlara dayanan, çıkarılamayan medya için komut:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    Uygun UEFI kurulumları, aşağıdakine benzer bir çizgi içerir /etc/fstab, ancak kurulum olmadan çalışır ve UEFI görüntüsü (MBR önyükleyicisine benzer) genellikle yalnızca OS kurulumu sırasında yazılır / güncellenir.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

GPT ile bir kuruluma ESP veya GRUB-BBP ekleme

GPT bölümlenmiş bir sürücüdeki eski bir yüklemeye ESP eklemek , aşağıdakilere çok benzer:

  1. grub-efi-amd64-binPaketi kurun .
  2. Kök bölümü yeniden boyutlandırarak ve bootbayrağı ayarlayarak yukarıdaki talimatlara benzer şekilde FAT32 dosya sistemine sahip bir bölüm oluşturun .
  3. Bölümleri monte edin ve grub-installyukarıdaki --removableparametreyi içeren komutu çalıştırın .

Bu, yalnızca mevcut UEFI kurulumunuzu başka bir bilgisayarda önyüklemek istiyorsanız da çalışır.

GRUB için bir BIOS Önyüklenebilir Bölüm (BBP) oluşturmak biraz farklıdır:

  1. grub-pc-binPaketi kurun .

  2. Kök bölümü yeniden boyutlandırarak yukarıdaki talimatlara benzer bir bölüm oluşturun ve bios_grubbayrağı ayarlayın . Hiçbir dosya sistemi seçin ve biçimlendirmeden bırakın.

  3. Yapılandırma dosyasını /etc/default/grubyönetici haklarıyla GRUB_DEVICE=/dev/sdb6düzenleyin ve sonuna ekleyin . BBP'nizin /dev/sdb6gerçek cihaz adıyla değiştirin . İşi basit tutmak için nano komut satırı düzenleyicisini kullanabilirsiniz .

    GRUB MBR görüntüsünü BBP'ye şu şekilde yükleyin:

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    Satırı kaldırmak veya yorum /etc/default/grubyapmak ve asıl yüklemeye eklemek isteyebilirsiniz.

Bonus: GPT içeren bir yüklemede Mac'ler için bir bölüm ekleyin

Test ettiğim çok yeni Mac'in (Mac Mini A1347 EMC 2840) standart bir FAT32 ESP'den, hatta MBR'den önyükleme yapabileceğini buldum! Her neyse, işte başlıyoruz:

  1. Yükleme grub-efi-amd64-bin, hfsprogs, mactel-bootve mactel-boot-logo(isteğe bağlı) paketleri. Hepsini yüklemek için Evren depolarını ( "Evren" deposunu komut satırından nasıl etkinleştirebilirim? ) Etkinleştirmeniz ve geçerli Mactel destek PPA'sını ( daha fazla ayrıntı için Mactel Destek Topluluğu ekibine bakın) eklemeniz gerekir.

  2. Kök bölümü yeniden boyutlandırarak yukarıdaki talimatlara benzer bir HFS + dosya sistemine sahip bir bölüm oluşturun. Bu sefer birkaç megabayt daha fazla alana ihtiyacımız var, bu yüzden daha önce sadece 5 megabayt veya daha azına sahipseniz ESP'nin boyutunu iki katına çıkarın. Bayrak gerekmez.

  3. Bölümleri monte edin:

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Not: Seçtiğim $esp-mac_deviceve /mnt/esp-macçatışmaları önlemek için.

    Parametreyi grub-installiçeren komutu çalıştırın --removable:

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Son olarak bölümü bir Mac'in beklediği şekilde kurun:

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Bir Mac'te Ubuntu'yu harici ortamdan önyüklemek için şimdi seçenek tuşuna veya AltWindows klavyelerinde basmanız ve doğru diski seçmeniz yeterlidir .

    Birimleri ve Ubuntu logosunu gösteren Mac Startup Manager

Bölüm bayrakları, tür kodları ve GUID'ler hakkında

Mümkün olduğunca doğru olmak için, önyükleme bayrağı GRUB için önemli değildir, varsayılan olarak GRUB, önyüklenecek doğru dosya sistemini bulmak için UUID'leri arar. GParted'da önyükleme bayrağını veya bios_grub bayrağını ayarlamak genellikle bölüm için bir tür (MBR) veya GUID (GPT) ayarlar.

Düzgün çalışan bir kurulum yapmanın yanı sıra doğru türü veya GUID'yi ayarlamanın yararı, bu bölümlerin dosya yöneticisinde gizlenmesidir. Türleri ve GUID'leri kontrol etmenin ve değiştirmenin en kolay yolu Diskler ( gnome-disks)'dir.

gnome disklerindeki sürücüleri ve bölümleri gösteren ekran görüntüsü

gnome disklerinde bölüm düzenleme iletişim kutusunu gösteren ekran görüntüsü

Alternatif olarak ayrıştırılmış veya gdisk kullanabilirsiniz:

  • 0xef, fdisk ile kullanılmak üzere MBR'de ESP için tür kodudur
  • ef00, gdisk ile kullanım için GPT'de ESP için kısaltılmış tür kodudur
  • ef02, gdisk ile kullanım için GPT'de BBP için kısaltılmış tür kodudur

Wikipedia'da GPT için büyük bir GUID listesi vardır .

Olarak komut eşdeğer parteduygun el olan parted $device set partition esp onve parted $device set partition bios_grub on.


Ayrıntıları belgelemedim. Ancak flash sürücümü gpt olarak bölümleyebilir, bir efi bölümü oluşturabilir ve efi önyükleme dosyalarını efi bölümüne kopyalayabildim. Grub-mkimage, dosyalar için belirli yollar bekleyen bir grubx64.efi oluşturur, bu yüzden dosya yapımı kurulumumdan bir / boot / grub'a kopyaladım ve / iso'daki başka bir grub.cfg'ye bir config.cile girdisi ile grub.cfg ekledim klasörü benim ISO'ları loopmount önyükleme. Muhtemelen daha doğru görüntü ile kendi grubx64.efi oluşturmak için, ama kopya çalıştı.
oldfred

"MBR ile mevcut bir yüklemeye ESP ekleme" bölümünü nasıl yapacağımı anlamaya çalışırken yüksek ve alçak aradım. Bu konuda gergindim, ama ilk denemede çalıştı! Mükemmel cevap!
Mark E. Haase

Cevabın MBR kısmı ile mevcut bir kuruluma ESP Ekle'yi kullanarak Ubuntu'nun tam bir BIOS / MRR kurulumuna EFI önyükleme yeteneği eklemeye çalışıyorum . "Hata: Dosya /boot/bulunamadı" mesajı alıyorum . grub.cfgSağ UUID için ESP bölüm noktalarında. Herhangi bir fikir? Yeni bir soru göndermekten memnuniyet duyarım.
user68186

@ user68186 bunu başardınız mı?
BRabbit27

Ubuntu'yu bir Mac'ten harici sürücüme kurabildim. Mac'e bağlandığında Ubuntu'ya doğru şekilde önyükleme yapar. Ancak, önyükleme aygıtlarındaki bir Windows10 makinesine (xps 15 9560) bağlandığında harici sabit sürücü görünmez. Benim önsezim UEFI'den kaynaklanıyor. Birisi benim önsezi doğru olup olmadığını ve ayrıca bu iş parçacığı bir windows makineden önyükleme için gerekebilir ne olduğunu onaylayabilir misiniz?
BRabbit27
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.