Boom, Grub2 dahil BLS uyumlu önyükleyicileri destekleyen bir sistem önyükleme yöneticisidir. Linux’ta bootloader girişlerini kolayca oluşturmak ve yönetmek için Boom’u kullanabiliriz. Bu eğitimde, sistemi Red Hat dağıtım ailesindeki LVM ve BTRFS anlık görüntülerinden başlatmak üzere girişler oluşturmak için bomu nasıl kullanacağımızı öğreniyoruz.
BootLoader Belirtimi
Boom, Bootloader Spesifikasyonunu destekleyen önyükleyiciler için girişleri yönetir; “bls” yaması ile oluşturulmuşsa grub2 de bunlardan biridir. Fedora’nın son sürümlerinde ve RHEL’in 8. sürümünden itibaren, /etc/default/grub yapılandırma dosyasına bakarsak, aşağıdaki seçeneğin dahil edildiğini görebiliriz:
GRUB_ENABLE_BLSCFG=true
Yukarıdaki satır GRUB davranışını değiştirerek doğrudan /boot/grub2/grub.cfg dosyasında girişler oluşturmak yerine /boot/loader/entries dizini altında bulunan önyükleme giriş dosyalarını kullanmasını sağlar. Fedora’nın yeni yüklenen bir sürümünde dizin iki giriş içerir:
096544f3374847bf9bacc18363cd3532-0-rescue.conf 096544f3374847bf9bacc18363cd3532-6.10.7-200.fc40.x86_64.conf
Bir giriş şu şekilde görünür:
title Fedora Linux (6.10.7-200.fc40.x86_64) 40 (Workstation Edition) version 6.10.7-200.fc40.x86_64 linux /vmlinuz-6.10.7-200.fc40.x86_64 initrd /initramfs-6.10.7-200.fc40.x86_64.img options root=/dev/mapper/hllpt0-root ro rd.lvm.lv=hllpt0/root rd.luks.uuid=luks-fd94beb6-c0df-4f65-8ee2-9dad499bc3c4 rhgb quiet grub_users $grub_users grub_arg --unrestricted grub_class fedora
Bomun yüklenmesi
Boom, 7.5 sürümünden beri RHEL’in (ve klonlarının) resmi depolarında mevcuttur. Bu dağıtımda paket lvm2-python-boom olarak mevcutken, Fedora dahil Red Hat ailesinin daha yeni sürümlerinde boom-boot olarak mevcuttu. Yüklemek için şunu çalıştırabiliriz:
$ sudo dnf install boom-boot
Boom profili oluşturma
Boom’u kullanmadan önce bir profil oluşturmalıyız. Bunu yapmanın en kolay yolu, profil komutunu, çalışan ana bilgisayardan (tipik olarak /etc/ dosyasından) yayın verilerini kullanarak profili oluşturan –from-Host seçeneğini kullanarak, create eylemiyle birlikte yardımcı programı çağırmaktır. os-sürüm dosyası):
$ sudo boom profile create --from-host
Komut aşağıdakine benzer bir çıktı döndürmelidir:
Created profile with os_id fab63af:
OS ID: "fab63af62e654ea986dca5e88d8a2d232d8f392c",
Name: "Fedora Linux", Short name: "fedora",
Version: "40 (Workstation Edition)", Version ID: "40",
Kernel pattern: "/vmlinuz-%{version}", Initramfs pattern: "/initramfs-%{version}.img",
Root options (LVM2): "rd.lvm.lv=%{lvm_root_lv}",
Root options (BTRFS): "rootflags=%{btrfs_subvolume}",
Options: "root=%{root_device} ro %{root_opts} rd.luks.uuid=luks-fd94beb6-c0df-4f65-8ee2-9dad499bc3c4 rhgb quiet",
Title: "%{os_name} %{os_version_id} (%{version})",
Optional keys: "grub_users grub_arg grub_class id", UTS release pattern: "fc40"
Boom profilleri /boot/boom/profiles dizini altında saklanır.
Anlık görüntüler için önyükleme girişleri oluşturma
Yakın tarihli bir eğitimde, Linux’ta LVM ve BTRFS anlık görüntülerinin nasıl oluşturulacağını ve yönetileceğini öğrendik ve bir şeyler ters gittiğinde sistemi iyi bilinen bir duruma geri döndürmek için bunları nasıl kullanabileceğimizi gördük. Boom’u kullanarak sistemi LVM veya BTRFS anlık görüntülerinden başlatmak için önyükleyici girişlerini kolayca oluşturabiliriz. Biraz örnek görelim. Mevcut kurulumum, “kök” mantıksal birimin “/” üzerine monte edildiği bir LVM yapılandırmasından oluşuyor. Aşağıdakileri çalıştırarak bu birimin makul büyüklükte bir anlık görüntüsünü (bu durumda geleneksel veya “kalın” bir anlık görüntüyü) oluşturmak mümkündür:
$ sudo lvcreate -s /dev/vg0/root -L5GiB -n root-snapshot0
Artık sistemi anlık görüntüyü kök bölüm olarak kullanarak önyüklememize izin verecek bir önyükleyici girişi oluşturmak için boomu kullanabiliriz. Girişi oluşturmak çalıştırmak kadar kolaydır:
$ sudo boom entry create --title "root-snapshot0" --rootlv /dev/vg0/root-snapshot0
–title seçeneğiyle önyükleyici girişi için bir başlık sağlarken –rootlv ile kök dosya sistemini içeren LVM2 mantıksal biriminin yolunu belirtiriz. Komut, /boot/loader/entries dizininde yeni girdiyi oluşturur. Bu durumda aşağıdaki içeriğe sahiptir:
#OsIdentifier: fab63af62e654ea986dca5e88d8a2d232d8f392c title root-snapshot0 machine-id 096544f3374847bf9bacc18363cd3532 version 6.10.7-200.fc40.x86_64 linux /vmlinuz-6.10.7-200.fc40.x86_64 initrd /initramfs-6.10.7-200.fc40.x86_64.img options root=/dev/vg0/root-snapshot0 ro rd.lvm.lv=vg0/root-snapshot0 rd.luks.uuid=luks-fd94beb6-c0df-4f65-8ee2-9dad499bc3c4 rhgb quiet grub_users $grub_users grub_arg --unrestricted grub_class kernel
Sistemi yeniden başlatırsak, oluşturulan girişi artık GRUB menüsünde göreceğiz:

BTRFS anlık görüntüsü için önyükleme girişi oluşturma
Bunun yerine BTRFS anlık görüntüsünü kullanmak istersek ne olur? Fedora’nın son sürümlerindeki varsayılan bölümleme kurulumu BTRFS dosya sistemini temel alır. Anaconda yükleyicisi varsayılan olarak üç bölüm oluşturur: ilki FAT32 olarak biçimlendirilmiş ve /boot/efi dizinine monte edilmiş ESP’dir; ext4 olarak biçimlendirilen ikincisi /boot dizinine bağlanır. Üçüncü ve son bölüm, BTRFS dosya sistemiyle biçimlendirilmiştir ve iki alt birimi barındırır: sırasıyla “/” ve “/home” üzerine bağlanan “root” ve “home”.
Sistem durumunu belirli bir noktada dondurmak için “kök” alt hacminin anlık görüntüsünü oluşturmak istediğimizi varsayalım. Bildiğimiz gibi, BTRFS anlık görüntüsü yalnızca ek bir alt hacimdir; çalıştırarak bunu oluşturabiliriz:
$ sudo btrfs subvolume snapshot / /.snapshot0
/ dosya sisteminin anlık görüntüsünü (“kök” alt birimin bağlama noktası) oluşturduk ve bunu /.snapshot0 olarak kaydettik. Boom ile yeni bir önyükleyici girişi oluşturmak için öncelikle orijinal alt hacmi barındıran BTRFS dosya sisteminin tanımlayıcısını alıyoruz. Dosya sistemini yoluna (bu durumda /dev/vda3) veya daha da iyisi UUID’sine göre belirtebiliriz. İkincisini mevcut önyükleme girişi kurulumuna bakarak elde edebiliriz:
$ cat /proc/cmdline
Komut, önyükleme yapılandırmasında belirtildiği gibi, önyükleme sırasında çekirdeğe iletilen komut satırını döndürür. BTRFS’ye kurulu standart bir Fedora sisteminde aşağıdakine benzer bir çıktı döndürmelidir:
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.10.8-200.fc40.x86_64 root=UUID=39da18c1-1bb0-4414-a4c1-a70abf6308b6 ro rootflags=subvol=root rhgb quiet
Çıktıdan da görebileceğimiz gibi BTRFS dosya sisteminin UUID’si: “39da18c1-1bb0-4414-a4c1-a70abf6308b6”. Şimdi, yukarıda oluşturduğumuz anlık görüntüye dayalı bir önyükleyici oluşturmak için şunu çalıştıracağız:
$ sudo boom entry create --title "snapshot0" --btrfs-subvol=root/.snapshot0 --root-device=/dev/disk/by-uuid/39da18c1-1bb0-4414-a4c1-a70abf6308b6
Tıpkı LVM anlık görüntüsü için bir giriş oluştururken yaptığımız gibi, giriş başlığını belirtmek için –title seçeneğini kullandık. Bu sefer bunun yerine kök aygıtı –root-device seçeneğini kullanarak ve kök dosya sistemini içeren BTRFS alt hacmini –btrfs-subvol kullanarak belirttik. Anlık görüntünün yolunu, sistemdeki yoluna göre değil, ana alt hacmine (“kök”) göre belirttiğimize dikkat edin.
Yazının orijinalini buradan okuyabilirsiniz.