ค้นหาเว็บไซต์

วิธีการซ่อมแซมและจัดเรียงพาร์ติชันระบบ Linux และไดเรกทอรี


ผู้ที่ใช้ Linux มักคิดว่าไม่จำเป็นต้องมีการจัดเรียงข้อมูล นี่เป็นความเข้าใจผิดที่พบบ่อยสำหรับผู้ใช้ Linux ที่จริงแล้วระบบปฏิบัติการ Linux รองรับการจัดเรียงข้อมูล จุดประสงค์ของการจัดเรียงข้อมูลคือการปรับปรุงการทำงานของ I/O เช่น การอนุญาตให้วิดีโอในเครื่องโหลดเร็วขึ้น หรือแตกไฟล์เก็บถาวรเร็วขึ้นอย่างมาก

ระบบไฟล์ Linux ext2, ext3 และ ext4 ไม่ต้องการความสนใจมากนัก แต่เมื่อเวลาผ่านไป หลังจากดำเนินการอ่าน/เขียนจำนวนมาก ระบบไฟล์อาจต้องมีการปรับให้เหมาะสม มิฉะนั้นฮาร์ดดิสก์อาจทำงานช้าลงและอาจส่งผลต่อระบบทั้งหมด

ในบทช่วยสอนนี้ ฉันจะแสดงให้คุณเห็นเทคนิคต่างๆ เล็กน้อยในการจัดเรียงข้อมูลในไฟล์ ก่อนที่เราจะเริ่มต้น เราควรพูดถึงสิ่งที่ระบบไฟล์ทั่วไปเช่น ext2,3,4 ทำเพื่อป้องกันการแตกแฟรกเมนต์ ระบบไฟล์เหล่านี้มีเทคนิคในการป้องกันผลกระทบ ตัวอย่างเช่น ระบบไฟล์จะจองกลุ่มบล็อกว่างบนฮาร์ดดิสก์เพื่อจัดเก็บไฟล์ที่กำลังเติบโตอย่างสมบูรณ์

น่าเสียดายที่ปัญหาไม่ได้รับการแก้ไขด้วยกลไกดังกล่าวเสมอไป แม้ว่าระบบปฏิบัติการอื่นๆ อาจต้องใช้ซอฟต์แวร์เพิ่มเติมราคาแพงเพื่อแก้ไขปัญหาดังกล่าว แต่ Linux มีเครื่องมือที่ติดตั้งได้ง่ายซึ่งจะช่วยคุณแก้ไขปัญหาดังกล่าวได้

จะตรวจสอบระบบไฟล์ที่ต้องการการจัดเรียงข้อมูลได้อย่างไร

ก่อนที่เราจะเริ่ม ฉันอยากจะชี้ให้เห็นว่าการดำเนินการด้านล่างควรทำงานบน HDDs เท่านั้น และไม่ใช่บน SSD การจัดเรียงข้อมูลไดรฟ์ SSD ของคุณจะเพิ่มจำนวนการอ่าน/เขียนเท่านั้น และทำให้อายุการใช้งานสั้นลง หากคุณใช้ SSD คุณควรใช้ฟังก์ชัน TRIM ซึ่งไม่ได้กล่าวถึงในบทช่วยสอนนี้

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

sudo umount <device file>

ในกรณีของฉัน ฉันติดตั้ง /dev/sda1 ที่ /tmp:

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

sudo umount /dev/sda1

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

sudo e2fsck -fn /dev/sda1

คำสั่งดังกล่าวจะทำการตรวจสอบระบบไฟล์ ตัวเลือก -f บังคับให้มีการตรวจสอบ แม้ว่าระบบจะดูสะอาดก็ตาม ตัวเลือก -n ใช้เพื่อเปิดระบบไฟล์แบบอ่านอย่างเดียวและถือว่าคำตอบ "no" สำหรับคำถามทั้งหมดที่อาจปรากฏขึ้น

โดยทั่วไปตัวเลือกนี้อนุญาตให้ใช้ e2fsck แบบไม่มีการโต้ตอบ หากทุกอย่างตกลง คุณควรเห็นผลลัพธ์ที่คล้ายกับผลลัพธ์ที่แสดงในภาพหน้าจอด้านล่าง:

นี่เป็นอีกตัวอย่างหนึ่งที่แสดงข้อผิดพลาดในระบบ:

วิธีซ่อมแซมระบบไฟล์ Linux โดยใช้ e2fsck

หากเกิดข้อผิดพลาด คุณสามารถลองซ่อมแซมระบบไฟล์ด้วย e2fsck ด้วยตัวเลือก “-p” โปรดทราบว่าในการรันคำสั่งด้านล่าง จะต้องถอดพาร์ติชันออก:

sudo e2fsck -p <device file>

ตัวเลือก “-p” จะพยายามซ่อมแซมระบบไฟล์โดยอัตโนมัติสำหรับปัญหาที่สามารถแก้ไขได้อย่างปลอดภัยโดยไม่ต้องมีการแทรกแซงจากมนุษย์ หากค้นพบปัญหาที่อาจต้องให้ผู้ดูแลระบบดำเนินการแก้ไขเพิ่มเติม e2fsck จะพิมพ์คำอธิบายของปัญหาและจะออกด้วยรหัส 4 ซึ่งหมายความว่า "ข้อผิดพลาดของระบบไฟล์ที่ยังไม่ได้รับการแก้ไข" อาจจำเป็นต้องมีการดำเนินการที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับปัญหาที่พบ

หากปัญหาปรากฏขึ้นบนพาร์ติชันที่ไม่สามารถยกเลิกการต่อเชื่อมได้ คุณสามารถใช้เครื่องมืออื่นที่เรียกว่า e4defrag มีการติดตั้งไว้ล่วงหน้าบน Linux distros จำนวนมาก แต่ถ้าคุณไม่มีมัน คุณสามารถติดตั้งได้ด้วย:

sudo apt-get install e2fsprogs         [On Debian and Derivatives]
yum install e2fsprogs                  [On CentOS based systems]
dnf install e2fsprogs                  [On Fedora 22+ versions] 

วิธีการจัดเรียงข้อมูลพาร์ติชัน Linux

ตอนนี้ได้เวลาจัดเรียงพาร์ติชัน Linux โดยใช้คำสั่งต่อไปนี้

sudo e4defrag <location>
or
sudo e4defrag <device>

วิธีการจัดเรียงข้อมูลไดเรกทอรี Linux

ตัวอย่างเช่น หากคุณต้องการจัดเรียงข้อมูลไดเรกทอรีหรืออุปกรณ์เดียว คุณสามารถใช้:


sudo e4defrag /home/user/directory/
sudo e4defrag /dev/sda5

วิธีจัดเรียงข้อมูลพาร์ติชัน Linux ทั้งหมด

หากคุณต้องการจัดเรียงข้อมูลทั้งระบบ วิธีที่ปลอดภัยคือ:

sudo e4defrag /

โปรดทราบว่ากระบวนการนี้อาจใช้เวลาพอสมควรจึงจะเสร็จสมบูรณ์

บทสรุป

การจัดเรียงข้อมูลเป็นการดำเนินการที่คุณแทบไม่ต้องใช้ใน Linux มันมีไว้สำหรับผู้ใช้ระดับสูงที่รู้ว่ากำลังทำอะไรอยู่และไม่แนะนำสำหรับมือใหม่ Linux จุดประสงค์ของการดำเนินการทั้งหมดคือการเพิ่มประสิทธิภาพระบบไฟล์ของคุณ เพื่อให้การดำเนินการอ่าน/เขียนใหม่ดำเนินการได้อย่างมีประสิทธิภาพมากขึ้น