المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

القيود

المتطلبات

قبل البدء

تحديث جهاز تحليلات البرامج الضارة الآمنة غير المتصل (Airgapped)

اصطلاحات التسمية

القيود

Linux/MAC - تنزيل ISO

المتطلبات

المكونات المستخدمة

التكوين

تنزيل ISO باستخدام الأمر desync

Windows - تنزيل ISO

تنزيل ISO باستخدام الأمر desync

التحقق من الصحة

جهاز التمهيد من USB

كيفية العثور على الجهاز /dev الصحيح

وضع=خيار التقدم

تسلسل تمهيد محركات الأقراص الثابتة لإجراء عمليات الترقية دون اتصال

المتطلبات:

المقدمة

يصف هذا المستند الخطوات اللازمة لتحديث وضع Air-Gap الخاص بجهاز تحليلات البرامج الضارة الآمنة.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- معرفة أساسية بالمدخلات من خلال سطر الأوامر في بيئة Windows و Unix/Linux

- معرفة جهاز تحليل البرامج الضارة

- معرفة عنصر التحكم المتكامل في الإدارة (IMC) من Cisco

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- Windows 10 و CentOS-8

- روفوس 2٫17

- C220 M4

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

معلومات أساسية

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

بالنسبة للمستخدمين الذين يقومون بتشغيل أجهزة "تحليلات البرامج الضارة الآمنة" غير المتصلة بالإنترنت، فإننا نقدم عملية التحديث دون اتصال الموضحة في هذا المستند. يتم توفير وسائط التحديث من خلال "دعم تحليلات البرامج الضارة الآمنة" عند الطلب، راجع أدناه للحصول على تفاصيل.

الوسائط: يتم توفير وسائط تحديث Airgap (دون اتصال بالإنترنت) من خلال الدعم الآمن لتحليلات البرامج الضارة ك ISO، والتي يمكن نسخها إلى وسائط USB أو محرك أقراص ثابتة (محركات الأقراص الثابتة) في حالة توفر أي حجم مناسب.

الحجم: يعتمد الحجم على الإصدارات التي تدعمها وسائط التحديث، ولكن قد يكون في كثير من الأحيان عدة عشرات من الجيجابايت عند تقديم أجهزة VM جديدة بين إصدارات المصدر والوجهة. مع الإصدارات الحالية، قد تصل سعتها إلى 30 جيجابايت تقريبا نظرا لأن أداة المحاكاة الافتراضية تساعد على تحديث التغييرات المتعلقة بالأجهزة الافتراضية بشكل متزايد.

ترقية دورة التمهيد: في كل مرة يتم فيها تمهيد وسائط تحديث Airgap، فإنها تحدد الإصدار التالي الذي سترقى إليه وتنسخ المحتوى المرتبط بذلك الإصدار التالي على الجهاز. قد يقوم إصدار محدد أيضا ببدء تثبيت الحزمة إذا لم يكن لهذا الإصدار أي تحققات من المتطلبات الأساسية التي يجب تشغيلها أثناء تشغيل الجهاز. إذا كان الإصدار يتضمن مثل هذه التحققات أو تجاوز لأجزاء من عملية التحديث التي يمكن أن تضيف مثل هذه التحققات، بعد ذلك لا يتم تطبيق التحديث فعليا حتى يقوم المستخدم بتسجيل الدخول إلى OpAdmin واستدعاء التحديث مع OpAdmin > العمليات > Update Appliance.

موصلات ما قبل التثبيت: بناء على ما إذا كانت هناك أية موصلات تثبيت مسبق لإجراء هذه الترقية المحددة، فإنها تقوم بتشغيل الترقية على الفور أو إعادة تمهيد الجهاز مرة أخرى إلى وضع التشغيل العادي للسماح للمستخدم بإدخال الواجهة الإدارية المعتادة وبدء عملية الترقية يدويا.

كرر حسب الحاجة: كل دورة تحميل وسائط من هذا القبيل ترتقي (أو تجهز للترقية) خطوة واحدة فقط نحو الإصدار الهدف النهائي، على المستخدم التمهيد حسب الضرورة للترقية إلى الإصدار الوجهة المرغوب.

