ganimet - önyükleme görüntüleri ve sürücüleri oluşturmaya yönelik yardımcı program

Sunulan program GanimetBu, tek komutla önyüklenebilir initrd görüntüleri, ISO dosyaları veya herhangi bir GNU/Linux dağıtımını içeren sürücüler oluşturmanıza olanak tanır. Kod POSIX kabuğunda yazılmıştır ve tarafından dağıtıldı GPLv3 altında lisanslanmıştır.

Booty kullanılarak başlatılan tüm dağıtımlar, kullanıcının seçimine göre SHHMFS (tmpfs) veya SquashFS + Overlay FS'yi çalıştırır. Dağıtım bir kez oluşturulur ve önyükleme işlemi sırasında, kök için saf tmpf'leri veya tmpf'lerdeki değişiklikleri kaydeden Overlay FS + SquashFS kombinasyonunu kullanmanıza izin veren parametreler seçilir. İndirilebilir dağıtım kitini RAM'e önceden kopyalamak mümkündür; bu, dağıtım kitini indirip belleğe kopyaladıktan sonra USB sürücünün bağlantısını kesmenize olanak tanır.

Her şeyden önce Booty, mevcut sistemdeki veya meşgul kutusundaki yerel yardımcı programları kullanabilen kendi initrd görüntüsünü oluşturur. Dizinde (chroot) kurulu olan dağıtım kitinin tamamını initramfs'a dahil etmek (paketlemek) mümkündür. Bu, kexec kullanarak bir sistemi yükseltmeniz gerektiğinde yararlı olabilir: initrd'yi yeni bir çekirdek ve initrd içindeki yeni bir sistemle yeniden yüklemeniz yeterlidir.

Booty'ye özgü bir initrd görüntüsü oluşturmak:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

“gentoo/” dizininden dağıtımı içeren bir initrd görüntüsü oluşturmak:

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Bundan sonra bu initrd görüntüsü, örneğin PXE veya kexec aracılığıyla yüklenmeye tamamen hazırdır.

Daha sonra Booty, "katmanlar" olarak belirtilen sistemle görüntüler oluşturur. Örneğin, koşullu bir Gentoo'yu ayrı bir dizine kurabilir (arşiv paketini açabilirsiniz), ardından Booty kullanılarak bu sistemle bir cpio arşivi veya SquashFS görüntüsü oluşturulacaktır. Ayrıca dağıtımı ayrı bir dizinde yapılandırabilir ve kişisel ayarlarınızı başka bir dizine kopyalayabilirsiniz. Tüm bu “katmanlar” sırayla üst üste yüklenecek ve tek bir çalışma sistemi oluşturacaktır.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay ayarları/ --overlay belgeler/ --squashfs --output initrd

Sonuçta Booty, yukarıdaki sistemi görüntülerden yükleyerek önyüklenebilir ISO görüntüleri ve USB, HDD, SSD ve diğer sürücüler oluşturmanıza olanak tanır. Ganimet BIOS ve UEFI önyükleme sistemlerinin oluşturulmasını destekler. GRUB2 ve SYSLINUX önyükleyicileri desteklenir. Önyükleyiciler birleştirilebilir; örneğin, BIOS'a önyükleme yapmak için SYSLINUX'u ve UEFI için GRUB2'yi kullanın. ISO görüntüleri oluşturmak için ayrıca aralarından seçim yapabileceğiniz cdrkit (genisoimage) veya xorriso (xorrisofs) paketine ihtiyacınız olacaktır.

Gereken tek ek işlem, çekirdeği (vmlinuz) önceden önyükleme için hazırlamaktır. Yazar (Spoofing) "make defconfig" kullanılmasını önerir. İmajı oluşturmadan önce vmlinuz çekirdeğini ve ilk örnekte oluşturulan “boş” initrd'yi yerleştirip bir dizin hazırlamanız gerekiyor.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Bununla hazırlık tamamlandı, artık bu dizinden ISO görüntüleri oluşturabiliriz.

