Skip to main content

Hdparm, Load_Cycle_Count and Samsung HM641JI and Seagate ST320LT022

Previously i have written about controlling the increment of load cycle count of my Samsung harddrive running Fedora and LMDE. In this post, i must admit i have included many redundant steps to tune the harddrive setting  to control Load_Cycle_Count.

In this series, i am writing further about controlling the load cycle count of my external Seagate harddrive to ensure that the harddrive do not suffer an early death.

In this first section, i am running OpenSUSE Leap 42.1 on my external Seagate harddrive. As this new hybrid consumer-enterprise distribution (i.e OpenSUSE Leap) works like Fedora (another RPM-based dristribution), I created a systemd service named hdsilence.service to run at boot up. This service allows me to spin down my idling internal harddrive and keep my external harddrive spinning. To refresh our memory, we execute the command :

ls /dev/disk/by-id/*  

to retrieve the model and serial of all harddrives attached to our workstation.

Below is the contents of hdsilence.service:

[Unit]
Description=Silence HD
After=suspend.target

[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 -S 251 /dev/disk/by-id/ata-Seagate_Model_Serial
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -B 127 -S 12 /dev/disk/by-id/ata-Samsung_Model_Serial

[Install]
WantedBy=suspend.target basic.target


To get a sense of the syntax of systemd service, you may refer to archlinux Archwiki (https://wiki.archlinux.org/index.php/Systemd) which provides a comprehensive introduction to systemd. I am sure this article is interesting for beginners and experienced linux users :)

In the second section, i am running Ubuntu and Sparkylinux on my external Seagate harddrive.

I edited hdparm.conf in the directory /etc/hdparm.conf as advised in the previous post.

The edited hdparm.conf includes the following details:

# Root file systems.  Please see README.Debian for details
ROOTFS = /dev/disk/by-id/ata-Samsung_Model_Serial


/dev/disk/by-id/ata-Samsung_Model_Serial {
     apm = 254
     spindown_time = 251
#    dma = on
}


Notice that the dma option is commented (with #). You may experiment with uncommenting it ( by removing #) with caution as it work on some workstations but not on mine.
In addition, i created a new rule called 50-hdparm.rules in /etc/udev/rules.d.

50-hdparm.rules include one statement for putting my idling Samsung harddrive to sleep that is similar to hdsilence.service and keeping my working external Seagate harddrive chugging along. 

50-hdparm.rules shall include the following statements:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb", RUN+="/usr/sbin/hdparm -B 254 --prefer-ata12 -S 251 /dev/disk/by-id/ata-Seagate_Model_Serial"

ACTION=="add|change", KERNEL=="sda", ATTR{queue/rotational}=="1", RUN+="/usr/sbin/hdparm -B 127 -S 12 /dev/disk/by-id/ata-Samsung_Model_Serial"



To ensure that the load cycle count is managed successfully, please check the temperature of the harddrive by running the command:

sudo smartctl -A /dev/disk/by-id/ata-Samsung_Model_Serial | grep -E "Load_Cycle|ID| Power_On|Temp"

The command is used to check Load_Cycle-Count, Power_On_Hours and Temperature_Celsius.

Please be advised that i am not responsible for any system failure in your workstation should you follow my procedures above as different workstations has their own unique settings. You are advised to exercise due diligence before attempting the steps above.

Please feel free to share your experience in tuning your harddrive to avoid harddrive crash.

Follow my blog with Bloglovin

Comments

Popular posts from this blog

Repairing Fedora Grub using Fedora Live USB

First, Prepare the Fedora Workstation Live CD using Fedora Media Writer. Next, run the Workstation Live CD and run the console. Then, enter the following commands if you are running the separate boot and root partition: 1) sudo mount /dev/sdaX /mnt Note: sdaX is the root partition 2) sudo mount /dev/sdaW /mnt/boot Note: sdaW is the boot partition The following files are essential for running the essential processes for repairing grub and shall be mounted: 3) sudo mount --bind /dev /mnt/dev 4) sudo mount --bind /proc /mnt/proc 5) sudo mount --bind /sys /mnt/sys 6) sudo mount --bind /var/run /mnt/var/run Now, you are ready to go into the Fedora partitions to repair the grub files. The path should be changed to root user from liveuser> to root>: 7) sudo chroot /mnt If you are running dual boot Windows and Fedora system, the following command will replace the Metro Interface: 8) grub2-install /dev/sda With a dual-boot or multi-boot systems, the follow

Installing SUSE Imagewriter on Linux Mint Debian Edition

The original title for this post is "Installing SUSE Imagewriter on Ubuntu LTS". Download Zip, save to preferred directory:~/Downloads However due to data loss of the blog, i decide to rewrite this article using Linux Mint Debian Editi on ( a similar distribution to Ubuntu ). First we have to download the source from Github (https://github.com/openSUSE/imagewriter) Download ZIP, save to preferred directory: ~/Downloads Extract imagewriter-master.zip in /home/username/Downloads and in terminal run the command: cd /home/username/Downloads/imagewriter-master Install the latest version of qt4-qmake and libqt4-dev by running: sudo apt-get update && sudo apt-get install qt4-qmake libqt4-dev Instructions for Linux Installation on github Follow the instructions in README.md by running the command: qmake DEFINES=USEHAL imagewriter.pro  Follow by the command: qmake DEFINES=USEUDISKS imagewriter.pro Next run the command: qmake DEFINE

Fixing time on sysvinit and systemd

If you have a system that boot using different GNU/Linux init systems such as sysvinit (aka System 5) and systemd (aka System 500) in addition to proprietary Windows system, you may face incorrect time display on one of the aforementioned system. The difference in time display is dependent on the time difference of your location and the UTC time. Further complication may result from concept like Daylight Saving Time (DST). If the Bios is set to localtime, you may fix it in systemd boot system using 'timedatectl' command like: sudo timedatectl set-local-rtc 1 However, if you are using sysvinit and Bios is using localtime, you can set inform the system that local time is being used using 'hwclock' command like: sudo hwclock --localtime or to synchronize the hardware clock with system time and inform the system using: sudo hwclock --systohc --localtime If Bios is using UTC time, you may revert the change with 'timedatectl' like: sudo timedatectl set-lo