fsck ดิสก์อย่างจริงจังก่อนการติดตั้ง


12

ฉันมีเครื่อง HP Athlon เครื่องเก่าที่ฉันใช้สำหรับทดสอบซอฟต์แวร์ภายใต้โปรเซสเซอร์เก่า เรามีสีน้ำตาลเข้มที่พบบ่อยและหลังจากดิสก์ตัวสุดท้ายดิสก์รก มันแย่มากที่ฉันไม่สามารถวิ่งfsckและส่งปัญหาทั้งหมดได้ ฉันติดตั้งระบบปฏิบัติการใหม่ แต่ฉันยังคงได้รับการfsckร้องเรียน

ฉันต้องการลองอีกครั้งเพื่อโหลด Linux ซ้ำอีกครั้งก่อนที่จะกล่าวโทษฮาร์ดไดรฟ์หรือเครื่อง หลังจากสร้างระบบไฟล์แล้ว แต่ก่อนการติดตั้งจะเกิดขึ้นฉันต้องการfsckดำเนินการเชิงรุกเพื่อทำเครื่องหมายบล็อกผู้ต้องสงสัยว่าไม่ดี

ดิสก์มีขนาดใหญ่ (ประมาณ 500 GB) และ Debian 8 distro มีขนาดค่อนข้างเล็ก (โดยปกติ 8-12 GB จะมากเกินพอ) ดังนั้นฉันจึงไม่สนใจว่าบล็อกที่ดีจะมีเครื่องหมายที่ไม่ดี ฉันชอบติดตั้ง GUI แต่ฉันไม่ได้แต่งงานกับมัน

ฉันมีสองคำถาม:

  1. Debian 8 มีตัวเลือกให้ดำเนินการfsckก่อนการติดตั้งระบบฐานหรือไม่? ถ้าใช่มันอยู่ที่ไหน ถ้าไม่เช่นนั้นกระบวนการคืออะไร?

  2. ไม่fsckได้มีการตั้งค่าเพื่อควบคุมวิธีการอุกอาจบล็อกถูกทำเครื่องหมายว่าไม่ดี? ถ้าเป็นเช่นนั้นมันคืออะไร? ถ้าไม่เช่นนั้นจะสามารถใช้อะไรได้บ้าง


แก้ไข : เครื่องเป็น HP5850 เข้าสู่ไบออสนำทางไปยังที่เก็บข้อมูลจากนั้นระบบป้องกันการขับขี่ (DPS) การทดสอบตัวเองส่งผลให้ DPS แนะนำให้เปลี่ยนไดรฟ์ DPS ไม่ได้จัดทำสถิติใด ๆ ดังนั้นฉันไม่แน่ใจว่าขอบเขตของความเสียหาย

เมื่อพิจารณาถึงฉันสามารถซื้อไดรฟ์ SATA II ใหม่ [เก่า] ในราคา $ 12 USD ฉันจะแทนที่มัน ไม่มีความรู้สึกในการเสียเวลาหรือพลังงานกับมัน


การอ้างอิงที่เกี่ยวข้องมีดังนี้ ดูเหมือนว่าจะไม่มีคำถาม


ทำไมไม่SpinRite ?
Peter Mortensen

หากคุณมีบล็อกที่ไม่ดีเลยไดรฟ์ทั้งหมดล้มเหลวทางกายภาพและไม่ควรใช้
chrylis -on strike-

2
"ดิสก์ fsck เลยเถิด" ดูสกปรกมาก ...
A. Mirabeau

คำตอบ:


19
  1. "Debian 8 มีตัวเลือกให้ทำการ fsck ก่อนติดตั้งระบบฐานหรือไม่ถ้าใช่มันอยู่ที่ไหนถ้าไม่เช่นนั้นกระบวนการคืออะไร"

    ให้ดาวน์โหลดและเขียนซีดี GPartEd ก่อน (หรือเขียนลงในไดรฟ์หัวแม่มือ) ก่อนที่จะใช้ติดตั้งบูตGPartEdและพาร์ทิชันดิสก์ที่ชื่นชอบและการทำงานของคุณfsckหรือใช้เพียงbadblocksที่มีความยาว

    เมื่อคุณเรียกใช้ตัวติดตั้ง Debian เพียงบอกวิธีใช้พาร์ติชันที่มี ตัวติดตั้งไม่จำเป็นต้องสร้างพาร์ติชั่นของตัวเอง มีความสุขที่จะใช้พาร์ทิชันที่มีอยู่อย่างสมบูรณ์

  2. "fsck มีการตั้งค่าเพื่อควบคุมวิธีการบล็อกอย่างจริงจังว่ามีการทำเครื่องหมายว่าไม่ดีหรือไม่ถ้าใช่มันคืออะไรถ้าไม่คุณสามารถใช้อะไรได้บ้าง"

    -cตัวเลือกที่จะe2fsckทำให้เกิดการเรียกใช้badblocksโปรแกรมเพื่อสแกนหาบล็อกเสีย คุณสามารถเรียกใช้ badblock ได้โดยตรงเช่นกัน โดยค่าเริ่มต้นbadblocksจะทำการทดสอบแบบอ่านอย่างเดียว เพื่อก้าวร้าวมากขึ้นคุณสามารถระบุ-nสำหรับการทดสอบการอ่าน - เขียนแบบไม่ทำลาย นอกจากนี้คุณยังสามารถตั้งค่า-pตัวเลือกเพื่อเพิ่มจำนวนรอบที่ทำ

    คุณอาจต้องการเรียกใช้badblocksก่อนที่จะแบ่งพาร์ติชัน ด้วยวิธีนี้คุณสามารถระบุการ-wทดสอบแบบเขียนอย่างเดียวได้เร็วขึ้น


1
John, +1, อยากรู้อยากเห็นbadblocksมีวิธีการใดที่จะทำเครื่องหมายในระดับฮาร์ดแวร์หรือเพียงแค่ในระดับ FS?
heemayl

3
@ heemayl ความเข้าใจของฉันคือว่าในฮาร์ดดิสก์ที่ทันสมัยเฟิร์มแวร์ของฮาร์ดดิสก์พยายามที่จะจัดการบล็อกที่ไม่ดีของตัวเองทั้งหมด วัตถุประสงค์ของการทำงานbadblocksคือเพื่อบังคับให้ฮาร์ดดิสก์อ่าน / เขียนทุกส่วน ฮาร์ดดิสก์ทำการตรวจจับและทำการแมปเซกเตอร์เสียใหม่และหากทุกอย่างทำงานได้ตามที่ควรbadblocksโปรแกรมจะไม่แจ้งให้ทราบว่าฮาร์ดดิสก์กำลังทำเช่นนี้
John1024

hmmm..understandable ดังนั้นในสาระสำคัญ fsck สามารถทำเครื่องหมายบล็อกบน FS แต่ badblocks เพียงแค่ช่วยเฟิร์มแวร์ดิสก์เพื่อทำเครื่องหมายไม่ใช่ทำสิ่งใดด้วยตนเอง
heemayl

3
@heemayl ในสมัยก่อนbadblocksจะคายรายการของเซกเตอร์เสียและระบบไฟล์จะจดบันทึกพวกเขา ในยุคปัจจุบันbadblocks และ FS ยังคงพยายามทำเช่นนั้น แต่ด้วย HD ที่ทันสมัยรายการมักจะว่างเปล่า
John1024

1
@ heemayl และหากรายการไม่ว่างดิสก์มักจะเสียอย่างรุนแรงว่าตัวเลือกที่ดีที่สุดของคุณคือการแทนที่
ทำเครื่องหมาย

7

หากคุณได้รับข้อผิดพลาด fsck ซึ่งบ่อยครั้งที่ไดรฟ์อาจมีอาการไอเป็นเลือด แม้ว่าคุณจะทำเครื่องหมายบล็อกที่ไม่ดีทุกบล็อกว่าไม่ดีมันจะไม่นานก่อนที่บล็อกเพิ่มเติมจะไม่ดี ฉันคิดว่าคุณสามารถเปลี่ยนเป็น tty อื่นเพื่อทำ fsck หากคุณต้องการจริงๆ (Ctrl + alt + F2 เพื่อเปลี่ยนเป็น tty2) แต่ฉันไม่สามารถเน้นได้มากพอว่าคุณต้องการฮาร์ดไดรฟ์ใหม่ถ้าคุณพูดอะไร ถูกต้อง