Aşağıdaki komut, önyüklenebilir bir görüntü değil, yalnızca bir ISO görüntüsü oluşturacaktır:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Bir önyükleme görüntüsü oluşturmak için sırasıyla BIOS için “--legacy-boot” seçeneğini ve UEFI için “--efi” seçeneğini belirtmeniz gerekir; seçenekler parametre olarak grub2 veya syslinux'u alır; ayrıca yalnızca bir seçenek de belirtebilirsiniz ( örneğin UEFI önyükleme desteğine gerek yok, belirtilmemiş olabilir).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

Ve daha önce olduğu gibi, sistemli görüntüler initrd'ye dahil edildi, bunları ISO'ya dahil edebilirsiniz.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Bu komuttan sonra, Gentoo'yu veri depolama için tmpfs kullanarak Overlay FS kullanarak SquashFS görüntüsüne yükleyen önyüklenebilir bir BIOS/UEFI ISO görüntüsü oluşturulacaktır. Çekirdek, SquashFS ile Overlay FS desteğiyle oluşturulmalıdır. Bununla birlikte, herhangi bir nedenden dolayı bu gerekli değilse, gentoo/'yu bir cpio arşivi olarak paketlemek için —squashfs yerine “—cpio” seçeneğini kullanabilirsiniz, bu durumda arşiv açılışta doğrudan tmpfs'ye açılacaktır, asıl mesele sistem paketini açmak için tmpfs'in yeterli RAM'e sahip olmasıdır.

İlginç gerçek: "—efi" seçeneği kullanılarak oluşturulan bir ISO görüntüsü, dosyaların (cp -r) kopyalanmasıyla bir FAT32 flash sürücüye açılırsa, özellikler sayesinde Flash sürücü herhangi bir ön hazırlık gerektirmeden UEFI modunda önyüklenir. UEFI indiricileri.

Önyüklenebilir ISO'lara ek olarak, aynı parametrelerle herhangi bir önyüklenebilir sürücü oluşturulabilir: USB, HDD, SSD vb. ve bu sürücü, amacına uygun olarak kullanılmaya devam edilebilir. Bunu yapmak için, örneğin bir USB aygıtı bağlamanız ve üzerinde mkbootisofs'u çalıştırmanız gerekir. Belirtilen dizinin bulunduğu sürücünün önyüklenebilir hale gelmesi için sadece bir "-önyüklenebilir" seçeneği ekleyin.

/dev/sdb1 /mnt'yi bağla
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Bundan sonra, USB cihazı gentoo/ katmanı ile önyüklenebilir hale gelecektir (/boot/vmlinuz ve /boot/initrd dosyalarını cihaza kopyalamayı unutmayın).

Herhangi bir nedenden dolayı sürücü /mnt'ye takılmamışsa ve /mnt'nin /dev/sda ana cihazında bulunduğu ortaya çıkarsa, önyükleyici /dev/sda'ya yeniden yazılacaktır. --bootable seçeneğini belirlerken dikkatli olmalısınız.

Önyükleme işlemi sırasında Booty, önyükleme yükleyicisine (grub.cfg veya syslinux.cfg) aktarılabilecek bir dizi seçeneği destekler. Varsayılan olarak, herhangi bir seçenek olmadan, tüm kaplamalar tmpfs'ye yüklenir ve paketten çıkarılır (varsayılan seçenek ooty.use-shmfs). Overlay FS'yi kullanmak için booty.use-overlayfs seçeneğinin kullanılması gerekir. Booty.copy-to-ram seçeneği ilk önce kaplamaları tmpfs'ye kopyalar, ardından yalnızca bunları bağlar ve yükler. Kopyalandıktan sonra USB aygıtı (veya başka bir depolama aygıtı) çıkarılabilir.

Kaynak: opennet.ru

Yorum ekle