md5sums ไม่ถูกต้องในไฟล์ที่ดาวน์โหลด


2

ฉันมีเซิร์ฟเวอร์ Linux linux 10.04.1 LTS ซึ่งกำลังพบปัญหาแปลก ๆ ... ฉันพยายามดาวน์โหลด 440 MB tgz เก็บถาวรผ่าน HTTP โดยใช้ wget และเมื่อขยายด้วย tar -xzf filename.tgz ฉันได้รับ:

gzip: stdin: invalid compressed data--crc error

การค้นหาคี่นี้ฉันเปลี่ยนชื่อไฟล์ filename-bad.tgz และดาวน์โหลดอีกครั้ง ฉันได้รับข้อผิดพลาดเดียวกันในการดาวน์โหลดครั้งที่สอง ... เว็บไซต์ที่แสดงรายการไฟล์ตรวจสอบ md5 สำหรับไฟล์ดังนั้นฉันจึงตรวจสอบทั้งสองครั้งเพื่อดาวน์โหลดเพื่อดูว่าไฟล์นี้อาจเสียหายหรือไม่

ไฟล์สองไฟล์มี checksums ที่แตกต่างกัน!

ดังนั้นฉันจึงดาวน์โหลดไฟล์นี้ไปยังเวิร์กสเตชันในพื้นที่ของฉันและรัน md5sum บนนั้น เวลานี้การตรวจสอบ MD5 นั้นถูกต้องและไฟล์ถูกดึงออกมาอย่างถูกต้อง ดังนั้นฉันจึงคัดลอกไฟล์จากเวิร์กสเตชันของฉันไปยังเซิร์ฟเวอร์และรัน md5sum ในสำเนานั้น มันเป็น md5sum ใหม่แตกต่างจาก md5sum ที่ถูกต้องและแตกต่างจากการลองอีกสองครั้ง!

นี่คือรายละเอียดของเซิร์ฟเวอร์:

  • Intel (R) Core (TM) i5 CPU (Dual Core)
  • RAM 8GB
  • ซอฟต์แวร์ RAID5 array โดยใช้อุปกรณ์ linux md และไดรฟ์ SATA 1TB 3 ตัว
  • การ์ดอีเธอร์เน็ต 2 ใบเชื่อมต่อกับเครือข่ายสองเครือข่ายในสำนักงานของเรา (เครือข่ายต่อสายและไร้สาย)

ฉันสงสัยว่าอาจมีอาร์เรย์ RAID เสื่อมสภาพ / ทำงานผิดปกติดังนั้นฉันจึงวิ่ง mdadm --detail และมันรายงานว่ารัฐเป็น clean และไดรฟ์ทั้งหมดอยู่ใน active sync. เพื่อทดสอบเพิ่มเติมฉันคัดลอกไฟล์ 1GB จากการ์ด SD ไปยังอาร์เรย์ RAID และ md5sum ของไฟล์นั้นได้รับการตรวจสอบ

เกิดอะไรขึ้น?

แก้ไข: ผลผลิตของ cmp -l ตามที่ขอ:

324268145 115 105
324268657 274 264
324269297 332 322
324270577 345 344
324270833 155 154

EDIT2 : ฉันเพิ่งรู้ว่าหนึ่งในสำเนาที่ฉันมีจริงมีการตรวจสอบ MD5 ที่ถูกต้องดังนั้นฉันจึงคัดลอกไฟล์จากเครื่องท้องถิ่นของฉันอีกสองครั้งและทั้งสองครั้งที่การตรวจสอบถูกต้อง! ดังนั้นการทดสอบเพิ่มเติมอีกเล็กน้อยอยู่ในลำดับที่นี่ ...

edit3 : ตอนนี้ฉันไม่สามารถทำซ้ำปัญหานี้ได้ ซึ่งฟังดูเหมือน RAM ไม่ดีสำหรับฉัน จะเรียกใช้ memtest คืนนี้ความคิดอื่น ๆ ยินดี!

EDIT4 : ตกลง. ตอนนี้มันแปลก ปัญหานี้สามารถทำซ้ำได้ 100% เมื่อคัดลอกไฟล์ไปยังเครื่องเสมือน VMWare เฉพาะที่ทำงานบนเซิร์ฟเวอร์ ถ้าฉันคัดลอกไฟล์ไปยังเครื่องเสมือนนั้นบางครั้งถ้าฉันคัดลอกไฟล์ไปยังโฮสต์ทันทีปัญหานั้นสามารถทำซ้ำได้ scp บางครั้งก็พูดเช่นนี้เมื่อคัดลอกไปยังเครื่องเสมือน:

Received disconnect from 10.1.0.73: 2: Packet corrupt

สิ่งเหล่านี้ดูเหมือนว่าฉันจะเป็นร่องรอยของ RAM ที่ไม่ดี ทุกคนเห็นพ้องไหม? คำอธิบายอื่น ๆ ที่เป็นไปได้?

EDIT5: แก้ไขแล้ว . Gee สิ่งที่บนโลกอาจทำให้เกิดปัญหานี้? ฉันไม่เข้าใจ .... :-)

2436 Errors! All Right!

