سؤال

لدي نظام Linux Busybox على شريحة. أرغب في تقديم تحديث للمستخدمين في الحقل وهذا يتطلب تحديث بعض الملفات في /lib /usr /bin و /etc. لا أعتقد أنه من الآمن إبطال الملفات مباشرة. هل هناك طريقة آمنة للقيام بذلك بما في ذلك /ملفات lib التي قد تكون قيد الاستخدام؟

هل كانت مفيدة؟

المحلول

بعض الأشياء التي أفضّلها بشدة في الأنظمة المدمجة:

أ) اطلب من نظام ملف الجذر أن يكون ramdisk غير مضغوط من صورة في فلاش. هذا أمر رائع لأنه يمكنك القرد تجريبياً مع محتوى قلبك وإذا كنت تعبث ، فكل ما تحتاجه هو إعادة تشغيل للعودة إلى التكوين الوامض. عندما تكون قد اختبرت مجموعة من التغيير التي تريدها ، فإنك تقوم بإنشاء صورة نظام ملفات جذر مضغوط جديد وفلاش ذلك.

ب) استخدم محمل التمهيد مثل U -Boot لإجراء التحديثات الخاصة بك - وميض صورة كاملة جديدة - بدلاً من محاولة تغيير نظام Linux أثناء تشغيله. على الرغم من أن النسخة الواضحة ليست حية ، يمكنك بالفعل فلاشها أثناء التشغيل. إذا كنت تومض إصدارًا سيئًا ، فلا يزال U-Boot موجودًا لميض نسخة جيدة.

ج) المعالجات التي تحتوي على محولات تشغيل القناع UART (أو حتى USB) ، مما يجعل النظام غير قابل للطوب-لا شيء أكثر من جهاز كمبيوتر محمول وكابل متسلسل أو محول USB/التسلسلي على الإطلاق للقيام بالصيانة (أي ، الحصول على عمل ش. -الصورة على الفلاش ، والتي تستخدمها بعد ذلك للحصول على صورة Linux kernel+الجذر المضغوط على ذلك)

نصائح أخرى

من الناحية المثالية ، يكون جهاز الفلاش الخاص بك كبيرًا بما يكفي لتقسيم نظام ملفات كاملة وكل تحديث يقوم بتحديث آخر الجانب (بالإضافة إلى النسخ عبر ملفات التكوين إذا لزم الأمر) وتحديث تكوين التمهيد للتمهيد من الجانب المحدث.

أقل مثالية هو تحديث في مكانها ولكن لديك بعض الوسائل لاكتشاف فشل التمهيد (الوكالة الدولية للطاقة التي لم يتم لمسها حتى بعد التمهيد ، على سبيل المثال) ولديها قسم احتياطي أصغر ، قادر على قبول تحديث آخر وتحديد القسم الأساسي.

بقدر ما يكون التحديث في مكانه لنظام الملفات المباشر ، ما عليك سوى استخدام مثبت حقيقي (سيقوم بنقل الملفات المستهدفة إلى الخارج قبل استبدالها لتجنب المشكلة التي تصفها).

لقد تلقيت إجابتين ممتازتين أعلاه وأشجعك بشدة على فعل ما نصحت به.

ومع ذلك ، هناك طريقة أكثر بساطة. في الواقع أنت تستطيع فقط قم بإلغاء تحديد مكتباتك ، شريطة أن تكون العملية التي تقوم بذلك مرتبطة بشكل ثابت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top