What is SMART?

Short answer: SMART is a technology which provides hard disk drives with methods to predict certain kinds of failures with certain chance of success.

Long answer: read below.

Self-Monitoring, Analysis, and Reporting Technology, or SMART, is a monitoring system for hard drives to detect and report various indicators of reliability, in the hope of anticipating failures. SMART is implemented inside the drives, providing several ways of monitoring the drive health. It may present information about general health, various drive attributes (for example, number of unreadable sectors), error logs, and so on. It may also provide ways to instruct the drive to run various self-tests, which may report valuable information. It may even automatically scan the disk surface in when the drive is idle, repairing the defects while reallocating the data to more safe areas.

While having SMART sounds really good, there are some nuances to consider. One of the common pitfalls is that it may create a false sense of security. That is, a perfectly good SMART data is NOT an indication that the drive won't fail the next minute. The reverse is also true - some drives may function perfectly even with not-so-good-looking SMART data. However, as studies indicate, given a large population of drives, some SMART attributes may reliably predict drive failures within up to two months.

Another common mistake is to assume that the attribute values are the real physical values, as experienced by the drive. As manufacturers do not necessarily agree on precise attribute definitions and measurement units, the exact meaning of the attributes may vary greatly across different drive models.

At present SMART is implemented individually by manufacturers. While some aspects are standardized for compatibility, others are not. In fact, most manufacturers refer the users to their own health monitoring utilities and advice against taking SMART data seriously. Nevertheless, SMART may prove an effective measure against data loss.

Yet another issue is that quite often the drives have bugs which prevent correct SMART usage. This is usually due to buggy firmware, or the manufacturer ignoring the standards. Luckily, smartmontools usually detects these bugs and works around them.

Command Line Options

GSmartControl inherits options from GTK+ and other libraries, so be sure to run it with --help option to get a full list of accepted parameters.
Note: The Windows version may not have a text output at all, so --help and similar arguments won't have any effect.

The most important parameters are:

-?, --help - Show help options.

-l, --no-locale - Don't use system locale.

-V, --version - Display version information.

--no-scan - Don't scan devices on startup.

--no-hide-tabs - Don't hide non-identity tabs when SMART is disabled. Useful for debugging.

--add-virtual - Load smartctl data from file, creating a virtual drive. You can specify this option multiple times.

--add-device - Add this device to device list. The format of the device is '<device>::<type>::<extra_args>', where type and extra_args are optional. This option is useful with --no-scan to list certain drives only. You can specify this option multiple times.
Example: --add-device /dev/sda --add-device /dev/twa0::3ware,2 --add-device '/dev/sdb::::-T permissive'

-v, --verbose - Enable verbose logging; same as --verbosity-level 5.

-q, --quiet - Disable logging; same as --verbosity-level 0.

-b, --verbosity-level - Set verbosity level [0-5].

Smartctl Options

GSmartControl tries its best to guard the user from having to specify smartctl options. However, this is not always possible due to drive firmware bugs, unimplemented features, and so on. The smartctl manual page contains all the information you may need when dealing with smartctl.

Additional information is available at https://www.smartmontools.org/

Permission Problems

You need to be root/Administrator to perform anything useful with GSmartControl. This is needed because most operating systems prohibit direct access to hardware to users with non-administrative privileges.

In Windows, UAC is automatically invoked when you run it. In other operating systems, running gsmartcontrol-root (or using the desktop icon) will automatically launch gsmartcontrol using the system's preferred su mechanism - PolKit, kdesu, gnomesu, etc...

Please don't set the "setuid" flag on smartctl binary. It is considered a security risk.

Enable SMART Permanently

Specifications say that once you set a SMART-related property, it will be preserved across reboots. So, when you, say, enable SMART and Automatic Offline Data Collection, both will stay enabled until you disable them.

However, BIOS, your operating system, your other operating systems (if present), and various startup programs may affect that. For example, BIOS may enable SMART each time you start your computer, so if you disabled SMART previously, it will be re-enabled on reboot.

The easiest way to work around this is to set the desired settings on system startup. You may use smartctl or smartd to do that. For example, to enable both SMART and Automatic Offline Data Collection on /dev/sda, one would write the following to the system startup script (e.g. boot.local, rc.local or similar on Linux):

smartctl -s on -o on /dev/sda

For more information, see smartctl and smartd documentation.