هذا هو الأمر vdmfec الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
vdmfec - حظر ECC للملفات
موجز
com.vdmfec [-v] [-د] [-ب مقاس الكتله] [-ن N] [-ك K] [ملف]
vdm_encode [-ت] [-ب مقاس الكتله] [-ن N] [-ك K] [ملف]
vdm_decode [-ت] [-ب مقاس الكتله] [-ن N] [-ك K] [ملف]
الوصف
com.vdmfec يقرأ دفق الإدخال ويضيف كتل تصحيح الأخطاء بحيث تكون كبيرة على التوالي
قد تكون أقسام دفق الإخراج تالفة، ويتم استرداد البيانات. على سبيل المثال،
عادةً ما تفقد الأقراص المرنة قطاعات كاملة مرة واحدة، أو مجموعات القطاعات ذات الصلة، أو حتى
المسارات بأكملها. يمكن استرداد البيانات المكتوبة على القرص المرن باستخدام هذا البرنامج حتى مع
العديد من أخطاء القراءة.
الخوارزمية المستخدمة هي رمز تصحيح الخطأ الأمامي (FEC) استنادًا إلى Vandermonde (VDM)
المصفوفات في GF(2^8) بسبب لويجي ريزو. بالنظر إلى معلمات FEC K وN، مع N أكبر
من K، يتم كتابة كتل N لكل كتل إدخال K بطريقة تشبه أي كتل K
كافية لإعادة بناء البيانات. أي ما يصل إلى كتل N - K من كل مجموعة من N
قد يتم فقدان الكتل دون فقدان البيانات.
يمكن تعديل مقدار الحمل الزائد في تيار الإخراج بسهولة عن طريق تغيير K. N و
يتحكم حجم الكتلة في إجمالي كمية البيانات المكتوبة. اعتمادا على أنواع الأخطاء التي لديك
نتوقع، إعدادات مختلفة قد تكون أكثر أو أقل فائدة. على سبيل المثال، قد لا تتوقع ذلك
لديك قطاعين أو ثلاثة قطاعات سيئة في كل مسار (إذا قمت بذلك، فقد حان الوقت لاستبدال
قرص مرن!)، ولكن قد تتوقع وجود ثلاثة قطاعات تالفة على مسارين أو ثلاثة مسارات متجاورة
(أخطاء القرص المرن تميل إلى التجمع).
OPTIONS
-v اطبع رسائل إعلامية حول عملية التشفير أو فك التشفير ستدير,
بما في ذلك عامل التوسع. يستخدم -vv للحصول على معلومات حول كل كتلة يجري
قراءة أو كتابة.
-d فك تشفير الإدخال بدلاً من تشفيره. استخدام هذا الخيار يعادل
استدعاء البرنامج كما vdm_decode.
-b مقاس الكتله
اضبط حجم كتلة FEC على حجم البايتات. قد يحتوي حجم الكتلة على "k" أو "K"
تم إلحاقه، وفي هذه الحالة يتم ضبط حجم الكتلة على حجم الكتلة * 1024 بايت. هذا
يجب أن يكون عادةً مضاعفًا لكتلة وسائط الإخراج أو حجم القطاع (على سبيل المثال، 512،
1024، 18 كيلو بايت، وما إلى ذلك)، ويجب أن يكون 26 بايت على الأقل في الإصدار 1. الافتراضي 1024.
-n N -k K
قم بتعيين معلمات FEC N وK. يجب أن يكون N أكبر من 2 وأقل من أو يساوي
256. يجب أن يكون K أكبر من 0 وأقل من N. الافتراضي N=18، K=14.
لاحظ أن معلمات N وK وblocksize لا تتم كتابتها في الإخراج! يجب عليك أن
حدد ال نفسه المعلمات عند تشغيل وحدة فك التشفير. (في الواقع، جهاز فك التشفير قادر
من الكشف بشكل صريح عن قيمة K غير صالحة، ولكن حجم الكتلة أو قيم N غير الصحيحة سوف تفعل ذلك
يؤدي إلى كتل سيئة وفشل فك التشفير.)
وحدة فك التشفير قادرة على القراءة من الوسائط غير القابلة للبحث مثل الأنابيب، ومع ذلك، المخزن المؤقت
لم يتم الكشف عن underruns وسوف يؤدي إلى الفشل. أيضا، عند القراءة من الأنبوب
يجب قراءة الملف بأكمله. يمكن أن تكون القراءة من دفق يمكن البحث عنه أسرع لأن K فقط
يجب قراءة الكتل الجيدة من N.
يقوم برنامج التشفير بتخزين معرفات القطع والكتل التي يتم استخدامها لاكتشاف الكتل خارج الترتيب، ولكن
لا يتم تصحيح هذه الأخطاء (التي يمكن أن تحدث أحيانًا بسبب تلف نظام الملفات).
النوع الوحيد من الأخطاء الذي يمكن تصحيحه هو in مكان فساد البيانات. في
على وجه الخصوص، تؤدي الكتل المفقودة (كما هو الحال في الحزم المفقودة) إلى فشل فك التشفير، حتى عندما يكون K
كتل جيدة متاحة. يهدف هذا البرنامج في المقام الأول إلى استعادة البيانات المفقودة بسبب
قراءة الأخطاء الموجودة على الوسائط الثابتة مثل الأقراص المرنة؛ العديد من البرامج والمكتبات الأخرى
المتاحة التي تستخدم FEC لمعالجة الأخطاء الأخرى (حزمة الشبكة عادةً).
أمثلة
خذ بعين الاعتبار قرصًا مرنًا يحتوي على 80 مسارًا ورأسين و2 قطاعًا سعة 18 بايت لكل مسار (قياسي
قرص مرن 1.44 ميجابايت).
bzip2 <ملف | vdmfec > /dev/fd0
يستخدم المعلمات الافتراضية لـ -b1k -n18 -k14، ويخزن ما يصل إلى 1.1 ميجابايت تقريبًا من المدخلات المضغوطة
البيانات، وكتابة مسار واحد (على الوجهين) (18 كيلو بايت) في المرة الواحدة، ويسمح بـ 4 مجموعات سيئة (8
القطاعات) لكل مسار.
vdmfec -d /dev/fd0 | بونزيب2> ملف
يستعيد الملف الأصلي.
vdm_encode -b18k -n80 -k70 file.img > /dev/fd0
يكتب القرص المرن بأكمله، ويخزن ما يصل إلى 1.23 ميجابايت من البيانات، ويسمح بأخطاء متعددة في 10
مسارات مختلفة على الوجهين.
vdm_decode -b18k -n80 -k70 /dev/fd0 > file.img
يستعيد البيانات ويقرأ ما لا يقل عن 70 مسارًا. لاحظ أن vdm_decode يخرج بـ
حالة غير صفرية عند الفشل، بحيث تكون الإنشاءات مثل
vdm_decode /dev/fd0 > moo && tar -xvf moo
ممكنة.
dd if=/dev/tape ibs=1024 conv=noerror,sync | \
vdm_decode> ملف
قد يكون ذلك ضروريًا لاستعادة البيانات من بعض الوسائط غير القابلة للبحث عنها. يمكنك بالطبع
ما عليك سوى كتابة الإخراج المشفر إلى ملف عادي، كما في
القطران -cf - دير | غزيب | vdm_encode -v > dir.tgz.vdm
التبليغ بق
الإبلاغ عن الأخطاء إلى توم هولرويد[البريد الإلكتروني محمي]>.
استخدم vdmfec عبر الإنترنت باستخدام خدمات onworks.net