Görünüşe göre Ubuntu'yu harici bir sabit sürücüye yüklemek , MBR'de olduğu gibi harici ve dahili arasında büyük bir fark olmadığı UEFI ile mümkün değildir. Bu doğru mu yoksa hala mümkün mü?
Her iki önyükleme yöntemini birleştirmek bile mümkün müdür?
Görünüşe göre Ubuntu'yu harici bir sabit sürücüye yüklemek , MBR'de olduğu gibi harici ve dahili arasında büyük bir fark olmadığı UEFI ile mümkün değildir. Bu doğru mu yoksa hala mümkün mü?
Her iki önyükleme yöntemini birleştirmek bile mümkün müdür?
Yanıtlar:
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!
Platformlar: Eski PC, UEFI tabanlı Windows bilgisayar, Apple bilgisayar
Bu talimatları başka bir kurulumdan veya canlı medyadan izlemeniz gerekir.
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.
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.
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/espve/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.
İş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 bölümlenmiş bir sürücüdeki eski bir yüklemeye ESP eklemek , aşağıdakilere çok benzer:
grub-efi-amd64-binPaketi kurun .bootbayrağı ayarlayarak yukarıdaki talimatlara benzer şekilde FAT32 dosya sistemine sahip bir bölüm oluşturun .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:
grub-pc-binPaketi kurun .
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.
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.
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:
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.
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.
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 .

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.


Alternatif olarak ayrıştırılmış veya gdisk kullanabilirsiniz:
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.
/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.