سؤال

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

المشكلة هي أنه عند قراءة الوسائط الخاطئة، يكون وقت القراءة طويلًا جدًا، لأن الأجهزة تميل إلى إعادة المحاولة عدة مرات.

السؤال هو:كيف يمكنني التحكم في عدد مرات إعادة المحاولة (أي الضبط على عدم إعادة المحاولة أو محاولة واحدة فقط)؟بعض استدعاء النظام؟مكتبة يمكنني تحميلها؟هل يجب علي العمل على طبقة SCSI؟

يتعلق السؤال أساسًا بنظام Linux، ولكن أي مؤشرات Win32 ستكون موضع ترحيب أيضًا.

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

المحلول

man readom, ، البرنامج الذي يأتي مع cdrecord:

   -noerror
          Do not abort if the high level error checking in readom found an
          uncorrectable error in the data stream.

   -nocorr
          Switch  the  drive  into  a mode where it ignores read errors in
          data sectors that are a result of uncorrectable  ECC/EDC  errors
          before reading.  If readom completes, the error recovery mode of
          the drive is switched back to the remembered old mode.
   ...

   retries=#
          Set the retry count for high level retries in readom to #.   The
          default  is  to do 128 retries which may be too much if you like
          to read a CD with many unreadable sectors.

نصائح أخرى

أفضل أداة متاحة هي dd_rhelp.فقط

dd_rhelp /dev/cdrecorder /home/myself/DVD.img

تناول كوبًا من الشاي وشاهد الرسومات الجميلة.

معلومات حزمة dd_rhelp rpm:

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

يمكنك Ctrl-C ذلك كلما أردت ، وإعادة تشغيلها في الإرادة ، يستأنف DD_RHELP المهمة لأنها تعتمد على ملفات السجل DD_RESCUE.بالإضافة إلى ذلك ، يتم عرض التقدم في صورة ASCII لجهازك الذي يتم إنقاذه.

لقد استخدمته كثيرًا بنفسي وهو واقعي جدًا.

يمكنك تثبيته من DAG إلى Red Hat مثل التوزيعات.

أثناء التحقق مما إذا كان hdparm يمكن تعديل عدد مرات إعادة المحاولة (لا يبدو الأمر كذلك)، اعتقدت أنه اعتمادًا على نوع الخطأ، قد يؤدي خفض سرعة القرص المضغوط إلى تقليل عدد أخطاء القراءة، مما قد يؤدي في الواقع إلى زيادة متوسط ​​سرعة القراءة.ومع ذلك، إذا كانت بعض القطاعات غير قابلة للقراءة تمامًا، فإن تقليل سرعة القرص المضغوط لن يساعد.

منذ أن تم اقتراح dd، يجب أن أشير إلى أنني أعرف بوجوده واستخدمت sg_dd، لكن سؤالي لم يكن حول الأوامر (1) أو (1m)، ولكن حول استدعاءات النظام (2) أو المكتبات (3).

يحرر

أداة مساعدة أخرى لسطر أوامر Linux وهي sdparm.يبدو أن العلامة التالية تعمل على تعطيل إعادة محاولة الأجهزة:

sudo sdparm --set=RRC=0 /dev/sr0

أين /dev/sr0 هو جهاز محرك الأقراص الضوئية في حالتي.

نظرًا لأنك تسأل عن الوصول إلى مستوى برنامج التشغيل، فيجب عليك النظر في أوامر SCSI، أو ربما ASPI مثل API.على نظام التشغيل Windows، قام برنامج VSO (مطورو برنامج Blindread/Blindwrite أدناه) بتطوير واجهة برمجة تطبيقات أفضل بكثير، وهي Patin-Couffin، التي توفر وصولاً مقفلاً على مستوى منخفض:

http://en.wikipedia.org/wiki/Patin-Couffin

هذا قد يجعلك تبدأ.ومع ذلك، في نهاية المطاف، يتم ربط محرك الأقراص بأوامر SCSI، حتى لو كانت بالفعل USB أو SATA أو ATA أو IDE أو غير ذلك.يمكنك أيضًا البحث عن المصطلحات المتعلقة بـ ATAPI، والتي كانت إحدى المواصفات الأولى لواجهة طبقة SCSI للأقراص المضغوطة.

سأكون مندهشًا إذا لم تتمكن من العثور على مكتبة Linux مناسبة أو مثال للتعامل مع أوامر المستوى الأدنى باستخدام مصطلحات ومفاهيم البحث المذكورة أعلاه.


الإجابة الأقدم:

القراءة العمياء/الكتابة العمياء تم تطويره في ذروة مخططات حماية الأقراص المضغوطة التي غالبًا ما تستخدم قطاعات سيئة عن عمد أو معلومات خطأ للتحقق من القرص المضغوط الأصلي.

سيسمح لك بتعيين عدد كبير من المعلمات، بما في ذلك إعادة المحاولة.ضع في اعتبارك أن محرك الأقراص المضغوطة نفسه يحدد عدد مرات إعادة المحاولة، ولست متأكدًا من أن هذا يمكن ضبطه عبر برنامج للعديد من محركات الأقراص المضغوطة (معظمها؟).

يمكنك نسخ القرص إلى تنسيق ISO، وتجاهل الأخطاء، ثم استخدام أدوات ISO المساعدة لقراءة البيانات.

-آدم

نلقي نظرة على ASPI واجهه المستخدم.متاح على كل من ويندوز ولينكس.

dd(1) هو صديقك.

dd if=/dev/cdrom of=image bs=2352 conv=noerror,notrunc

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

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