"หากคุณได้รับข้อผิดพลาด fsck ที่มักจะ ... " - สิ่งที่ฉันไม่แน่ใจคือเป็นfsckปัญหาเพียงไม่กี่ครั้งหลังจากที่ติดตั้งอีกครั้งในระดับของปัญหาหรือเป็นส่วนท้ายของภูเขาน้ำแข็ง บูทระบบพบข้อผิดพลาดของระบบไฟล์เล็กน้อย (4 หรือ 6) กู้คืนโดยการเมาท์ใหม่เป็นแบบอ่านอย่างเดียวจากนั้นบู๊ต

@ jww คุณช่วยกรุณาโพสต์ตัวอย่างที่แน่นอนของข้อผิดพลาดของระบบไฟล์ที่กล่าวมาได้ไหม?
John Leuenhagen

ทำไมจึงเปลี่ยนเป็น tty อื่น? ข้อได้เปรียบอะไรบ้างที่มีให้
fpmurphy

@ fpmurphy1 ฟังดูเหมือนว่าเขาไม่สามารถเปิดหน้าต่างเทอร์มินัลได้ดังนั้นการเปลี่ยนไปใช้ tty อื่นจะเป็นวิธีที่ดีที่สุดในการเข้าสู่เชลล์
John Leuenhagen

@ jww: มีการรายงานบล็อกเดียวกันทุกครั้งหรือมีรายงานชุดใหม่ในการบู๊ตแต่ละครั้งหรือไม่
TMN

5
  1. ไม่และฉันไม่คิดว่ามันจะคุ้มค่า Fsck (ตามที่นำมาใช้โดยระบบไฟล์ส่วนใหญ่) ไม่ได้ตรวจสอบไดรฟ์ของคุณ ตรวจสอบเมตาดาต้าระบบไฟล์และตรวจสอบให้แน่ใจว่ามุมมองสอดคล้องกันเมื่อคุณเมานต์ มันไม่สมเหตุสมผลเลยที่จะทำก่อนการติดตั้งเพราะตามคำนิยามคุณจะมีพื้นที่ว่างเท่านั้น

  2. ใช้แบดบล็อคแทน หากคุณต้องการแน่ใจว่าข้อมูลของคุณไม่เน่าให้ใช้ระบบไฟล์ที่รองรับการขัดถู Lvm เองก็สามารถทำได้เช่นกัน


3

ในการตรวจสอบดิสก์ที่ทันสมัยเพื่อความน่าเชื่อถือลองใช้การทดสอบในตัว คุณสามารถทริกเกอร์มันด้วยยูทิลิตี้ smartctl เช่น:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

หากคุณต้องการให้แน่ใจก่อนว่าทุกอย่างได้รับการเขียนเมื่อเร็ว ๆ นี้เพื่อค้นหาภาคที่จะไม่เขียนอย่างถูกต้องคุณสามารถเขียนทับสื่อทั้งหมดด้วยสิ่งเช่น dd จาก / dev / urandom หรือฉีกกับหนึ่งในการสุ่ม ตัวเลือก.


3
ทราบว่าddจาก/dev/randomจะใช้เวลาหลายวันกว่าจะเสร็จสมบูรณ์ในไดรฟ์ 500GB
Dmitry Grigoryev

1
พิมพ์ผิดคงที่ขอบคุณ :) ไม่ต้องการสะกดไวยากรณ์ dd ที่แน่นอนเนื่องจากฉันต้องการหลีกเลี่ยงการมีบรรทัดคำสั่งรอบนั้นถ้าวางโดยไม่ตั้งใจลงในเปลือกจะทำให้ข้อมูลสูญหายไม่สามารถกู้คืนได้อย่างแท้จริง
rackandboneman

แต่น่าเสียดายที่ Debian ไม่ปรากฏขึ้นเพื่อให้:smartctl E: Unable to locate package smartctlมันเป็นยูทิลิตี้ Red Hat / Fedora หรือไม่?

แพ็คเกจเดเบียน / อูบุนตูเป็น smartmontools BTW ใช้การค้นหา apt-cache เพื่อค้นหาแพ็คเกจที่มีบางอย่าง
rackandboneman

2