القيود

لا يتم دعم وسائط CIMC للتحديثات التي يتم تجميعها عبر الهواء.

نظرا لقيود الترخيص على مكونات الطرف الثالث المستخدمة، لم تعد وسائط الترقية لإصدارات 1.x متوفرة بعد أن أصاب جهاز UCS M3 نهاية العمر الافتراضي. وبالتالي، من المهم للغاية أن يتم إستبدال أجهزة UCS M3 أو ترقيتها قبل نهاية العمر الافتراضي.

المتطلبات

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

ملاحظة:يقوم الإصدار الأول 2.1.x الأحدث من 2.1.4، على وجه الخصوص، بتشغيل عدة عمليات ترحيل لقاعدة البيانات. ومن غير الآمن الاستمرار حتى تكتمل عمليات الترحيل هذه. لمزيد من المعلومات، راجع ملاحظة ترحيل جهاز شبكة التهديدات 2.1.5.

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

إذا بدأ الأمر بالإصدار 2.1.3 أو بعده، تكون وسائط Airgap عامة ولا تكون هناك حاجة إلى معلومات العميل.

قبل البدء

- النسخ الاحتياطي. يجب مراعاة النسخ الاحتياطي للجهاز قبل متابعة التحديث.

- قم بمراجعة "ملاحظات الإصدار" الخاصة بالإصدار للتحديث للتحقق من وجود أي عمليات ترحيل في الخلفية مطلوبة قبل أن تخطط للتحديث إلى الإصدار الأحدث

- تحقق من الإصدار الحالي من الجهاز: OpAdmin > Operations > Update Appliance

- راجع محفوظات إصدار جهاز تحليلات البرامج الضارة الآمنة في جدول البحث عن رقم/إصدار الإنشاء، المتوفر في جميع مستندات جهاز Threat Grid: ملاحظات الإصدار وملاحظات الترحيل ودليل الإعداد والتكوين ودليل المسؤول.

تحديث جهاز تحليلات البرامج الضارة الآمنة غير المتصل (Airgapped)

أول تحقق من توفر إصدار Air GAPPED في هذه الصفحة: جدول بحث عن نسخة الجهاز

1. افتح طلب دعم TAC للحصول على وسائط التحديث غير المتصلة. يجب أن يتضمن هذا الطلب الرقم التسلسلي للجهاز بالإضافة إلى رقم بنية الجهاز.

2. يوفر دعم TAC نظاما محدثا من ISO يستند إلى عملية التثبيت التي قمت بها.

3. قم بنسخ صورة ISO إلى منفذ USB قابل للتمهيد. لاحظ أن USB هو الجهاز/الأسلوب الوحيد المعتمد للتحديثات دون اتصال.

اصطلاحات التسمية

هذا هو اسم الملف المحدث ex: تحديث TGA Airgap 2.13.2-2.14.0.

وهذا يعني أنه يمكن إستخدام هذه الوسائط لجهاز يعمل بإصدار الحد الأدنى: 2.13.2 وترقية الجهاز إلى الإصدار 2.14.0.

القيود

- لا يتم دعم وسائط CIMC للتحديثات التي يتم تجميعها عبر الهواء.

- نظرا لقيود الترخيص على مكونات الطرف الثالث المستخدمة، لم تعد وسائط الترقية لإصدارات 1.x متوفرة بعد أن أصاب جهاز UCS M3 نهاية العمر الافتراضي. وبالتالي، من المهم للغاية أن يتم إستبدال أجهزة UCS M3 أو ترقيتها قبل نهاية العمر الافتراضي.

Linux/MAC - تنزيل ISO

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- جهاز Linux مزود بإمكانية الوصول إلى الإنترنت لتنزيل ISO وإنشاء محرك أقراص تثبيت USB القابل للتشغيل.

- يتم توفير تعليمات تنزيل Airgap من خلال دعم تحليلات البرامج الضارة الآمنة.

- لغة البرمجة. تنزيل

- ملف فهرس .caibx (مضمن في ملف zip المزود من قبل دعم TAC).

