سؤال هل من الممكن إعادة تشغيل نظام التشغيل Linux بدون إعادة تشغيل الجهاز؟


هل هناك طريقة لإعادة تشغيل نظام Linux (Debian على وجه الخصوص) دون إعادة تشغيل الجهاز؟

لديّ جهاز تحكم RAID يستغرق بعض الوقت لتشغيل نفسه قبل بدء تشغيل نظام التشغيل ، وأريده إذا كان هناك طريقة لإعادة تشغيل نظام التشغيل Linux بسرعة دون الحاجة إلى المرور بعملية إعادة التشغيل بأكملها لإعادة تشغيل وحدة تحكم RAID ، إلخ


81
2018-03-24 23:35


الأصل


جميع الأنظمة المستندة إلى UEFI قادرة على تبديل نظام التشغيل لإعادة التشغيل. انت ايضا تملكkexec()الذي يشبهexec()ولكن بالنسبة لحبات يونكس. - user2284570


الأجوبة:


أنا أستعمل kexec-تمهيد على كل أنظمة الإنتاج الخاصة بي تقريبًا.

وهو يعمل بشكل جيد للغاية ، مما يتيح لي تجاوز وقت طويل POST على خوادم HP ProLiant وتقليل دورة التمهيد من 5 دقائق إلى 45 ثانية.

نرى: https://github.com/error10/kexec-reboot

التحذير الوحيد هو أنه لا يبدو أن العمل على أنظمة RHEL / CentOS 6.x تمهيد UEFI. لكن معظم مجموعات OS / hardware عاقل تعمل.


94
2018-03-25 00:05



لقد كتبت هذا! لكنها لا تزال تعمل بشكل جيد ... - Michael Hampton♦
رائعة. إذن كيف تبدو العملية الفعلية؟ وفقا لمقال كتبه Hariprasad Nellitheertha (مرتبط من صفحة ويكيبيديا kexec) ، "بخلاف عملية إعادة التشغيل العادية ، لا يقوم kexec بإيقاف تشغيل النظام بشكل واضح قبل إعادة التشغيل. لقد تركت لك لقتل جميع التطبيقات وإلغاء تحميل أنظمة الملفات قبل محاولة إعادة تشغيل kexec ". ألاحظ بعض الأشياء المشكوك فيها ، على سبيل المثال ، يقول ويم كيكارتس أن "sync ؛ umount -a ؛ kexec -e" ستقوم بإعادة تشغيل سريع للغاية. لكن لا يمكنك أن تضيف نظام ملفات مزدحم. من خلال الاطلاع على الإنترنت ، يبدو أن الكثيرين يتجاهلون جزء "قتل جميع التطبيقات". - Mike S
هذا ليس كذلك kexec. انها ال kexec-reboot خدمة. وصف Github يوضح الفرق وما تضيفه الأداة إلى العملية. - ewwhite
MikeS بعد انطلاق kexec ، يمكنك ببساطة القيام shutdown -r. ستلاحظ نصوص نظامك أن kexec قد تم تنظيمها وفعلت الشيء الصحيح. كيف تبدو؟ ثلاث أو أربع أو خمس عشرة دقيقة أقصر. لدي فيديو بجودة فظيعة للغاية خلعت وحدة التحكم iDRAC ، لكنك لا تريد حقا أن تعاني من ذلك ... kexec-reboot المقصود النصي لأتمتة عملية الحصول على الحجج الصحيحة سطر الأوامر إلى kexec ، والتي يمكن أن تكون خادعة. - Michael Hampton♦
MichaelHampton - رائع. أرى أنه في CentOS 6.5 بالقرب من نهاية /etc/rc3d/rc6.d/S01reboot هناك: [ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null . لذا ، إذا تم تحميل kernel بواسطة kexec -l ، فسيتم إعادة تشغيل النظام إليه بدون إكمال / sbin / reboot ... يتم خبز kexec في! لم أكن أعلم ذلك ، شكراً. أفترض أن التوزيعات الأكثر حداثة قد غطتها كذلك. راجع للشغل ، إذا لم يتم تشغيل kexec مسبقًا مع -l ، فسيقول البرنامج النصي لإعادة التشغيل "لم يتم تحميل أي شيء!" ولهذا السبب يتم إرسال الإخراج إلى / dev / null ، ولماذا لم أكن على علم بهذا المرفق أبدًا. - Mike S


نعم هذا ممكن. kexec سيسمح بتمهيد نظام لينوكس لينكس مباشرة من لينكس دون المرور بعملية تمهيد نظام BIOS.


17
2018-03-24 23:51



أيضا ، فإن UEFI تسمح لتبديل نظام التشغيل دون إعادة التشغيل. - user2284570


نعم فعلا. يجب عليك استخدام أدوات kexec. لجعل الحياة أسهل ، وأنا استخدم kexec-تمهيد.

$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



حتى لا يكون هناك ارتباك ، لم أكتب هذا. - Michael Hampton♦
من المحتمل أن يكون هذا هو Ubuntu / Debian-only ، أليس كذلك؟ - ewwhite
ewwhite سوف المحتمل العمل على RHEL / CentOS ، ولكن عند قراءة الرمز وجدت العديد من نقاط المشاكل حيث قد تؤدي حالات الحافة إلى الفشل. ويبدو أن المصدر يقر بهذا بتعليق: # The error checking is very basic. - Michael Hampton♦