Skip to main content

how you know when your harddrive is going to die

I'm not entirely sure, but maybe from this message from dmesg.

hdc: dma_timer_expiry: dma status == 0x21
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x01 { AddrMarkNotFound }, LBAsect=0, sector=0
ide: failed opcode was: unknown
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x01 { AddrMarkNotFound }, LBAsect=63, sector=63
hdc: dma_timer_expiry: dma status == 0x21
hdc: dma_timer_expiry: dma status == 0x21
hdc: DMA timeout error
hdc: dma timeout error: status=0xd0 { Busy }
ide: failed opcode was: unknown
hdc: DMA disabled

My colllegue was shocked when I mentioned I buy an average of 2-3 hard drives a year for personal consumption. So I told him that I have more than 3 machines at home with different age groups, it is natural that these drives die and need to be replaced.

The most awful thing about this is that you loose your data which I have several times in the past. I'm sure faithful readers of this blog will have already read the first few articles about data management and have 2 copies of the same data distributed in their homes to avoid such a tragedy.

The drive I mentioned above used to be an external firewire IDE enclosure. I used it on windows and mac. Last I attempted to use it for was a backup of all my Mac data in Mac native's filesystem. To shorten the story, it wiped out whatever was in it. So I decided to do what I normally do with all "faulty" disks. Stick it into a linux machine. They will tell you exactly whats wrong with it.

Now, why can't Windows or Mac OS (didn't check console though) tell you that, it just tells you all kinds of funny stuff and makes your disk un-usable. At least that message was more straight forward and less misleading.


Anonymous said…
Backups are for losers!
Melven said…
Tell that to the guy who just lost his mp3s after spending 2 weeks painfully converting his CD collection.

in which case, it could be youre damned if you do and damned if you dont.

I allocated my faulty harddrive as another backup drive temporarily. How intelligent is that?

Popular posts from this blog

Multiple Broadlink RM mini 3 integration using MQTT

Broadlink now has quite a lot of integration options almost out of the box. If you enable Broadlink IHC, you can directly link it to Alexa by giving the device a unique name.

There is a homebridge plug in for homekit integration but I haven't tried or tested this.

I wanted to put the device in domoticz so I can have more control over what can trigger my broadlink. I decided to use broadlink-mqtt for this, which is a fairly easy method to trigger from any source.

Setup Instructions for broadlink-mqtt

1. git clone

2. vi /home/pi/broadlink-mqtt/mqtt.conf

3. Update the mqtt.conf file with the device type set as multiple_lookup

device_type = 'multiple_lookup'
mqtt_multiple_subprefix_format = '{type}_{mac_nic}/'
4. Start the python script and check that it started and detected all the RM devices.
Check the log file to see what the IP / MAC addresses are. DEBUG Connected to RM2 Broadlink device at …

Fibaro HCL Virtual Device Slider

How to setup Fibaro home center lite (HCL) slider for virtual devices.

As the Fibaro HCL does not support LUA. The question was how to update the number value of the slider to send to the HTTP string. Thanks to this site which is a really good reference

The 2 use cases here are;

Sonos HTTP API Volume

To allow for volume control for all Sonos devices, add a virtual device with the IP address for SONOS HTTP API and specify the default port to 5005. Create Slider and put the following text into the string.

GET /volume/_sliderValue_ HTTP/1.10x0D0x0A0x0D0x0A

Domotiz Virtual Devices

GET /json.htm?type=command&param=switchlight&idx=XX&switchcmd=Set%20Level&level=_sliderValue_ HTTP/1.10x0D0x0A0x0D0x0A

Replace XX with the device ID.

Restart Fibaro HCL when it stops working automatically

It seems that the Fibaro HCL seems to hang every now and then. Instead of trying to restart it regularly, which doesn't really work, as it's almost impossible to predict when this will happen.

This method checks that the HCL is actually running and in the event it stops working, trigger a script that will restart it.

1. Get a non Fibaro controlled power plug and scripts to control it.

I used a wifi smart plug, TP-link HS100 and downloaded the scripts from

2. Create a bash script to restart the Fibaro, e.g.



$scripts/ -t $ip_addr -c off
sleep 10
$scripts/ -t $ip_addr -c on

3. Create a test global variable in the Fibaro HCL

Go to the variables panel and create a test variable, e.g. Test

4. Add a cron entry to test that the Fibaro API is still working and restart if it's not.

The cron script is scheduled ev…