- Desync Tool (مضمن في ملف zip المتوفر من قبل دعم تحليلات البرامج الضارة الآمنة).

المكونات المستخدمة

تستند المعلومات الواردة في هذه الوثيقة إلى CentOS Linux، الإصدار 7.6.1810 (Core).

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

التكوين

تثبيت لغة برمجة GO

# wget https://dl.google.com/go/go1.12.2.linux-amd64.tar.gz

# tar -xzf go1.12.2.linux-amd64.tar.gz

# mv go /usr/local

قم بتشغيل هذه الأوامر الثلاثة بعد التثبيت، إذا لم يفشل الأمر desync

# export GOROOT=/usr/local/go

# export GOPATH=$HOME/Projects/Proj1

# export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

يمكنك التحقق من إصدار GO بواسطة:

# go version

تنزيل ISO باستخدام الأمر desync

الخطوة 1. انسخ محتويات الملف ZIP المتوفر من قبل دعم تحليلات البرامج الضارة الآمنة بما في ذلك ملف desync.linux و.caibx في نفس الدليل محليا على الجهاز.

الخطوة 2. قم بالتغيير إلى الدليل حيث قمت بتخزين الملفات:

مثال:

# cd MyDirectory/TG

الخطوة 3. قم بتشغيل الأمر pwd للتأكد من أنك داخل الدليل.

# pwd

الخطوة 4. بمجرد أن تدخل الدليل الذي يتضمن الأمر desync.linux وملف .caibx، قم بتشغيل الأمر الذي تختاره لبدء عملية التنزيل.

ملاحظة: هذه أمثلة لإصدارات مختلفة من ISO، يرجى الرجوع إلى ملف .caibx من التعليمات المقدمة من دعم تحليلات البرامج الضارة الآمنة.

للإصدار 2.1.3 إلى 2.4.3.2 ISO:

# desync extract -k -s s3+https://s3.amazonaws.com/threatgrid-appliance-airgap-update airgap-update-2.1.3-2.4.3.2.caibx airgap-update-2.1.3-2.4.3.2.iso

للإصدار 2.4.3.2 إلى 2.5 من ISO:

# desync extract -k -s s3+https://s3.amazonaws.com/threatgrid-appliance-airgap-update airgap-update-2.4.3.2-2.5.caibx airgap-update-2.4.3.2-2.5.iso

لإصدار 2.5 إلى 2.7.2ag ISO:

# desync extract -k -s s3+https://s3.amazonaws.com/threatgrid-appliance-airgap-update airgap-update-2.5-2.7.2ag.caibx airgap-update-2.5-2.7.2ag.iso

بمجرد بدء التنزيل، يتم عرض شريط التقدم.

ملاحظة: يمكن أن تؤثر سرعة التنزيل وحجم وسائط الترقية في بيئتك على وقت إنشاء ISO.

يرجى التأكد من مقارنة MD5 للملف الذي تم تنزيله بالملف المتوفر مع الحزمة التي يوفرها الدعم للتحقق من سلامة ISO الذي تم تنزيله.

ما إن يتم التنزيل، ال iso خلقت في ال نفسه دليل.

قم بتوصيل وحدة USB إلى الجهاز وشغل الأمر dd لإنشاء محرك أقراص USB القابل للتشغيل.

# dd if=airgap-update.iso of=/dev/<MY_USB> bs=64M

حيث <my_USB> هو اسم مفتاح USB (أترك أقواس الزاوية).

أدخل محرك أقراص USB وقم بتشغيل الجهاز أو إعادة تشغيله. في شاشة تحميل Cisco، اضغط على F6 لإدخال قائمة التمهيد.

تلميح:

قم بتشغيل التنزيل بعد ساعات العمل أو ساعات التوقف عن العمل نظرا لما قد يؤثر على النطاق الترددي.

لإيقاف الأداة، قم إما بإغلاق الوحدة الطرفية أو اضغط على Ctrl+C/Ctrl+z.

للمتابعة، قم بتشغيل الأمر نفسه لاستئناف التنزيل.

Windows - تنزيل ISO