(ฉันทดสอบ RAM บนระบบนี้ทันทีหลังจากที่ฉันซื้อมันซึ่งเป็นสองสามเดือนที่ผ่านมา ... โอ้ดีดูเหมือนว่าถึงเวลาแล้วที่จะโทรหา Dell ... )


ฉันโพสต์สิ่งนี้บน SuperUser เมื่อเทียบกับ ServerFault เนื่องจากเป็นฮาร์ดแวร์ระดับผู้บริโภคและเป็นเซิร์ฟเวอร์สำนักงานขนาดเล็กเมื่อเทียบกับเซิร์ฟเวอร์ที่ใช้งานจริง และมันใช้ ซอฟต์แวร์ RAID แต่อาจจะเป็นสถานที่ที่ดีกว่าสำหรับเอสเอฟไม่แน่ใจ!
Josh

1
ดูเหมือนว่ามีบางอย่างที่เกี่ยวข้องกับเซิร์ฟเวอร์เนื่องจากไฟล์ดูเหมือนว่าจะได้รับความเสียหายทุกครั้งที่คุณถ่ายโอนไปยังเซิร์ฟเวอร์จากเดสก์ท็อปหรือแหล่งดาวน์โหลด
David Z

2
ฉันเดาว่าครั้งแรกจะเป็นแรม คุณจำได้ไหม? คุณเปลี่ยน ram เพื่อทดสอบได้หรือไม่
matthias krull

คำตอบ:


2

ไฟล์สองไฟล์มีขนาดเท่ากันหรือไม่ หากไม่มีไฟล์ใดไฟล์หนึ่งอาจถูกตัดทอน

หากคุณใช้ FTP เพื่อถ่ายโอนไฟล์ไคลเอนต์บางคนสันนิษฐานว่าเป็นไฟล์ข้อความโดยค่าเริ่มต้นและจะต้องแจ้งให้เข้าสู่โหมดไบนารีมิเช่นนั้นจะคล้ำ ^M และ ^J. นี่เคยเป็นแหล่งสำคัญของไฟล์ที่เสียหาย แต่เป็นสิ่งที่หายากในปัจจุบัน

แพ็กเก็ต TCP มีการตรวจสอบแบบ 16 บิต นั่นหมายความว่าข้อผิดพลาดใน 65536 จะไม่ถูกตรวจจับดังนั้นข้อผิดพลาดในการส่งจึงอยู่ในขอบเขตของความเป็นไปได้

แม้ว่าจะไม่มีความเป็นไปได้ที่จะอธิบายค่า md5sum ตัวที่สามได้

ลองเปรียบเทียบไฟล์ (เช่นกับ cmp -l ) และดูว่ามีรูปแบบความแตกต่าง หากคุณเห็นว่าความแตกต่างนั้นมักจะอยู่ในตำแหน่งบิตบางอย่าง (เช่นบิตที่สำคัญที่สุดเสมอของตำแหน่งไบต์ของฟอร์ม 8 * n + 3) มักจะเป็นสัญญาณว่า RAM ของคุณมีข้อบกพร่อง โดยทั่วไปในกรณีที่ข้อมูลเสียหายไม่สามารถอธิบายได้ด้วยซอฟต์แวร์หรือการส่งผ่านเครือข่าย RAM เป็นที่แรกที่จะมอง


ฉันไม่ได้ใช้ FTP ... ขนาดไฟล์เท่ากันดังนั้นจึงต้องเกิดความเสียหายที่ไหนสักแห่ง ฉันเริ่มสงสัย RAM ไม่ดีเช่นกัน
Josh

หวังว่าฉันจะเพิ่ม plusses เพิ่มเติม
Dave

"ฉันเกรงว่าฉันจะให้คุณทำแบบนั้นไม่ได้ @Dave ... "
Josh

ตอนนี้ฉันไม่สามารถทำซ้ำปัญหานี้ได้หมายความว่า RAM ที่ไม่ดีเป็นผู้ร้ายที่น่าจะเป็นไปได้มาก จะรัน memtest คืนนี้และถ้า RAM ไม่ดีคำตอบของคุณจะได้รับการยอมรับ!
Josh

0

หากคุณกำลังถ่ายโอนโดยใช้ FTP ใช้การถ่ายโอนโหมดไบนารี มิฉะนั้นการยุติบรรทัดใด ๆ ในไฟล์จะถูกจัดการ Windows ไม่จำเป็นต้องทำการรวมตัวยุติบรรทัดในโหมดข้อความ


ฉันกำลังถ่ายโอนโดยใช้ HTTP (ผ่าน wget) และ SFTP (ssh) ไม่มี FTP เกี่ยวข้อง
Josh

0

เพื่อเป็นการตรวจสอบอย่างรวดเร็วหากคุณถ่ายโอนไฟล์โดยใช้ sneakernet (เช่นวางไว้ในแฟลชไดรฟ์แล้วเดินไปเรื่อย ๆ ) ใช้งานได้หรือไม่


ฉันจะลองดูด้วยไฟล์เฉพาะนี้ ไฟล์อื่นที่คัดลอกมาจากการ์ด SD นั้นใช้ได้ นี่ต้องเป็นปัญหาเครือข่ายหรืออย่างที่บางคนบอกว่าเป็นปัญหา RAM
Josh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.