· 9 years ago · Nov 29, 2016, 07:42 PM
1
2About GSmartControl
3
4GSmartControl - Hard disk drive health inspection tool.
5
6GSmartControl is a graphical user interface for smartctl (from smartmontools package, see http://smartmontools.sourceforge.net), which is a tool for querying and controlling SMART (Self-Monitoring, Analysis, and Reporting Technology) data on modern hard disk drives. It allows you to inspect the drive's SMART data to determine its health, as well as run various tests on it.
7
8Note: GSmartControl supports ATA drives (both PATA and SATA), various USB to ATA bridges and drives behind 3ware RAID controllers.
9
10http://gsmartcontrol.berlios.de
11
12
13Features
14
15* automatically reports and highlights any anomalies;
16
17* allows enabling/disabling SMART;
18
19* allows enabling/disabling Automatic Offline Data Collection - a short self-check that the drive will perform automatically every four hours with no impact on performance;
20
21* supports configuration of global and per-drive options for smartctl;
22
23* performs SMART self-tests;
24
25* displays drive identity information, capabilities, attributes, and self-test/error logs;
26
27* can read in smartctl output from a saved file, interpreting it as a read-only virtual device;
28
29* works on most smartctl-supported operating systems;
30
31* has extensive help information.
32
33
34What Is SMART?
35
36Short answer: SMART is a technology which provides hard disk drives with methods to predict certain kinds of failures with certain chance of success.
37
38Long answer: read below.
39
40Self-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. It is implemented inside the drives SMART provides several ways of monitoring hard drive health. It may provide 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, and repair the defects, reallocating the data to more safe areas.
41
42While 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.
43
44Another 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.
45
46At present SMART is implemented individually by manufacturers, and 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.
47
48Yet 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 standard. Luckily, smartmontools usually detects these bugs and works around them.
49
50
51Software Requirements
52
53You need to have the following software installed:
54
55* pcre - http://www.pcre.org .
56
57* smartmontools - see http://smartmontools.sourceforge.net .
58
59* GTK+, version 2.6 or higher - see http://www.gtk.org .
60
61* Gtkmm, version 2.6 or higher - see http://www.gtkmm.org .
62
63* libglademm, version 2.4 or higher - see http://www.gtkmm.org . Note: libglademm is not needed when using GTK+ / Gtkmm 2.12 or newer.
64
65Note that having GTK+ 2.12 and Gtkmm 2.12 is HIGHLY recommended. While earlier versions may work, they may produce suboptimal results and buggy behavior.
66
67Most of these packages are probably already provided by your distribution. Here are the packages you need to have to build GSmartControl on some Linux distributions:
68
69openSUSE, SLES, SLED: gcc-c++, pcre-devel, gtkmm2-devel, (possibly) libglademm-devel.
70
71Fedora, CentOS, RHEL: gcc-c++, pcre-devel, gtkmm24-devel, (possibly) libglademm24-devel.
72
73Mandriva: gcc-c++, gcc-cpp, libpcre-devel, gtkmm2.4-devel, (possibly) libglademm2.4-devel.
74
75Ubuntu, Debian GNU/Linux: g++, libpcre3-dev, libgtkmm-2.4-dev, (possibly) libglademm-2.4-dev.
76
77Note that usually you need to specify only these packages - the rest is installed automatically by the package manager's dependency resolver. Keep in mind that you also need smartmontools to run the program.
78
79Note: If using the official Windows package, the requirements are listed on GSmartControl's website.
80
81
82The following operating systems are supported:
83
84* Linux - All the popular configurations should work.
85
86* FreeBSD - Tested with DesktopBSD 1.6 (FreeBSD 6.3) / x86.
87
88* NetBSD - Tested with NetBSD 4.0.1 / x86.
89
90* OpenBSD - Tested with OpenBSD 4.3 / x86-64 / gcc-3.3.5.
91
92* Windows (2000 SP4 or newer) - Tested with Windows 2000 SP4, Windows XP SP3, Windows Vista SP2 (32-bit and 64-bit), Windows 7 SP1 (32-bit and 64-bit). The Windows port uses pd0, pd1, etc... for physical drives 0, 1, etc... .
93
94* Solaris - Tested with Solaris 10 / x86 / gcc-3.4.3 / blastwave, Solaris 10 / x86 / sunstudio12 / sunfreeware. OpenSolaris should work but has not been tested yet.
95
96* Mac OS X - 3rd-party testing by Fink project.
97
98* DragonFlyBSD - Code written but no testing has been performed yet. Expected to work without any issues.
99
100* QNX - Code written but no testing has been performed yet.
101
102
103Installation
104
105Short answer: build and install via: ./configure; make; make install
106
107Run gsmartcontrol-root to invoke gsmartcontrol with your desktop's su mechanism, or use the desktop menu entry.
108
109
110Long answer: read below.
111
112First, check if you can find a pre-built package for your distribution or operating system - they usually provide the best integration and the easiest installation procedure. For Linux, one option is to try the openSUSE Build Service - it provides ready-to-install packages for various popular Linux distributions (openSUSE, Fedora, etc...). See http://download.opensuse.org/repositories/home:/alex_sh/ .
113
114If you want to compile from source, check that you have all the required dependencies (see Software Requirements section). Then the usual
115
116./configure; make; make install
117
118will build and install it. Installation usually requires administrative privileges, but you don't need to install the program in order to run it directly from the build directory.
119
120
121Command Line Options
122
123GSmartControl 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. However, --verbose will still increase the verbosity of a log saved via "Options -> View Execution Log -> Save All".
124
125The most important parameters are:
126
127-?, --help - Show help options.
128
129-l, --no-locale - Don't use system locale.
130
131-V, --version - Display version information.
132
133--no-scan - Don't scan devices on startup.
134
135--no-hide-tabs - Don't hide non-identity tabs when SMART is disabled. Useful for debugging.
136
137--add-virtual - Load smartctl data from file, creating a virtual drive. You can specify this option multiple times.
138
139--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'.
140
141-v, --verbose - Enable verbose logging; same as --verbosity-level 5.
142
143-q, --quiet - Disable logging; same as --verbosity-level 0.
144
145-b, --verbosity-level - Set verbosity level [0-5].
146
147
148Permission Problems
149
150Short answer: you need to be root (that's Administrator in Windows). In X11, use kdesu, gnomesu, sux, xdg-su or similar.
151
152Long answer: read below.
153
154Most operating systems prohibit direct access to hardware to users with non-administrative privileges. Unfortunately, to access SMART data, smartctl needs to directly access the hard drive.
155
156The provided X11 desktop and menu icons should show the "Please enter the root password" dialog boxes, and, after correct information is entered, should run this program with root privileges. The dialogs should be available in most commonly used X11 desktop environments.
157
158Another way is to use the included gsmartcontrol-root script, which finds the available su program and runs gsmartcontrol with it.
159
160Yet another way is to manually invoke the program with kdesu, gnomesu, sux or similar programs. For example,
161
162kdesu -u root -c gsmartcontrol
163
164will ask for root password and run gsmartcontrol with root privileges. Replace "kdesu" with "gnomesu" if using Gnome. The "sux" or "xdg-su" commands may also help, if neither KDE or GNOME are available.
165
166Please don't set the "setuid" flag on smartctl binary. It is considered a security risk.
167
168
169Enable SMART Permanently
170
171Specifications 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.
172
173However, 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.
174
175The 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):
176
177smartctl -s on -o on /dev/sda
178
179For more information, see smartctl and smartd documentation.
180
181
182Known Issues
183
184Only ATA drives (both PATA and SATA), various USB to ATA bridges and drives behind 3ware RAID controllers are supported for now. The main reasons are:
185
186* We can't support drives which don't work with smartmontools. This affects drives which don't support SMART or don't export SMART data correctly (e.g. some USB enclosures, RAIDs, etc...).
187
188* Smartctl's output for SCSI drives is completely different compared to ATA. Also, SCSI drives are rarely found in desktop systems and the servers rarely have X11 / Gtkmm running, so this is a low priority task.
189
190* I only have ATA drives, so testing would be almost impossible.
191
192Immediate Offline Tests are not supported. I haven't found a way to reliably monitor them yet. Besides, they run automatically anyway if Automatic Offline Data Collection is enabled.
193
194Testing is only supported on drives which correctly report their progress information in capabilities.
195
196Not all drives support disabling Automatic Offline Data Collection, even if they report otherwise. Unfortunately, there's no way to detect such drives.
197
198Running on GTK+ / Gtkmm versions earlier than 2.12 may cause visual artifacts, usability issues (especially with tooltips and icons), instability, etc...
199
200The texts probably contain a lot of grammatical errors, English being my third language and all.
201
202
203Reporting Bugs
204
205If it is a SMART or drive-related problem, please try to test it with smartctl first. Chances are, the problem you're experiencing is not tied to GSmartControl, but is a drive firmware or smartctl problem. For example, to see a complete information about your /dev/sda drive, type the following in a terminal emulator (e.g., xterm, konsole or gnome-terminal):
206
207smartctl -a /dev/sda
208
209Note: If using Windows, the device name should be /dev/pd1 for the second physical drive, etc... .
210
211If you still think it's a GSmartControl issue, please collect the following information about your system. Without it, it may be very hard or impossible to fix the bug.
212
213* Which operating system you use (for example, openSUSE Linux 11.4).
214
215* Which version of GTK and Gtkmm you have installed. Finding this out is very distribution-specific. For example, on openSUSE it would be "rpm -q gtk2 gtkmm2". Some distributions have gtkmm24 instead. You may also search them in your distribution's graphical package manager, if there is one.
216
217* Execution log from the program, if possible. To obtain it, run the program with -v option, e.g. (type the following in a terminal emulator or Run dialog):
218
219gsmartcontrol-root auto -v
220
221Note: On Windows, run gsmartcontrol.exe with "-v" switch as Administrator.
222
223Perform the steps needed to reproduce the bug, then go to "Options -> View Execution Log", and click "Save All".
224
225* Detailed description of steps you performed when the bug occurred.
226
227Once you have this information, send an email to me, Alexander Shaduri <ashaduri 'at' gmail.com>. Note that I may refer you to smartmontools support if it's a bug in smartmontools and not GSmartControl. Normally, I won't redirect your support request to them myself, because they may ask questions which only you have the answers to.
228
229Please read the "License and Copyright" and "Patch Licensing" sections before sending any patches.
230
231
232License and Copyright
233
234For license information, see LICENSE_gsmartcontrol.txt file.
235
236You may notice that GSmartControl is not licensed under "GNU GPL version X or later", but under "GNU GPL version X and Y". I firmly believe that it's unwise to license a piece of code under non-existent licenses, whatever anyone else might say. The reason for this is that one simply CANNOT know that, say, in 20 years FSF won't be bought by some corporation who will release GPL version Z which will completely reverse the reasons GPL was created for.
237
238The removal of "or later" clause somewhat imposes responsibility on the copyright holders to review every future version of the license once it's released, and, if deemed acceptable, re-license the code under the new license (possibly retaining the old licenses). Unfortunately, this is a necessary inconvenience we will have to deal with.
239
240
241Patch Licensing
242
243Due to reasons described in "License and Copyright" section, to make it possible to re-license the code without tracking down all the people who ever wrote a patch, the copyrights of all minor patches must be assigned to the central copyright holder of the project. If the patch is major enough (that is, it forms a significant part of the program source code), the author may retain the copyright, if he or she chooses to do so. However, unless the author plans to maintain his part of the source code, he / she is humbly asked to consider assigning away his / her copyright. A simple "I disclaim all copyright to this patch" by the author is sufficient. All credits will be mentioned in product documentation, whatever the size of the patch is.
244
245Please note that centralization of copyright is needed to maintain a reasonably healthy legal status of the project. Also note that this method is not unique - FSF and many other organizations require exactly the same thing.
246
247Some contributors may have reasonable doubts about the future status of this project. Let me assure you that this project will never have more restrictive license than GPLv2. If, some time in the future, the GPL is somehow invalidated in court, the project will be re-licensed under similar (in spirit) license, if possible, or a license less restrictive than GPL (for example, the three-clause BSD license).