تثبيت لغة برمجة GO

#1: تنزيل لغة برمجة GO المطلوبة. ركبت من https://golang.org/dl/ في حالتي أخترت الإصدار المميز. إعادة تشغيل CMD واختبار مع

إغلاق الأمر CMD وإعادة فتحه للتحقق من:

go version

تنزيل ISO باستخدام الأمر desync

#2: قم بتثبيت أداة DESYNC. بعد تنفيذ الأمر، يمكنك ملاحظة مجموعة من مطالبات التنزيل. تقريبا بعد 2-3 دقائق، يجب أن يتم التنزيل .

go install github.com/folbricht/desync/cmd/desync@latest

In case desync is not working using above command then change directory to C drive and run this command:

git clone https://github.com/folbricht/desync.git

ملاحظة: إذا كان الأمر GIT لا يعمل فيمكنك تنزيل Git وتثبيته من هنا : https://git-scm.com/download/win.

ثم شغل تحت أمرين واحدا تلو الآخر :

cd desync/cmd/desync

go install

#3: انتقل إلى مكان — > موقع الحاوية. أنا في حالتي كان C:\Users\rvalenta\go\bin ونسخ/لصق هناك TAC يزود .caibx فهرسة مبرد.

التحقق من الصحة

#4: عد إلى نافذة مطالبة CMD وانتقل إلى المجلد go\bin وقم بتشغيل أوامر التنزيل. يجب أن ترى إجراء التنزيل فورا. انتظر حتى يكتمل التنزيل. أنت سوفت الآن يتلقى ال .iso مبرد في نفس المكان مثل ال ينسخ سابقا .caibx فهرسة مبرد

desync extract -k -s s3+https://s3.amazonaws.com/threatgrid-appliance-airgap-update airgap-update-2.12.3-2.13.2.caibx airgap-update-2.12.3-2.13.2.iso

ثم أستخدم RUFUS لإنشاء USB قابل للتمهيد. وهذا مهم جدا لاستخدام الإصدار 2.17. هذا هو الإصدار الأخير حيث يمكنك إستخدام خيارات dd وهو أمر مهم جدا لإنشاء USB للاسترداد المحدد. يمكنك العثور على جميع إصدارات هذا المستودع ROFUS في حالة عدم توفر هذه الملفات، كما أني أقوم بتضمين مثبتات للإصدارات الكاملة والمحمولة في هذا المستند.

جهاز التمهيد من USB

أدخل محرك أقراص USB وقم بتشغيل الجهاز أو إعادة تشغيله. في شاشة تحميل Cisco، حدد "F6" لإدخال قائمة التمهيد. يجب أن تكون سريعا! لديك فقط بضع ثوان للقيام بهذا التحديد. إذا فقدت هذه الميزة، فعليك إعادة تمهيد النظام والمحاولة مرة أخرى.

شكل 1 - اضغط على F6 لإدخال قائمة التمهيد

انتقل إلى محرك أقراص USB الذي يحتوي على التحديث واضغط على مفتاح الإدخال Enter للتحديد:

شكل 2 - تحديد USB للتحديث

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

بمجرد اكتمال عملية تمهيد ISO، قم بإعادة تشغيل جهاز "تحليلات البرامج الضارة الآمنة" مرة أخرى في وضع التشغيل.

قم بتسجيل الدخول إلى واجهة مستخدم المدخل والتحقق من وجود أي تحذيرات تتحدث عما إذا كان من الآمن الترقية، وما إلى ذلك، قبل المتابعة.

انتقل إلى واجهة OpAdmin وقم بتطبيق التحديثات، إذا لم يتم تطبيقها تلقائيا أثناء إعادة التشغيل: OpAdmin > Operations > Update Appliance Note: تتضمن عملية التحديث عمليات إعادة تمهيد إضافية كجزء من التحديث، والتي يتم إجراؤها من وسائط USB. على سبيل المثال، من الضروري إستخدام زر إعادة التشغيل في صفحة التثبيت بعد تثبيت التحديثات.

كرر حسب الحاجة لكل إصدار على USB.

كيفية العثور على الجهاز /dev الصحيح

