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.
grub-efi-amd64-bin
Paketi 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_device
ve $root_device
birlikte uygun cihazlar örneğin /dev/sdb2
ve /dev/sdb1
. Mountpoints /mnt/esp
ve /mnt/rootfs
bu 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 $device
Bü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. --removable
UEFI 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.cfg
de /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:
grub-efi-amd64-bin
Paketi kurun .
- Kök bölümü yeniden boyutlandırarak ve
boot
bayrağı ayarlayarak yukarıdaki talimatlara benzer şekilde FAT32 dosya sistemine sahip bir bölüm oluşturun .
- Bölümleri monte edin ve
grub-install
yukarıdaki --removable
parametreyi 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-bin
Paketi kurun .
Kök bölümü yeniden boyutlandırarak yukarıdaki talimatlara benzer bir bölüm oluşturun ve bios_grub
bayrağı ayarlayın . Hiçbir dosya sistemi seçin ve biçimlendirmeden bırakın.
Yapılandırma dosyasını /etc/default/grub
yönetici haklarıyla GRUB_DEVICE=/dev/sdb6
düzenleyin ve sonuna ekleyin . BBP'nizin /dev/sdb6
gerç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/grub
yapmak 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:
Yükleme grub-efi-amd64-bin
, hfsprogs
, mactel-boot
ve 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_device
ve /mnt/esp-mac
çatışmaları önlemek için.
Parametreyi grub-install
iç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 .
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.
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 parted
uygun el olan parted $device set partition esp on
ve parted $device set partition bios_grub on
.