Jump to content

Netboot (Türkçe)

From ArchWiki

Netboot (Ağ önyükleme) imajları, sistem açılışı sırasında en güncel Arch Linux sürümünü anında (on the fly) internetten indirmek için kullanılabilen oldukça küçük (< 1 MiB) imajlardır. Netboot imajını sürekli güncellemeniz gerekmez; en yeni Arch sürümü ağ üzerinden otomatik olarak sunulur. Netboot imajları Arch Linux Netboot sayfasından indirilebilir.

Note
  • Canlı sistemi hafızada saklamak ve çalıştırmak için yeterli belleğe (muhtemelen 1.5GiB veya daha fazlasına) ihtiyacınız vardır, aksi takdirde açılışta kernel panic (çekirdek hatası) alabilirsiniz.
  • Bu sistem çoğunlukla kablolu (Ethernet) bağlantılar için tasarlanmıştır: Wi-Fi desteği sınırlıdır ve büyük ölçüde donanım yazılımına (firmware) bağlıdır[1].

BIOS

BIOS tabanlı bir bilgisayarda netboot kullanmak için ipxe.lkrn veya ipxe.pxe imajlarından birine ihtiyacınız vardır.

ipxe.lkrn Kullanımı

ipxe.lkrn imajı, tıpkı bir Linux çekirdeği (kernel) gibi önyüklenebilir. Herhangi bir Linux önyükleyicisi (örn. GRUB veya Syslinux), bu imajı sabit diskinizden, bir CD'den veya USB sürücüden yüklemek için kullanılabilir. Örneğin Syslinux wiki sayfası, Syslinux'u önyüklenebilir bir ortama kurma[2] ve yapılandırma[3] talimatlarını içerir.

Aşağıdaki adımları takip ederek ipxe.lkrn imajını başlatan bir USB bellek hazırlayabilirsiniz:

  • lsblk komutunu kullanarak cihazınızın yolunu bulun. Bu yolun /dev/sdc olduğunu varsayalım.
  • Cihaz üzerinde bir MBR bölüm tablosu (partition table) oluşturun.
  • FAT32 dosya sistemine sahip bir birincil (primary) bölüm oluşturun ve bunu "aktif" (active/bootable) olarak işaretleyin.
  • Bölümü bağlayın (mount), orada bir boot/syslinux dizini oluşturun ve ipxe.lkrn imajını boot dizinine kopyalayın.
# mount /dev/sdc /mnt
# mkdir -p /mnt/boot/syslinux
# cp ipxe.lkrn /mnt/boot
  • Syslinux yapılandırmasını oluşturun:
/mnt/boot/syslinux/syslinux.cfg
DEFAULT arch_netboot
   SAY Booting Arch over the network.
LABEL arch_netboot
   KERNEL /boot/ipxe.lkrn
  • Bölümü ayırın (unmount):
# umount /mnt
  • Syslinux MBR'ı ve Syslinux'un kendisini kurun:
# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdc
# syslinux --directory /boot/syslinux/ --install /dev/sdc1
  • Artık USB belleğinizi ipxe.lkrn ile başlatabilirsiniz.

Alternatif olarak, aşağıdaki komutu çalıştırarak bu imajı QEMU ile de test edebilirsiniz:

$ qemu-system-x86_64 -enable-kvm -m 2G -kernel ipxe.lkrn

ipxe.pxe Kullanımı

ipxe.pxe bir PXE imajıdır. Mevcut bir PXE ortamından zincirleme yüklenebilir (chainloaded). Bu, ağdan her önyükleme yapıldığında doğrudan Arch Linux netboot sisteminin başlamasını sağlayacak bir DHCP sunucusu yapılandırmanıza olanak tanır.

Alternatif olarak, pxelinux gibi mevcut bir pxe yükleyicisinden de zincirleme yükleme yapabilirsiniz. İşte bir menü girdisi örneği:

LABEL arch_netboot_chain
  COM32 pxechn.c32
  APPEND ipxe.a56af4e6a9a9.pxe

Bu örneğin çalışması için pxechn.c32 dosyasının pxelinux.0 dosyanızın bulunduğu dizine kopyalanmış olması gerekir.

UEFI