مع USB لا يزال لا يربط إلى نقطة النهاية يركض الأمر lsblk | grep -iE 'disk|part'.

xsilenc3x@Alien15:~/testarea/usb$ lsblk | grep -iE 'disk|part'

sda           8:0    0 931.5G  0 disk

├─sda1        8:1    0   128M  0 part

└─sda2        8:2    0 931.4G  0 part /media/DATA

nvme0n1     259:0    0 238.5G  0 disk

├─nvme0n1p1 259:1    0   650M  0 part

├─nvme0n1p2 259:2    0   128M  0 part

├─nvme0n1p3 259:3    0 114.1G  0 part

├─nvme0n1p4 259:4    0   525M  0 part /boot

├─nvme0n1p5 259:5    0   7.6G  0 part [SWAP]

├─nvme0n1p6 259:6    0  38.2G  0 part /

├─nvme0n1p7 259:7    0  62.7G  0 part /home

├─nvme0n1p8 259:8    0  13.1G  0 part

└─nvme0n1p9 259:9    0   1.1G  0 part

xsilenc3x@Alien15:~/testarea/usb$

بعد توصيل عصا USB.

xsilenc3x@Alien15:~/testarea/usb$ lsblk | grep -iE 'disk|part'

.sda           8:0    0 931.5G  0 disk

├─sda1        8:1    0   128M  0 part

└─sda2        8:2    0 931.4G  0 part /media/DATA

sdb           8:16   1   3.7G  0 disk

└─sdb1        8:17   1   3.7G  0 part /media/xsilenc3x/ARCH_201902  <--------- not observed when the USB was not connected

nvme0n1     259:0    0 238.5G  0 disk

├─nvme0n1p1 259:1    0   650M  0 part

├─nvme0n1p2 259:2    0   128M  0 part

├─nvme0n1p3 259:3    0 114.1G  0 part

├─nvme0n1p4 259:4    0   525M  0 part /boot

├─nvme0n1p5 259:5    0   7.6G  0 part [SWAP]

├─nvme0n1p6 259:6    0  38.2G  0 part /

├─nvme0n1p7 259:7    0  62.7G  0 part /home

├─nvme0n1p8 259:8    0  13.1G  0 part

└─nvme0n1p9 259:9    0   1.1G  0 part

xsilenc3x@Alien15:~/testarea/usb$

هذا يؤكد أن جهاز USB في /dev هو "/dev/sdb".

طرق أخرى للتأكيد، بعد توصيل عصا USB :

يوفر قسم الأوامر بعض المعلومات. بعد توصيل منفذ USB، قم بتشغيل الأمر dmesg | grep -iE 'usb|مرفق'.

xsilenc3x@Alien15:~/testarea/usb$ dmesg | grep -iE 'usb|attached'

[842717.663757] usb 1-1.1: new high-speed USB device number 13 using xhci_hcd

[842717.864505] usb 1-1.1: New USB device found, idVendor=0781, idProduct=5567

[842717.864510] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[842717.864514] usb 1-1.1: Product: Cruzer Blade

[842717.864517] usb 1-1.1: Manufacturer: SanDisk

[842717.864519] usb 1-1.1: SerialNumber: 4C530202420924105393

[842717.865608] usb-storage 1-1.1:1.0: USB Mass Storage device detected

[842717.866074] scsi host1: usb-storage 1-1.1:1.0

[842718.898700] sd 1:0:0:0: Attached scsi generic sg1 type 0

[842718.922265] sd 1:0:0:0: [sdb] Attached SCSI removable disk  <-------

xsilenc3x@Alien15:~/testarea/usb$

يوفر الأمر fidsk معلومات حول الحجم، والذي يمكن إستخدامه لتأكيد: sudo fdisk -l /dev/sdb.

xsilenc3x@Alien15:~/testarea/usb$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 3.7 GiB, 4004511744 bytes, 7821312 sectors  <-------

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x63374e06

Device     Boot Start    End Sectors  Size Id Type

/dev/sdb1  *        0 675839  675840  330M  0 Empty

