Boom ile anlık görüntülerinden nasıl önyükleme yapılır

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:

The boot entry created by boom, in the GRUB menu
GRUB menüsünde bom tarafından oluşturulan önyükleme girişi

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.

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.