Arch Linux netboot sistemini UEFI modunda başlatmak için ipxe-arch.efi imajı kullanılabilir. Yalnızca 64-bit UEFI desteklenmektedir. İmaj, efibootmgr aracılığıyla bir açılış seçeneği olarak eklenebilir, systemd-boot veya rEFInd gibi bir önyükleme yöneticisinden ya da doğrudan UEFI kabuğundan başlatılabilir. UEFI sistemlerde bunu bağımsız bir USB bellekten de başlatabilirsiniz.

efibootmgr ile Kurulum

Öncelikle efibootmgr paketini kurun. EFI sistem bölümünüzün (ESP) /dev/sdd1 olduğunu ve esp dizinine bağlandığını varsayarsak, imajı şu şekilde taşımalı ve ona daha anlaşılır bir isim vermeliyiz:

# mkdir esp/EFI/arch_netboot
# mv ipxe.*.efi esp/EFI/arch_netboot/arch_netboot.efi

Ardından aşağıdaki komutla bir önyükleme girdisi oluşturabilirsiniz:

# efibootmgr --create --disk /dev/sdd --part 1 --loader /EFI/arch_netboot/arch_netboot.efi --label "Arch Linux Netboot" --unicode

USB Bellekten Başlatma

Netboot EFI ikili dosyasını (binary) bir USB bellekten başlatmak istiyorsanız, dosyayı FAT biçimli bir bölümdeki varsayılan/yedek önyükleme yoluna (/EFI/BOOT/BOOTx64.EFI) kopyalayın. Sürücü üzerinde özel bir EFI sistem bölümü oluşturulması gerekmez, çünkü tüm UEFI sistemleri USB belleklerdeki herhangi bir FAT birimini sorunsuzca başlatabilir. En uyumlu kurulum, 0c "W95 FAT32 (LBA)" türünde tek bir aktif (bootable) birincil bölüme sahip MBR bölüm tablosu kullanmak olacaktır.[4]

Bu işlemden sonra imaj, UEFI sistemler tarafından otomatik olarak yüklenmelidir.

Note Önyükleme yapabilmek için Secure Boot (Güvenli Önyükleme) özelliğini kapatmanız gerekecektir. Netboot EFI ikili dosyasını kendi özel anahtarlarınızla imzalasanız bile, yansıdan (mirror) indirilen çekirdek (kernel) imzalı olmayacaktır.

GNU/Linux Üzerinde

Örneğin, flash sürücünün /dev/sdX olduğunu varsayarak USB belleği şu şekilde hazırlayın:

  1. Eğer henüz yapılmadıysa, /dev/sdX üzerinde bir bölüm tablosu ve bir bölüm (/dev/sdXn) oluşturun.
  2. Eğer henüz yapılmadıysa, bölümü FAT32 olarak biçimlendirin:
    # mkfs.fat -F 32 /dev/sdXn
  3. Dosya sistemini bağlayın:
    # mount /dev/sdXn /mnt
  4. Bağlanan dosya sisteminde bir /EFI/BOOT dizini oluşturun:
    # mkdir /mnt/EFI /mnt/EFI/BOOT
  5. pxe-arch.efi dosyasını x64 UEFI için varsayılan önyükleme yoluna kopyalayın:
    # cp pxe-arch.efi /mnt/EFI/BOOT/BOOTx64.EFI
  6. Dosya sistemini ayırın (unmount).

Windows Üzerinde

USB belleği şu şekilde hazırlayın:

  1. Eğer henüz yapılmadıysa, USB belleği bölümleyin ve FAT32 olarak biçimlendirin.
  2. USB belleğin kök dizinine gidin, içinde bir EFI klasörü ve bu EFI klasörünün içinde de bir BOOT klasörü oluşturun.
  3. pxe-arch.efi dosyasını EFI\BOOT klasörünün içine kopyalayın.
  4. pxe-arch.efi dosyasının adını BOOTx64.EFI olarak değiştirin.
  5. İşlem bittiğinde USB belleği güvenle çıkarın.

Sorun Giderme

EFI ikili dosyasını başlatırken "device error" hatası alınması

EFI ikili dosyasını başlatmak Failed to execute ... device error hatasıyla sonuçlanıyorsa, UEFI ayarlarınızda ağ yığınının (network stack) etkinleştirildiğinden emin olun. Ağ arayüz kartının (NIC) option ROM'unun başlatılması gerekebilir; bu nedenle UEFI üzerinde "OnBoard LAN Boot ROM", "Launch PXE OpROM Policy" veya benzeri ayarları kontrol edin.