/dev/sdb2         116   8307    8192    4M ef EFI (FAT-12/16/32)

xsilenc3x@Alien15:~/testarea/usb$

ملاحظة: تذكر إلغاء تحميل USB قبل تنفيذ الأمر "dd".

تم تحميل تأكيد جهاز USB من المثال.

xsilenc3x@Alien15:~/testarea/usb$ sudo mount -l | grep -i sdb

/dev/sdb1 on /media/xsilenc3x/ARCH_201902 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) [ARCH_201902]

لإلغاء تحميل جهاز USB، أستخدم sudo umount /dev/sdb1.

xsilenc3x@Alien15:~/testarea/usb$ sudo umount /dev/sdb1

لا يتم إعتبار إعادة التحقق من الجهاز "محملا".

xsilenc3x@Alien15:~/testarea/usb$ sudo mount -l | grep -i sdb

وضع=خيار التقدم

oflag=sync and status=progress options في ال dd أمر.

عند كتابة العديد من كتل البيانات، يوفر الخيار "status=progress" معلومات عن عمليات الكتابة الحالية. يفيد ذلك في تأكيد ما إذا كان الأمر "dd" يكتب حاليا إلى ذاكرة التخزين المؤقت للصفحة، ويمكن إستخدامه لإظهار التقدم والمقدار الكامل للوقت في ثواني من كل عمليات الكتابة.

عند عدم الاستخدام، لا توفر "dd" معلومات حول التقدم، يتم توفير نتائج عمليات الكتابة فقط قبل إرجاع "dd":

[rootuser@centos8-01 tga-airgap]$ dd if=/dev/zero of=testfile.txt bs=1M count=8192

8192+0 records in

8192+0 records out

8589934592 bytes (8.6 GB, 8.0 GiB) copied, 5.03493 s, 1.7 GB/s

[rootuser@centos8-01 tga-airgap]$

عند إستخدامها، يتم تحديث المعلومات في الوقت الحقيقي حول عمليات الكتابة كل ثانية.

[rootuser@centos8-01 tga-airgap]$ dd if=/dev/zero of=testfile.txt bs=1M count=8192 status=progress

8575254528 bytes (8.6 GB, 8.0 GiB) copied, 8 s, 1.1 GB/s <----------------

8192+0 records in

8192+0 records out

8589934592 bytes (8.6 GB, 8.0 GiB) copied, 8.03387 s, 1.1 GB/s

[rootuser@centos8-01 tga-airgap]

ملاحظة: في الوثائق الرسمية لعملية ترقية TGA دون اتصال، يكون الأمر الذي تم الإعلام عنه هو dd if=airgap-update.iso of=/dev/<MY_USB> bs=64M

بعد إجراء بعض الاختبارات، يلاحظ المثال التالي.

بمجرد إنشاء ملف بحجم 10 ميغابايت باستخدام dd" باستخدام الجهاز /dev/zero.

1 م x 10 = 10 م (10240 ك ب + بيانات النظام السابقة في ذاكرة التخزين المؤقت لصفحات الملفات غير الآمنة = 10304 ك ب —> هذا ما يتم إدراكه في ذاكرة التخزين المؤقت للصفحات غير الآمنة في نهاية "dd").

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && dd if=/dev/zero of=testfile.txt bs=1M \

count=10 status=progress && cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:                92 kB

10+0 records in

10+0 records out

10485760 bytes (10 MB, 10 MiB) copied, 0.0138655 s, 756 MB/s

Dirty:             10304 kB <----- dirty page cache after "dd" returned | data still to be written to the block device

1633260775 <---- epoch time

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10372 kB

1633260778

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10380 kB

1633260779

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10404 kB

1633260781

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10412 kB

1633260782

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10424 kB

1633260783

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:             10436 kB

1633260785

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:                 0 kB  <--- data in the dirty page cache flushed = written to the block device

1633260786 <---- epoch time

[rootuser@centos8-2 testarea]$

