RHEL / Fedora / CentOS sistemleri için güncelleme grubuna eşdeğer mi?


36

Ubuntu'da (ve ben de Debian'da sanırım) grub konfigürasyon dosyası için doğru yolla update-grubotomatik olarak çalışan bir sistem betiği var grub-mkconfig -o.

Red Hat tabanlı dağıtımlar için benzer bir komut var mı?

Değilse, sistem yeni bir çekirdek sürümü yüklendiğinde grub yapılandırma dosyasının nerede güncelleneceğini nereden biliyor?

Yanıtlar:


14

Bir RPM paketi takıldığında veya çıkarıldığında yapılması gereken özel eylemler , RPM paketinin içine yükleme öncesi, yükleme sonrası, kaldırma öncesi ve kaldırma sonrası bölümlerine dahil edilir.

Yüklü her RPM paketi için, RPM veritabanını aşağıdaki rpmkomutla birlikte verilen tam komut dosyaları için sorgulayabilirsiniz :

rpm -q --scripts <package-name>

Bu komutu CentOS 6 için bir çekirdek paketinde çalıştırmak, diğerleri arasında döner:

postinstall scriptlet (using /bin/sh):
<snip>
/sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?

Kılavuzdan:

new-kernel-package - çekirdek kurulumu betiğini aracı


2
Aynı komutu Fedora'da da 20 sonuç /bin/kernel-installveriyoruz. Gelecekte
başvurmak

3
İşte bu yüzden cevabımı bulmak için gerekli adımlarla başladım. Kurulum komut dosyalarının sorgulanmasının RPM dünyasında, çekirdek güncellemesinin nasıl etkilendiğini anlamanıza yardımcı olacak oldukça evrensel olabileceğini düşünüyorum. Bu şekilde cevabım, zamanın testine dayanacak, daha önce göstermiş olduğunuz bir araç / komut / destek-komut dosyasını adlandırmaktan çok daha iyi bir şekilde yayınlanacak.
HBruijn

3
Evet @ HBruijn haklı. Fedora, RHEL ve CentOS'ta tek bir cevap verememek için çok fazla değişkenlik var, nasıl bulacağını göstermek için daha iyi.
slm

24

Fedora'daki scriptleri analiz ettikten sonra, konfigürasyon dosyası yolunun sembolik linkten okunduğunu anladım /etc/grub2.conf. Bu grub2-mkconfignedenle doğru çizgi:

grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"

Yorumlarda belirtildiği gibi, olabilir /etc/grub2.cfgveya /etc/grub2-efi.cfgbir UEFI sisteminde. Aslında, her iki bağlantı da aynı anda bulunabilir ve farklı yerlere işaret edebilir . -eBayrak için readlinkhedef dosya yoksa dışarı hata ama sistemimde hem var olan ... komutlarınızı kontrol edecek sanırım.


5
CentOS 7'de linkler görünmektedir/etc/grub2.cfg
Anthon

6
grub2-mkconfig --output = / boot / grub2 / grub.cfg, fedora kılavuzunda onaylanan yol olarak görünüyor
Kendrick

1
Daha fazla CentOS 7'ye özgü grub adımları için resmi wiki’yi
sshow

2
Bir UEFI sisteminiz varsa isteyeceksinizsudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
Craig Ringer

10

Fedora'da kullanıyorum:

grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"

çünkü readlinkgöreceli bir yol döndürme seçeneği olmadan yürütmek ve grub2-mkconfigbir hata vermek:

$ ls -l /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Dec 10  2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

$ readlink /etc/grub2.cfg
../boot/grub2/grub.cfg

$ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)"
/usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory

-eSeçeneği kullanıyorum, böylece sembolik bağlantı mevcut bir dosyaya çözümlenmezse, çıktı stdout'ta görüntüleniyor ve bir şeyler ters gittiğini biliyorum.

Readlink için man sayfasından:

      -e, --canonicalize-existing
          canonicalize  by  following  every symlink in every component of
          the given name recursively, all components must exist

6

Fedora'da, /etc/grub2.cfg sembolik bağlantısı BIOS versiyonunu gösterir. Bir UEFI sisteminde, şunları kullanın:

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

CentOS'ta:

$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Genellikle bunun yerine kullanabilirsiniz:

$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg)

Bkz. Https://docs.fedoraproject.org/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader.html#sec-Editing_a_Menu_Entry


2

grub dosyasını viveya ile düzenleyin vim, değişiklikleri kaydedin ve editörü ile kapatın: wq!

RedHat'taki veya CentOS'taki grubu güncellemek için çalıştırmanız gereken şey:

grub2-mkconfig -o /boot/grub2/grub.cfg

0

update-grubUbuntu komut aslında sadece bir olduğu için saplamagrub-mkconfig ve çok fazla acı çekmeden diğer dağıtımlar için adapte edilebilir. İşte bütünüyle:

#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

Bu değişiklikle önerilir yapar CentOS wiki ve burada diğer yanıtlar - Tek fark değişikliğine ihtiyaç vardır grubiçin grub2komuta ve çıkış yolu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.