Soru Donanımı yeniden başlatmadan bir Linux işletim sistemini yeniden başlatmak mümkün mü?


Donanımı yeniden başlatmadan bir Linux sistemini (özellikle Debian) yeniden başlatmanın bir yolu var mı?

İşletim sistemi başlamadan önce kendini çalıştırmak için biraz zaman alan bir RAID denetleyicim var ve RAID denetleyicisini yeniden başlatmanın tüm yeniden başlatma işlemine gerek kalmadan Linux işletim sistemini hızlı bir şekilde yeniden başlatmanın bir yolu olsaydı, vb.


81
2018-03-24 23:35


Menşei


Tüm UEFI tabanlı sistemler, işletim sisteminin yeniden başlatılmasını değiştirebilir. Sendekexec()hangisi gibiexec()ama Unix çekirdekleri için. - user2284570


Cevaplar:


kullanırım kexec-reboot neredeyse tüm üretim sistemlerimde.

İnanılmaz derecede iyi çalışıyor, uzun POST zamanı HP ProLiant sunucularında önyükleme döngüsünü 5 dakikadan ~ 45 saniyeye düşürün.

Görmek: https://github.com/error10/kexec-reboot

Tek uyarı, UEFI'yi başlatan RHEL / CentOS 6.x sistemleri üzerinde çalıştığı görünmüyor. Ama çoğu OS / donanım kombinasyonları çalışır.


94
2018-03-25 00:05



Bunu ben yazdım! Ama hala güzel çalışıyor ... - Michael Hampton♦
Büyüleyici. Peki asıl süreç nasıl görünüyor? Hariprasad Nellitheertha'nın bir makalesine göre (kexec wikipedia sayfasından bağlantılı olarak), “Normal yeniden başlatma işleminin aksine, kexec yeniden başlatmadan önce sistemin temiz bir şekilde kapanmasını engeller. Tüm uygulamaları öldürmek ve dosya sistemlerini kaldırmak için size kalır. kexec yeniden başlatmadan önce. " Bazı şüpheli şeyler fark ettim, örneğin, Wim Coekaerts "sync; umount -a; kexec -e" çok hızlı bir yeniden başlatma yapacağını söylüyor. Ama yoğun bir dosya sistemi kuramazsınız. Web'i göz önünde bulundurarak, birçok kişinin 'tüm uygulamaları öldür' bölümünü görmezden geldiği anlaşılıyor. - Mike S
@MikeS Bu değil kexec. Bu kexec-reboot Yarar. Github açıklaması, farkı ve programın sürece ne eklediğini özetlemektedir. - ewwhite
@MikeS Kexec'i hazırladıktan sonra, sadece shutdown -r. Sistem komut dosyalarınız kexec'in sahnelediğini ve doğru şeyi yaptığını fark edecek. Nasıl görünüyor? Üç veya dört veya on beş dakika daha kısa. IDRAC konsolunu çıkardığım çok korkunç kalitede bir videom var, ama gerçekten bununla uğraşmak istemiyorsunuz. kexec-reboot betik kexec için doğru komut satırı argümanlarını alma sürecini otomatikleştirmeyi amaçlamaktadır, bu da zor olabilir. - Michael Hampton♦
@MichaelHampton - havalı. Centros 6.5'in /etc/rc3d/rc6.d/S01reboot'un sonuna yakın olduğunu görüyorum: [ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null . Yani, bir kernel kexec -l tarafından yüklendiyse, sistem tam / sbin / reboot olmadan yeniden başlatılacak ... kexec pişiriliyor! Bunu bilmiyordum, teşekkürler. Daha modern dağıtımların da ele aldığını düşünüyorum. BTW, kexec daha önce -l ile çalıştırılmadıysa, yeniden komut dosyası "Hiçbir şey yüklenmedi!" Bu yüzden çıktı / dev / null'a gönderildi ve neden bu tesisin hiç farkında olmadım. - Mike S


Evet mümkün. kexec Linux çekirdeğinin BIOS önyükleme işlemine girmeden doğrudan Linux'tan önyükleme yapmasına izin verir.


17
2018-03-24 23:51



Ayrıca, UEFI yeniden başlatmadan işletim sistemini değiştirmeye izin verir. - user2284570


Evet. Kexec-tools kullanmalısınız. Hayatı kolaylaştırmak için kullanıyorum kexec-reboot.

$sudo apt-get install kexec-tools
$wget https://raw.githubusercontent.com/vadmium/kexec-reboot/master/kexec-reboot
$chmod +x kexec-reboot
$sudo mv kexec-reboot /usr/local/sbin/kexec-reboot
$sudo /usr/local/sbin/kexec-reboot

13
2018-03-26 04:04



Yani karışıklık yok, bunu ben yazmadım. - Michael Hampton♦
Bu muhtemelen Ubuntu / Debian-only, doğru mu? - ewwhite
@ewwhite olur muhtemelen RHEL / CentOS üzerinde çalışmak, ancak kodun okunması üzerine, kenar durumlarının başarısız olmasına neden olabilecek çeşitli problem noktaları buldum. Ve kaynak bunu bir yorum ile kabul ediyor gibi görünüyor: # The error checking is very basic. - Michael Hampton♦