```

1633260786 - 1633260775 = 11 seconds

ملاحظة: بعد إرجاع الأمر "dd"، لم يتم إكمال عملية الكتابة إلى جهاز الحظر، تم تصورها بعد 11 ثانية من الإرجاع.

إذا كان هذا هو الأمر "dd" عند إنشاء USB قابل للتمهيد باستخدام TGA ISO، وكنت قد أزلت USB من نقطة النهاية قبل هذه ال 11 ثانية = لكانت لدي ISO تالف في USB قابل للتمهيد.

الشرح:

توفر أجهزة الحظر الوصول المخزن مؤقتا إلى أجهزة الأجهزة. يوفر ذلك طبقة من التجريد للتطبيقات عند العمل بالأجهزة.

تتيح أجهزة الحظر للتطبيق القراءة/الكتابة حسب كتل البيانات ذات الأحجام المختلفة، ويتم تطبيق الأمر read()/write() هذا على ذاكرات التخزين المؤقت للصفحة (المخازن المؤقتة) وليس مباشرة على جهاز الحظر.

يدير kernel ( وليس التطبيق الذي يقوم بالقراءة/الكتابة ) حركة البيانات من المخازن المؤقتة (مخازن الصفحة المؤقتة) إلى أجهزة الحظر.

لذلك:

لا يتمتع التطبيق (في هذه الحالة "dd") بالتحكم في تدفق المخازن المؤقتة إذا لم يتم تعليمه.

يفرض الخيار "oflag=sync" الكتابة الفعلية المتزامنة (بواسطة kernel) بعد وضع كل كتلة إخراج (متوفرة بواسطة "dd") في ذاكرة التخزين المؤقت للصفحة.

OFLAG=يؤدي المزامنة إلى انخفاض أداء "dd" عند مقارنته بعدم إستخدام الخيار؛ ولكن، في حالة تمكينه، فإنه يضمن الكتابة الفعلية على جهاز الحظر بعد كل مكالمة "write()" من "dd".

الاختبار: تم إكمال إستخدام الخيار "oflag=sync" من الأمر "dd" لتأكيد جميع عمليات الكتابة باستخدام بيانات ذاكرة التخزين المؤقت للصفحة غير الصالحة عند إرجاع الأمر "dd":

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && dd if=/dev/zero of=testfile.txt bs=1M \

count=10 oflag=sync status=progress && cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:                60 kB

10+0 records in

10+0 records out

10485760 bytes (10 MB, 10 MiB) copied, 0.0841956 s, 125 MB/s

Dirty:                68 kB <---- No data remaining in the dirty page cache after "dd" returned

1633260819

[rootuser@centos8-2 testarea]$ cat /proc/meminfo | grep -iE 'dirty' && date +%s

Dirty:                36 kB

1633260821

[rootuser@centos8-2 testarea]$

لا توجد بيانات متبقية من عملية الكتابة في ذاكرة التخزين المؤقت للصفحة غير الصحيحة.

تم تطبيق عملية الكتابة قبل (أو في نفس الوقت) الأمر "dd" الذي تم إرجاعه (ليس بعد 11 ثانية من الاختبار السابق).

الآن أنا متأكد أنه بعد أن قام الأمر "dd" بإرجاع لم تكن هناك أي بيانات في ذاكرة التخزين المؤقت للصفحة المتسخة المتعلقة بعملية الكتابة = لا توجد مشاكل في إنشاء USB القابل للتشغيل (إذا كان المجموع الاختباري ل ISO صحيحا).

ملاحظة: ضع في الاعتبار هذه العلامة (oflag=sync) للأمر "dd" عند العمل على هذا النوع من الحالات.

تسلسل تمهيد محركات الأقراص الثابتة لإجراء عمليات الترقية دون اتصال

المتطلبات:

نحتاج إلى التأكد من تنسيق محرك الأقراص الثابتة باستخدام الخيار "DD" باستخدام أي أداة متوفرة ويجب نسخ الوسائط بعد ذلك إلى محرك الأقراص. في حالة عدم إستخدام هذا التنسيق، لن نتمكن من قراءة هذه الوسائط.

وبمجرد تحميل الوسائط على محرك الأقراص الثابتة/USB باستخدام التنسيق "DD"، نحتاج إلى توصيل هذا الجهاز بجهاز TGA وإعادة تشغيل الجهاز.

هذه هي شاشة تحديد قائمة التشغيل الافتراضية. نحتاج إلى الضغط على المفتاح "F6" لتمهيد الجهاز لتحديد وسائط التمهيد

بمجرد أن يتعرف الجهاز على الإدخال الخاص بنا، فإنه سيطلب من الجهاز إدخال قائمة تحديد التمهيد.

هذه هي المطالبة التي يمكن أن تختلف بين نماذج TGA المختلفة. من الناحية المثالية، يمكننا أن نرى خيار التمهيد باستخدام وسائط التمهيد (Upgrade filesystem) من هذه القائمة نفسها ولكن إذا لم يتم رؤيتها، فعلينا تسجيل الدخول إلى "EFI Shell".

يجب الضغط على "ESC" قبل انتهاء النص "startup.sh" للانتقال إلى EFI Shell. بمجرد تسجيل الدخول إلى EFI Shell، نلاحظ أن الأقسام المكتشفة في هذه الحالة هي 3 Filesystem: fs0:، fs1:، fs2.

هام

التعرف على نظام الملفات الصحيح:

- وفقا للقطة الشاشة الواردة أعلاه، ستتمكن من رؤية أن fs0:" هي الوسائط الوحيدة التي تحتوي على "USB" في مسارها، وبالتالي يمكننا أن نثق بأن نظام الملفات هذا سوف يحتوي على وسائط التمهيد (Upgrade filesystem).

في حالة عدم وجود نظام الملفات:

- إذا كان fs0: وfs1: فقط يتوفر ولا يوجد fs2:، فتحقق من أن وسائط التمهيد (ترقية filesystem) تمت كتابتها في الوضع dd وتم توصيلها بنجاح.

- يجب أن يكون لوسائط التمهيد (Upgrade filesystem) دائما عدد أقل من وسائط الاسترداد، ويجب أن تكون دائما بجانب بعضها البعض، وهو ما إذا كان محرك الأقراص المرفق ب USB في بداية النهاية الذي من المحتمل أن يتغير (أي ما إذا كان يأخذ الموضع الأمامي في fs0: أو الموضع الخلفي في fs2:) سيلزم تحديده

- في هذه الحالة في لقطة الشاشة أدناه، يوجد الملف ".efi" الصحيح لأنه يقع ضمن قسم "\efi\boot" وله تركيب التسمية "bootx64.efi"

لتمهيد الجهاز في وسائط التمهيد (ترقية filesystem)، يجب تنفيذ الملف "bootx64.efi":

fs0:\efi\boot\bootx64.efi

لعلمك، قمنا بعرض محتويات أنظمة الملفات الأخرى أدناه أيضا:

fs1: هذا هو نظام ملفات التمهيد الرئيسي.

fs2: هذا هو نظام ملفات تمهيد صورة الاسترداد.

تعليمات متنوعة:

للتحقق من نظام الملفات الصحيح الذي يحتوي على وسائط التحميل. يمكننا القيام بذلك من خلال إستعراض الملفات المختلفة والتحقق من ملف التمهيد ".efi"

ملاحظة: يمكن أن يختلف تسلسل وسائط التمهيد الفعلية (نظام ملفات الترقية)، والذي يكون في هذه الحالة "fs0:"، أيضا مع الأجهزة الأخرى.

قد يختلف الإسم والمسار لكن في كل الصور الحديثة، يجب أن يكون هذا هو نفسه.

قائمة إختيار يمكن أن تساعد في تحديد موقع وسائط التمهيد الصحيحة (نظام ملفات الترقية):

- إذا كان جذر نظام الملفات يحتوي على vmlinuz-appliance"، فإنه ليس وسائط التمهيد (ترقية filesystem).

- إذا كان جذر نظام الملفات يحتوي على meta_contents.tar.xz"، فإنه ليس وسائط التمهيد (ترقية filesystem).

- إذا لم يحتوي Filesystem (نظام الملفات) على efi\boot\bootx64.efi"، فإنه ليس وسائط التمهيد (ترقية filesystem).