ฉันสงสัยว่าอาจมีเซ็กเตอร์ที่ไม่ดีบนดิสก์ ฉันใช้ระบบไฟล์ ext3
เครื่องมือใดเทียบเท่ากับเครื่องมือตรวจสอบข้อผิดพลาดที่ดีที่สุดของ Windows
ฉันสงสัยว่าอาจมีเซ็กเตอร์ที่ไม่ดีบนดิสก์ ฉันใช้ระบบไฟล์ ext3
เครื่องมือใดเทียบเท่ากับเครื่องมือตรวจสอบข้อผิดพลาดที่ดีที่สุดของ Windows
คำตอบ:
ในการตรวจสอบเซกเตอร์ที่ไม่ดีตรวจสอบข้อมูล SMART ซึ่งอาจเป็นการเข้าถึงที่ดีที่สุดโดยการเรียกใช้ยูทิลิตีDisks ( Palimpsest ) แม้ว่าคุณจะไม่เห็นบล็อกที่ไม่ดีที่นั่นให้เปิดการทดสอบตัวเองเพื่อให้แน่ใจ
โปรแกรมรวมอยู่ในgnome-disk-utility
แพ็คเกจ วิ่งgksudo gnome-disks
หรือใน Ubuntu รุ่น 16.04 (3.18):
คุณยังสามารถใช้ badblocks
sudo badblocks -sv /dev/sda
เพื่อตรวจสอบหรือตรวจสอบและแก้ไขก่อนเขียนผลลัพธ์ไปยังไฟล์ชั่วคราว:
sudo badblocks -sv /dev/sda > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1
จะตรวจสอบทั้งดิสก์และพิมพ์ออกมาบล็อกเสียทั้งหมดที่พบใน/ dev / SDA
จากbadblocks
คู่มือ:
หมายเหตุสำคัญ:หากเอาต์พุตของ badblock จะถูกป้อนเข้าสู่โปรแกรม e2fsck หรือ mke2fs สิ่งสำคัญคือขนาดบล็อกถูกระบุอย่างเหมาะสมเนื่องจากหมายเลขบล็อกที่สร้างขึ้นนั้นขึ้นอยู่กับขนาดบล็อกที่ใช้โดยระบบไฟล์ . ด้วยเหตุผลนี้ขอแนะนำอย่างยิ่งให้ผู้ใช้ไม่ได้รัน badblocks โดยตรง แต่ควรใช้ตัวเลือก -c ของโปรแกรม e2fsck และ mke2fs
fsck
fsck
ตัวมันเองจะไม่ช่วยคุณหาเซกเตอร์ที่ไม่ดีแย่ลงไปอีกถ้าหากมีเซกเตอร์ที่ไม่ดีมากมายมันสามารถทำลายข้อมูลของคุณได้มากกว่าเดิม ใช้มันเฉพาะเมื่อดิสก์มีสุขภาพดี
/dev/sdc
ตลอดคำตอบนี้ฉันจะสมมติว่าไดรฟ์จัดเก็บข้อมูลจะปรากฏเป็นอุปกรณ์ป้องกันที่เส้นทาง ในการค้นหาเส้นทางของไดรฟ์เก็บข้อมูลในการตั้งค่าปัจจุบันของเราให้ใช้:
palimpsest
) หากมี GUI อยู่หรือlsblk
และls -l /dev/disk/by-id
และพยายามค้นหาอุปกรณ์ที่เหมาะสมตามขนาดการแบ่งพาร์ติชันผู้ผลิตและชื่อรุ่นบางครั้งสื่อจัดเก็บข้อมูลก็ไม่ยอมทำงานเลย มันยังคงปรากฏเป็นอุปกรณ์บล็อกของเคอร์เนลและในตัวจัดการดิสก์ แต่ภาคแรกที่ถือครองตารางพาร์ติชันไม่สามารถอ่านได้ สิ่งนี้สามารถตรวจสอบได้อย่างง่ายดายด้วย:
sudo dd if=/dev/sdc of=/dev/null count=1
หากคำสั่งนี้ส่งผลให้มีข้อความเกี่ยวกับ "ข้อผิดพลาดอินพุต / เอาต์พุต" แสดงว่าไดรฟ์ของเราเสียหรือไม่เช่นนั้นจะไม่สามารถโต้ตอบกับเคอร์เนล Linux ได้ตามที่คาดไว้ ในกรณีก่อนหน้านี้มีโชคเล็กน้อยผู้เชี่ยวชาญด้านการกู้คืนข้อมูลพร้อมห้องปฏิบัติการที่มีอุปกรณ์ครบครันสามารถกู้เนื้อหาได้ ในกรณีหลังระบบปฏิบัติการที่แตกต่างมีค่าลอง (ฉันเจอไดรฟ์ USB ที่ทำงานบน Windows โดยไม่มีไดรเวอร์พิเศษ แต่ไม่ใช่ใน Linux หรือ OS X)
อุปกรณ์ที่รองรับสามารถสอบถามเกี่ยวกับสุขภาพของพวกเขาผ่านทางSMARTหรือได้รับคำสั่งให้ทำการทดสอบด้วยตนเองอย่างสมบูรณ์ด้วยความละเอียดที่แตกต่างกัน นี่เป็นตัวเลือกที่ดีที่สุด แต่โดยทั่วไปจะมีเฉพาะในฮาร์ดดิสก์ (ไม่ใช่รุ่นโบราณ) และโซลิดสเตตไดรฟ์ สื่อแฟลชแบบถอดได้ส่วนใหญ่ไม่รองรับ
แหล่งข้อมูลเพิ่มเติมและคำแนะนำ:
เพื่อทดสอบความถูกต้องในการอ่านของอุปกรณ์ทั้งหมดโดยไม่ต้องเขียนลงไปเราสามารถใช้badblocks(8)
ดังนี้:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
การดำเนินการนี้อาจใช้เวลานานโดยเฉพาะอย่างยิ่งถ้าไดรฟ์จัดเก็บข้อมูลเสียหาย หากจำนวนข้อผิดพลาดเพิ่มขึ้นเกินศูนย์เราจะรู้ว่ามีบล็อกที่ไม่ดี เราสามารถยกเลิกการดำเนินการได้อย่างปลอดภัยทุกเวลา (แม้จะมีแรงเหมือนในช่วงที่ไฟฟ้าขัดข้อง) หากเราไม่สนใจจำนวนบล็อกที่ไม่ดี -e 1
มันเป็นไปได้ที่จะยกเลิกโดยอัตโนมัติในข้อผิดพลาดที่มีตัวเลือก
หมายเหตุสำหรับการใช้งานขั้นสูง: หากเราต้องการนำเอาท์พุทกลับมาใช้ใหม่e2fsck
เราจำเป็นต้องกำหนดขนาดบล็อก ( -b
) เป็นขนาดของระบบไฟล์ที่มีอยู่ นอกจากนี้เรายังสามารถปรับแต่งปริมาณข้อมูล ( -c
ในบล็อก) ทดสอบในครั้งเดียวเพื่อปรับปรุงปริมาณงาน 16 MiB ควรจะไม่เป็นไรสำหรับอุปกรณ์ส่วนใหญ่
บางครั้ง - โดยเฉพาะอย่างยิ่งกับสื่อแฟลช - มีข้อผิดพลาดเกิดขึ้นเมื่อพยายามเขียน (สิ่งนี้จะไม่ค้นพบสื่อที่น่าเชื่อถือ (แฟลช) ที่โฆษณาขนาดใหญ่กว่าที่เป็นจริงใช้Fight Flash Fraudแทน)
ไม่เคยใช้วิธีนี้ในไดรฟ์ที่มีการติดตั้งระบบไฟล์ ! badblocks
ปฏิเสธที่จะทำงานกับสิ่งเหล่านั้นต่อไปเว้นแต่คุณจะบังคับ
อย่าขัดจังหวะการทำงานนี้อย่างเด็ดขาด ! Ctrl+ C(SIGINT / SIGTERM) และรอการยกเลิกก่อนกำหนดที่สง่างามก็โอเค แต่killall -9 badblocks
(SIGKILL) ไม่ใช่ เมื่อสิ้นสุดการบังคับbadblocks
ไม่สามารถเรียกคืนเนื้อหาต้นฉบับของช่วงบล็อกที่ทดสอบในปัจจุบันและจะปล่อยให้มันเขียนทับด้วยข้อมูลขยะและอาจทำให้ระบบไฟล์เสียหาย
หากต้องการใช้การตรวจสอบการอ่าน - เขียนแบบไม่ทำลายเพิ่ม-n
ตัวเลือกในbadblocks
คำสั่งด้านบน
ข้างต้น แต่ไม่มีการกู้คืนเนื้อหาของไดรฟ์ก่อนหน้าหลังจากทำการทดสอบการเขียนดังนั้นจึงเร็วขึ้นเล็กน้อย เนื่องจากข้อมูลจะถูกลบทิ้งการสิ้นสุดที่มีพลังยังคงอยู่โดยไม่มีผลกระทบเชิงลบ (เพิ่มเติม)
ที่จะใช้ทำลายการตรวจสอบการอ่านเขียนเพิ่ม-w
ตัวเลือกในการดังกล่าวข้างต้นbadblocks
คำสั่ง
fsck - ตรวจสอบและซ่อมแซมระบบไฟล์ Linux เรียกใช้โดยใช้
fsck /dev/sda1
โดยที่ / dev / sda1 เป็นไดรฟ์ที่คุณต้องการตรวจสอบ ดู 'man fsck' สำหรับรายละเอียดเพิ่มเติม
นอกจากนี้ยังมีคำสั่ง 'แบดบล็อค' ที่ตรวจสอบอุปกรณ์คุณเดาได้ว่าบล็อกที่ไม่ดี
จำเป็นต้องถอนการติดตั้งไดรฟ์เมื่อทำการตรวจสอบดังนั้นเพื่อตรวจสอบพาร์ติชั่นรูทที่คุณต้องการสร้างไฟล์ 'forcefsck' ในรูทของพาร์ติชั่นและรีบู๊ต อุปกรณ์จะถูกตรวจสอบเมื่อบู๊ตครั้งถัดไป:
sudo touch /forcefsck
sudo reboot
หรือคุณสามารถบูตจาก Live CD และเรียกใช้การตรวจสอบจากที่นั่น
sudo dumpe2fs -b /dev/sda9
. แต่ฉันคิดว่ามันจะดีกว่าถ้าดิสก์ดูแลเซ็กเตอร์ที่ผิดปกติไม่ใช่ระบบไฟล์ (สมาร์ทแบดบล็อก ฯลฯ ดูโพสต์ของฉัน)
คุณสามารถตรวจสอบ badblocks ที่รันคำสั่งได้
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
สำหรับการทดสอบการอ่าน - เขียนแบบไม่ทำลาย ที่จะสร้างไฟล์ที่เรียกว่าbad-blocks-result
เซกเตอร์เสียหาย
-nใช้โหมดอ่าน - เขียนแบบไม่ทำลาย โดยค่าเริ่มต้นจะทำการทดสอบอ่านอย่างเดียวแบบไม่ทำลายเท่านั้น
-sแสดงความคืบหน้าของการสแกนโดยการเขียนเปอร์เซ็นต์ความสมบูรณ์ของแบดบล็อกปัจจุบันให้สมบูรณ์ผ่านดิสก์
โหมดv- verbose
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
เพื่อบอกระบบไฟล์ว่าเซกเตอร์เสียอยู่ที่ไหนและย้ายข้อมูลออกไปจากพวกเขาถ้าเป็นไปได้fsck
คำสั่งล้มเหลวด้วยbtrfs
ระบบไฟล์
IMO smartctl เป็นเครื่องมือที่ดีกว่า คุณน่าจะต้องติดตั้งมันก่อน
sudo apt-get install smartmontools
แล้วก็
sudo smartctl -a /dev/sda | less
เพื่อพิมพ์ข้อมูลสถานะไดรฟ์คุณสมบัติและผลการทดสอบที่มี q
จะเลิกน้อยชนิด อีกทางเลือกหนึ่ง
sudo smartctl -H /dev/sda
เพียงพิมพ์ข้อมูลสุขภาพ
ในการเริ่มต้นการทดสอบตัวเองสั้น ๆ (ไม่กี่นาที) หรือยาว (ไม่เกินหลายชั่วโมง) แบบใหม่:
sudo smartctl -t [short|long]
GSsmartControl ( โฮมเพจ ) และดิสก์ Gnomeเป็นส่วนหน้าแบบกราฟิกหากคุณต้องการ
smartctl
รายงาน: "ไม่รู้จักบริดจ์ USB", "โปรดระบุประเภทอุปกรณ์ด้วยตัวเลือก -d" ผมพบว่าข้อมูลที่ฉันต้องการที่: smartmontools.org/wiki/Supported_USB-Devices
F3 (ต่อสู้กับการฉ้อโกง Flash)เป็นอีกตัวเลือกหนึ่งที่ควรตรวจจับแฟลชไดรฟ์ปลอมเพิ่มเติม (แฟลชไดรฟ์ที่มีความจุจริงตามสัดส่วนของความจุโฆษณา):
ติดตั้ง F3
sudo apt install f3
ใส่ไดรฟ์ของคุณ
เขียนข้อมูลการทดสอบไปยังพื้นที่ว่างบนไดรฟ์ (ตรวจสอบที่ไดรฟ์ของคุณจะติดตั้งอยู่ด้วยlsblk
)
f3write /media/$USER/D871-DD7C/
อ่านข้อมูลการทดสอบ
f3read /media/$USER/D871-DD7C/
อ้างอิง:
badblocks ทำงานได้ดี แต่ก็ไม่ได้รับการออกแบบมาสำหรับการตรวจสอบแฟลชไดรฟ์ปลอมและอาจจะไม่รายงานข้อผิดพลาดใด ๆ สำหรับพวกเขา
badblocks
มี-w
หรือมีfsck
ภาคเครื่องหมายเป็นไม่ดี / เสียหายดังนั้นพวกเขาจะไม่ใช้ f3 สามารถส่งคืนสิ่งที่ต้องการCorrupted: 16.01 MB (32784 sectors)
แต่ทำเครื่องหมายว่าเป็นเซกเตอร์ที่ไม่ดีหรือไม่ หรือเรายังต้องมีบล็อกแบดเพื่อการนั้น ฉันพยายามด้วยdumpe2fs -b
และดูเหมือนว่า id ไม่ได้ทำเครื่องหมาย
คุณสามารถทดสอบอ่านดิสก์ทั้งหมดในขณะที่แสดงตัวบ่งชี้ความคืบหน้า:
time sudo pv /dev/sdc >/dev/null
ปัญหาดิสก์บางอย่างจะแจ้งให้ทราบเป็นข้อผิดพลาด I / O ที่รายงาน นี่เป็นสิ่งที่ดีกว่าdd
เนื่องจากตัวบ่งชี้ความคืบหน้าและเนื่องจากส่วนต่อประสานบรรทัดคำสั่งเป็นมาตรฐานที่มากกว่าเล็กน้อยและมีแนวโน้มที่จะพิมพ์ผิดเล็กน้อย โปรดทราบว่าเป็นพื้นและรุ่นที่เพิ่มขึ้นของpv
cat
อาจไม่ได้ติดตั้งตามค่าเริ่มต้น แต่สามารถติดตั้งsudo apt-get install pv
ได้
วิธีการที่คล้ายกันคือการอ่านดิสก์ด้วยหนึ่งในเครื่องมือที่มีอยู่มากมายซึ่งตระหนักถึงข้อผิดพลาดของดิสก์ I / O โดยเฉพาะและมีคุณสมบัติของ "การพยายามกู้ข้อมูลที่ยาก" ค้นหาddrescue
ในผู้จัดการแพ็คเกจ
dd count=1
ก็ค่อนข้างเร็วนอกจากสื่อจัดเก็บข้อมูลจะเสียหายอย่างสมบูรณ์ (หรือไม่สนับสนุน)
ddrescueview
dd
มีตัวบ่งชี้ความคืบหน้าstatus=progress
ด้วย
หากคุณมีพาร์ติชันที่คุณไม่สามารถปล่อยข้อมูลให้ทำตามขั้นตอนเหล่านี้
$fdisk -l commnd
สมมติว่าพาร์ติชันที่จะตรวจสอบเรียกว่า / dev / sdPTC (พาร์ติชันเพื่อตรวจสอบ) และคุณมีพาร์ติชันอื่นเพื่อจัดเก็บผลลัพธ์ที่เมาท์บน / scan / resultPath / โฟลเดอร์
2. จากนั้นคุณสามารถเรียกใช้คำสั่งนี้
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
ซึ่งจะกำหนดสิ่งที่เป็นบล็อกที่ไม่ดีของอุปกรณ์ที่กำหนดและเก็บไว้ในไฟล์ที่เรียกว่า badsectors.txt
fsck
คำสั่งเพื่อบอก Ubuntu ไม่ให้ใช้เซกเตอร์เสียที่กล่าวถึงในไฟล์ badsectors.txt$sudo fsck -l /scan_result/badsectors.txt /dev/sda
ด้วยเหตุนี้อายุการใช้งานของฮาร์ดดิสก์จึงเพิ่มขึ้นเล็กน้อยจนกว่าคุณจะได้ชิ้นใหม่มาแทนที่
หากคุณมีพาร์ติชันที่สมบูรณ์ที่คุณต้องการตรวจสอบเซกเตอร์กายภาพที่ไม่ดีและคุณสามารถแก้ไขข้อมูลทั้งหมดในพาร์ติชันนั้นหรือว่างเปล่าให้ทำตามขั้นตอนเหล่านี้
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
ตรวจสอบและตรวจสอบอีกครั้งว่าไม่มีข้อมูลสำคัญในพาร์ติชันนั้น
การใช้gnome-disks
ลบ / ลบพาร์ติชันด้วยมือโดยใช้เครื่องหมาย "-"
การใช้gnome-disks
CREATE พาร์ติชันใหม่และเลือกตัวเลือก "ช้า" ที่จะตรวจสอบข้อผิดพลาด
bionic beaver
จัดการกับการตรวจสอบดิสก์แตกต่างกัน?