ฉันขอแนะนำให้ใช้ซอฟต์แวร์ฟอร์แมตระดับต่ำของผู้ผลิต (ถ้ามี) ซึ่งอาจทำงานบน Windows (หรือหากคุณโชคดีจากแผ่น CD / DVD / USB ที่สามารถบู๊ตได้ซึ่งคุณต้องการดาวน์โหลดภาพจากเว็บไซต์ของพวกเขา) . หากคุณมีการควบคุมที่เพียงพอในการดำเนินการเพื่อลดความจุรายงานของไดรฟ์เพื่อแลกกับพูลเซกเตอร์สำรองที่ใหญ่กว่ามากคุณควรทำเช่นนั้นเพื่อคาดการณ์ว่าอะไหล่เหล่านั้นจะถูกทดแทนในขณะที่คุณทดสอบไดรฟ์ตามที่ @rackandboneman . ดีกว่าที่จะมีไดรฟ์ 400- หรือ 450-GB ที่มีเซกเตอร์เสียทั้งหมดเปลี่ยนเป็นอะไหล่และเหลือมากขึ้นสำหรับข้อบกพร่องในอนาคตมากกว่าที่จะหมดพูลสำรองและมีเซกเตอร์เสียในอนาคตที่ไม่สามารถทำการแมปใหม่ได้อย่างโปร่งใส


ฉันสามารถเรียกใช้SeaTools สำหรับ DOSได้ SeaTools รายงานว่า SMART ไม่ได้กระตุ้นซึ่งดูเหมือนผิดปกติ การทดสอบที่ยาวนานและการทดสอบสั้น ๆล้มเหลวทันที ฉันปรับขนาดดิสก์ลงเหลือ 32 GB จากนั้นลองทดสอบอีกครั้ง SeaTools พบ LBA ที่ไม่ดี 4 ตัวรอบเครื่องหมาย 1190000 และซ่อมแซมพวกเขา การติดตั้งระบบปฏิบัติการใหม่นั้นสมบูรณ์แบบ และการเรียบที่ตามมาก็ไม่มีปัญหา ตั้งแต่ฉันซื้อไดรฟ์ SATA II มาทดแทนฉันจะเก็บมันไว้เป็นอะไหล่ที่ร้อนถ้าไดรฟ์ที่มีอยู่ทำงานผิดปกติ

@ jww น่าเสียดายที่คุณยอมรับคำตอบอื่นแล้ว
Monty Harder

ใช่มันเป็นกับคำถามและคำตอบกับดัก ... ฉันต้องถามคำถามเฉพาะเพื่อให้ได้คำตอบที่แม่นยำ ถ้าฉันจะถามว่า "ฉันจะติดตั้ง Linux บนฮาร์ดไดรฟ์ที่ล้มเหลวได้อย่างไร" ดังนั้นคำถามอาจจะถูกปิด

0

บางสิ่งพื้นฐานถ้าคุณไม่มีเครื่องมือที่นักเล่นชื่นชอบ (เช่นดิสก์ USB และ SMART ใช้งานไม่ได้):

dd if=/dev/sdX of=/dev/null bs=1M

จะอ่านดิสก์ทั้งหมด คุณจะเห็นในdmesgบันทึกหากมีภาคที่ไม่สามารถอ่านได้ แม้ว่ามันจะไม่บอกคุณว่ามันสามารถอ่านได้หลังจากลองใหม่ มันไม่ดีเท่าbadblocksแต่ฉันพูดถึงมันสำหรับความแพร่หลาย

หากคุณมีเซ็กเตอร์ที่แย่และคุณไม่ต้องการอะไรในแผ่นดิสก์:

dd if=/dev/zero of=/dev/sdX bs=1M

จะทำให้บล็อกทั้งหมดถูกเขียนใหม่ หากมีส่วนที่ไม่สามารถอ่านได้ควรทำให้ส่วนเหล่านั้นสลับกับส่วนต่างๆในกลุ่มที่จัดสรรใหม่และใช้งานได้อีกครั้ง

หากคุณมีแผ่นดิสก์ที่มีการจัดสรรใหม่เกิดขึ้นแสดงว่าแผ่นดิสก์กำลังจะหมด ฉันจะไม่ใช้มันเพื่ออะไรที่สำคัญ แต่บางครั้งคุณมีข้อมูลที่คุณไม่สนใจและมันก็โอเค

หากเป็น SSD สิ่งต่าง ๆ และสิ่งเหล่านี้ใช้ไม่ได้

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