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

4 เครื่องมือในการจัดการสุขภาพ EXT2, EXT3 และ EXT4 ใน Linux


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

มีปัจจัยหลายประการที่อาจทำให้ระบบไฟล์ไม่แข็งแรง: ระบบล่ม ฮาร์ดแวร์หรือซอฟต์แวร์ทำงานผิดปกติ ไดรเวอร์และโปรแกรมแบบบั๊กกี้ การปรับแต่งไม่ถูกต้อง การโอเวอร์โหลดข้อมูลมากเกินไป บวกกับข้อบกพร่องเล็กๆ น้อยๆ อื่นๆ

ปัญหาใดๆ เหล่านี้อาจทำให้ Linux ไม่สามารถเมานท์ (หรือถอนเมานท์) ระบบไฟล์ได้อย่างสวยงาม ซึ่งส่งผลให้ระบบล้มเหลว

อ่านเพิ่มเติม: 7 วิธีในการกำหนดประเภทระบบไฟล์ใน Linux (Ext2, Ext3 หรือ Ext4)

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

ในบทความนี้ เราจะพูดถึงเครื่องมือในการตรวจสอบและรักษาความสมบูรณ์ของระบบไฟล์ ext2, ext3 และ ext4 เครื่องมือทั้งหมดที่อธิบายไว้ที่นี่ต้องการสิทธิ์ผู้ใช้รูท ดังนั้นให้ใช้คำสั่ง sudo เพื่อเรียกใช้เครื่องมือเหล่านั้น

วิธีดูข้อมูลระบบไฟล์ EXT2/EXT3/EXT4

dumpe2fs เป็นเครื่องมือบรรทัดคำสั่งที่ใช้ในการถ่ายโอนข้อมูลระบบไฟล์ ext2/ext3/ext4 หมายความว่าเครื่องมือจะแสดงซุปเปอร์บล็อกและบล็อกข้อมูลกลุ่มสำหรับระบบไฟล์บนอุปกรณ์

ก่อนที่จะรัน dumpe2fs ตรวจสอบให้แน่ใจว่าได้รันคำสั่ง df -hT เพื่อทราบชื่ออุปกรณ์ระบบไฟล์

sudo dumpe2fs /dev/sda10
ผลลัพธ์ตัวอย่าง
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x00580f0c
Journal start:            12055

คุณสามารถส่งแฟล็ก -b เพื่อแสดงบล็อกใด ๆ ที่สงวนไว้ว่าใช้งานไม่ได้ในระบบไฟล์ (ไม่มีเอาต์พุตใดที่แสดงถึง Badblock):

dumpe2fs -b

กำลังตรวจสอบระบบไฟล์ EXT2/EXT3/EXT4 เพื่อหาข้อผิดพลาด

e2fsck ใช้เพื่อตรวจสอบข้อผิดพลาดของระบบไฟล์ ext2/ext3/ext4 และ fsck ตรวจสอบ และสามารถเลือกซ่อมแซมระบบไฟล์ Linux ได้ โดยพื้นฐานแล้วมันเป็นส่วนหน้าสำหรับตัวตรวจสอบระบบไฟล์ต่างๆ (fsck.fstype เช่น fsck.ext3, fsck.sfx ฯลฯ) ที่นำเสนอ ภายใต้ลินุกซ์

โปรดจำไว้ว่า Linux รัน e2fack/fsck โดยอัตโนมัติเมื่อระบบบูตบนพาร์ติชันที่มีป้ายกำกับสำหรับการเช็คอินในไฟล์การกำหนดค่า /etc/fstab โดยปกติจะทำหลังจากระบบไฟล์ไม่ได้ถูกถอดออกอย่างหมดจด

ข้อควรทราบ: ห้ามรัน e2fsck หรือ fsck บนระบบไฟล์ที่เมาท์ ให้ถอนการเชื่อมต่อพาร์ติชันก่อนเสมอก่อนจึงจะสามารถรันได้ เครื่องมือเหล่านี้ดังที่แสดงด้านล่าง

sudo unmount /dev/sda10
sudo fsck /dev/sda10

หรือเปิดใช้งานเอาต์พุตแบบละเอียดด้วยสวิตช์ -V และใช้ -t เพื่อระบุประเภทของระบบไฟล์ดังนี้:

sudo fsck -Vt ext4 /dev/sda10

การปรับแต่งระบบไฟล์ EXT2/EXT3/EXT4

เราพูดถึงตั้งแต่เริ่มต้นว่าหนึ่งในสาเหตุของความเสียหายของระบบไฟล์คือการปรับแต่งที่ไม่ถูกต้อง คุณสามารถใช้ยูทิลิตี tune2fs เพื่อเปลี่ยนพารามิเตอร์ที่ปรับได้ของระบบไฟล์ ext2/ext3/ext4 ตามที่อธิบายไว้ด้านล่าง

หากต้องการดูเนื้อหาของ superblock ระบบไฟล์ รวมถึงค่าปัจจุบันของพารามิเตอร์ ให้ใช้ตัวเลือก -l ตามที่แสดง

sudo tune2fs -l /dev/sda10
ผลลัพธ์ตัวอย่าง
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

จากนั้น เมื่อใช้แฟล็ก -c คุณสามารถกำหนดจำนวนการเมาต์ได้ หลังจากนั้นระบบไฟล์จะถูกตรวจสอบโดย e2fsck คำสั่งนี้สั่งให้ระบบรัน e2fsck กับ /dev/sda10 หลังจากการเมาท์ทุก ๆ 4

sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

