ติดตั้ง smartmontools บน ubuntu

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่  03-05-2553

ดูแลโดย WIPAT


  • ทดสอบใช้กับ ubuntu 10.04, 8.04
  • ต้นฉบับจาก http://smartmontools.sourceforge.net/
  • ใช้สำหรับอ่านค่าคุณสมบัติต่างๆของ hard disk
  • ต้องตั้งค่า BIOS ของ PC ให้รองรับคุณสัมบัติ S.M.A.R.T hard disk ด้วย


  1. ติดตั้งด้วยคำสั่ง  sudo apt-get install smartmontools

  2. ในขั้นต้นให้ตรวจสอบว่าใน PC มี hard disk กี่ลูก ด้วยคำสั่ง sudo fdisk -l

    ตัวอย่างนี้เป็นแบบง่ายๆ มี hard disk ลูกเดียว
    Disk /dev/hda: 20.4 GB, 20404101120 bytes
    255 heads, 63 sectors/track, 2480 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
    /dev/hda1   *           1          13      104391   83  Linux
    /dev/hda2              14        2480    19816177+  8e  Linux LVM

    ตัวอย่างต่อไปมี hard disk 2 ลูก ต่อกันแบบ software raid
    Disk /dev/hda: 80.0 GB, 80026361856 bytes
    255 heads, 63 sectors/track, 9729 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
    /dev/hda1   *           1          13      104391   fd  Linux raid autodetect
    /dev/hda2              14        9447    75778605   fd  Linux raid autodetect
    /dev/hda3            9448        9708     2096482+  fd  Linux raid autodetect
    Disk /dev/hdc: 80.0 GB, 80026361856 bytes
    255 heads, 63 sectors/track, 9729 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
    /dev/hdc1   *           1          13      104391   fd  Linux raid autodetect
    /dev/hdc2              14        9447    75778605   fd  Linux raid autodetect
    /dev/hdc3            9448        9708     2096482+  fd  Linux raid autodetect

  3. ตรวจสอบชนิด hard disk /dev/hda ด้วยตัวอย่างคำสั่ง  sudo smartctl -i /dev/hda
    หากเป็น hard disk แบบ SATA อาจต้องเพิ่ม option ว่า -d ata ด้วย ตัวอย่างคำสั่ง sudo smartctl -i /dev/sda -d ata ได้ผลดังตัวอย่าง

    === START OF INFORMATION SECTION ===
    Device Model:     ST320413A
    Serial Number:    7ED2J419
    Firmware Version: 3.39
    User Capacity:    20,404,101,120 bytes
    Device is:        In smartctl database [for details use: -P show]
    ATA Version is:   4
    ATA Standard is:  Exact ATA specification draft version not indicated
    Local Time is:    Mon Oct 16 12:55:11 2006 ICT
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled

  4. ตรวจสอบสุขภาพ hard disk /dev/hda  ด้วยตัวอย่างคำสั่ง sudo smartctl -Hc /dev/hda
    หากเป็น hard disk แบบ SATA อาจต้องเพิ่ม option ว่า -d ata ด้วย  ตัวอย่างคำสั่ง sudo smartctl -Hc /dev/sda -d ata  ได้ผลดังตัวอย่าง

    *** บรรทัดที่มีคำว่า PASSED แสดงว่าปรกติดี ถ้าเสียจะเป็น FAILED
    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED

    General SMART Values:
    Offline data collection status:  (0x82) Offline data collection activity
                                            was completed without error.
                                            Auto Offline Data Collection: Enabled.
    Self-test execution status:      (   0) The previous self-test routine completed                                        without error or no self-test has ever
                                            been run.
    Total time to complete Offline
    data collection:                 ( 422) seconds.
    Offline data collection
    capabilities:                    (0x1b) SMART execute Offline immediate.
                                            Auto Offline data collection on/off support.
                                            Suspend Offline collection upon new
                                            command.
                                            Offline surface scan supported.
                                            Self-test supported.
                                            No Conveyance Self-test supported.
                                            No Selective Self-test supported.
    SMART capabilities:            (0x0003) Saves SMART data before entering
                                            power-saving mode.
                                            Supports SMART auto save timer.
    Error logging capability:        (0x01) Error logging supported.
                                            No General Purpose Logging support.
    Short self-test routine
    recommended polling time:        (   1) minutes.
    Extended self-test routine
    recommended polling time:        (  23) minutes.

  5. ทดสอบแบบเร็ว hard disk /dev/hda  ด้วยตัวอย่างคำสั่ง sudo smartctl -t short /dev/hda
    หากเป็น hard disk แบบ SATA อาจต้องเพิ่ม option ว่า -d ata ด้วย  ตัวอย่างคำสั่ง sudo smartctl -t short /dev/sda -d ata  ได้ผลดังตัวอย่าง

    === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
    Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
    Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
    Testing has begun.
    Please wait 1 minutes for test to complete.
    Test will complete after Mon Oct 16 15:01:20 2006

    Use smartctl -X to abort test.

    ให้รอสัก 1 นาที จะได้ผลลัพธ์ออกมา
    ตรวจสอบดูด้วยคำสั่งว่า  sudo smartctl -l selftest /dev/hda
    หากเป็น hard disk แบบ SATA ต้องเพิ่ม option ว่า -d ata ด้วย
    ตัวอย่างคำสั่ง smartctl -l selftest /dev/sda -d ata
    ได้ผลตัวอย่าง

    === START OF READ SMART DATA SECTION ===
    SMART Self-test log structure revision number 1
    Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
    # 1  Short offline       Completed without error       00%     19789         -
    # 2  Short offline       Completed without error       00%     19788         -

    หมายความว่าเคยทดสอบมา 2 ครั้งแล้ว และสภาพดีไม่มีปัญหา

  6. ดูรายงาน error ของ hard disk /dev/hda  ด้วยตัวอย่างคำสั่ง  sudo smartctl -l error /dev/hda
    หากเป็น hard disk แบบ SATA อาจต้องเพิ่ม option ว่า -d ata ด้วย ตัวอย่างคำสั่ง sudo smartctl -l error /dev/sda -d ata

    ตัวอย่างผลที่ได้แสดงว่าเป็นปรกติดี
    === START OF READ SMART DATA SECTION ===
    SMART Error Log Version: 1
    No Errors Logged

    ตัวอย่างผลที่ได้  ว่าเคยมี error เกิดขึ้น แต่ก็ยังคงใช้งานได้
    === START OF READ SMART DATA SECTION ===
    SMART Error Log Version: 1
    ATA Error Count: 5
            CR = Command Register [HEX]
            FR = Features Register [HEX]
            SC = Sector Count Register [HEX]
            SN = Sector Number Register [HEX]
            CL = Cylinder Low Register [HEX]
            CH = Cylinder High Register [HEX]
            DH = Device/Head Register [HEX]
            DC = Device Command Register [HEX]
            ER = Error register [HEX]
            ST = Status register [HEX]
    Powered_Up_Time is measured from power on, and printed as
    DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
    SS=sec, and sss=millisec. It "wraps" after 49.710 days.

    Error 5 occurred at disk power-on lifetime: 13636 hours (568 days + 4 hours)
      When the command that caused the error occurred, the device was active or idle.
      After command completion occurred, registers were:
    .......... มีต่อมากมาย

  7. หากต้องการให้มีการตรวจสภาพโดยอัตโนมัติ แล้วส่งอีเมล์แจ้งผู้ดูแลระบบด้วย
    ให้แก้ไขแฟ้ม /etc/smard.conf ให้มีข้อความตัวอย่างว่า
    /dev/sda -H -m  myemail@domain.com
    หากเจอปัญหาสุขภาพไม่ค่อยดี  ก็จะส่งอีเมล์มาให้แก่ myemail@domain.com

  8. หากต้องการให้ระบบตรวจสอบอัตโนมัติทุกครั้งที่บูทเครื่อง  ให้แก้ไขแฟ้ม  /etc/default/smartmontools 
    ปรับตั้งค่าตัวแปรประมาณตัวอย่างดังนี้
    start_smartd=yes
    enable_smart="/dev/sda"

    สั่งให้ระบบเริ่มทำงานด้วยคำสั่ง sudo /etc/init.d/smartmontools start

  9. ตัวอย่างคำสั่งในการอ่านเฉพาะค่าอุณหภูมิของ hard disk คือ
    sudo smartctl -A /dev/sda|grep "Temperature_Celsius"