คุณสามารถกำหนดเวลาระหว่างการตรวจสอบระบบไฟล์สองครั้งด้วยตัวเลือก -i คำสั่งต่อไปนี้จะตั้งค่าช่วงเวลา 2 วันระหว่างการตรวจสอบระบบไฟล์

sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

ตอนนี้ หากคุณรันคำสั่งนี้ด้านล่าง ช่วงเวลาตรวจสอบระบบไฟล์สำหรับ /dev/sda10 จะถูกตั้งค่าแล้ว

sudo tune2fs -l /dev/sda10
ผลลัพธ์ตัวอย่าง
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 13:49:50 2017
Mount count:              432
Maximum mount count:      4
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           172800 (2 days)
Next check after:         Tue Aug  2 16:19:36 2016
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

หากต้องการเปลี่ยนพารามิเตอร์การบันทึกเริ่มต้น ให้ใช้ตัวเลือก -J ตัวเลือกนี้ยังมีตัวเลือกย่อย: size=journal-size (กำหนดขนาดของเจอร์นัล), device=external-journal (ระบุอุปกรณ์ที่จะจัดเก็บ) และ location=journal-location (กำหนดตำแหน่งของวารสาร)

โปรดทราบว่าสามารถตั้งค่าขนาดหรือตัวเลือกอุปกรณ์ได้เพียงตัวเลือกเดียวสำหรับระบบไฟล์:

sudo tune2fs -J size=4MB /dev/sda10

สุดท้ายแต่ไม่ท้ายสุด คุณสามารถตั้งค่าป้ายกำกับโวลุ่มของระบบไฟล์ได้โดยใช้ตัวเลือก -L ดังด้านล่างนี้

sudo tune2fs -L "ROOT" /dev/sda10

ดีบักระบบไฟล์ EXT2/EXT3/EXT4

debugfs เป็นโปรแกรมดีบักเกอร์ระบบไฟล์ ext2/ext3/ext4 แบบบรรทัดคำสั่งแบบโต้ตอบที่เรียบง่าย ช่วยให้คุณสามารถแก้ไขพารามิเตอร์ระบบไฟล์แบบโต้ตอบได้ หากต้องการดูคำสั่งย่อยหรือคำขอ ให้พิมพ์ "?"

sudo debugfs /dev/sda10

ตามค่าเริ่มต้น ระบบไฟล์ควรเปิดในโหมดอ่าน-เขียน ใช้แฟล็ก -w เพื่อเปิดในโหมดอ่าน-เขียน หากต้องการเปิดในโหมดภัยพิบัติ ให้ใช้ตัวเลือก -c

ผลลัพธ์ตัวอย่าง
debugfs 1.42.13 (17-May-2015)
debugfs:  ?
Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
freefrag, e2freefrag     Report free space fragmentation
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initialize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
....

หากต้องการแสดงการกระจายตัวของพื้นที่ว่าง ให้ใช้คำขอ freefrag เช่นนั้น

debugfs: freefrag
ผลลัพธ์ตัวอย่าง
Device: /dev/sda10
Blocksize: 4096 bytes
Total blocks: 86154752
Free blocks: 22387732 (26.0%)

Min. free extent: 4 KB 
Max. free extent: 2064256 KB
Avg. free extent: 2664 KB
Num. free extent: 33625

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          4883          4883    0.02%
    8K...   16K-  :          4029          9357    0.04%
   16K...   32K-  :          3172         15824    0.07%
   32K...   64K-  :          2523         27916    0.12%
   64K...  128K-  :          2041         45142    0.20%
  128K...  256K-  :          2088         95442    0.43%
  256K...  512K-  :          2462        218526    0.98%
  512K... 1024K-  :          3175        571055    2.55%
    1M...    2M-  :          4551       1609188    7.19%
    2M...    4M-  :          2870       1942177    8.68%
    4M...    8M-  :          1065       1448374    6.47%
    8M...   16M-  :           364        891633    3.98%
   16M...   32M-  :           194        984448    4.40%
   32M...   64M-  :            86        873181    3.90%
   64M...  128M-  :            77       1733629    7.74%
  128M...  256M-  :            11        490445    2.19%
  256M...  512M-  :            10        889448    3.97%
  512M... 1024M-  :             2        343904    1.54%
    1G...    2G-  :            22      10217801   45.64%
debugfs:  

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

นั่นคือทั้งหมดที่สำหรับตอนนี้! เรามีคอลเลกชันบทความที่เกี่ยวข้องตามหมวดหมู่ต่างๆ ด้านล่างนี้ ซึ่งคุณจะพบว่ามีประโยชน์

ข้อมูลการใช้งานระบบไฟล์:

  1. 12 คำสั่ง “df” ที่มีประโยชน์เพื่อตรวจสอบพื้นที่ดิสก์ใน Linux
  2. Pydf คำสั่งทางเลือก "df" เพื่อตรวจสอบการใช้งานดิสก์ในสีที่ต่างกัน
  3. 10 คำสั่ง du (การใช้งานดิสก์) ที่มีประโยชน์เพื่อค้นหาการใช้งานดิสก์ของไฟล์และไดเร็กทอรี

ตรวจสอบความสมบูรณ์ของดิสก์หรือพาร์ติชัน:

  1. 3 เครื่องมือสแกนดิสก์บน Linux และ GUI ที่มีประโยชน์
  2. วิธีตรวจสอบ Bad Sectors หรือ Bad Blocks บนฮาร์ดดิสก์ใน Linux
  3. วิธีการซ่อมแซมและจัดเรียงพาร์ติชันระบบ Linux และไดเรกทอรี

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