Rebuilding a software controlled RAID on Ubuntu

One of my RAID arrays on my server decided that one of the drives was bad and dropped it out of my array. I have two software defined RAID 1 mirrored arrays, /dev/md0 which contains my main drives, and then a smaller array, /dev/md1

This is what mdadm was showing for when one of the drives was dropped out:

kevin@linuxsvr:~$ sudo mdadm --detail /dev/md1
/dev/md1:
 Version : 0.90
 Creation Time : Sat May 16 18:38:51 2009
 Raid Level : raid1
 Array Size : 1485888 (1451.31 MiB 1521.55 MB)
 Used Dev Size : 1485888 (1451.31 MiB 1521.55 MB)
 Raid Devices : 2
 Total Devices : 1
Preferred Minor : 1
 Persistence : Superblock is persistent

Update Time : Tue Mar 5 14:10:24 2013
 State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
 Spare Devices : 0
UUID : 44b55b61:84e84f5f:5c7760e0:2ac997c6
 Events : 0.90560
Number Major Minor RaidDevice State
 0 8 21 0 active sync /dev/sdb5
 1 0 0 1 removed

I couldn’t find any messages in syslog for what was wrong with my drive, and the SMART status for both drives was still good. I did have to power off the server to move it without a clean shutdown, so this was probably self-inflicted…

On one of my arrays, adding back the missing drive caused it to add as a spare, it re-sync’d and then everything was back to normal. On the other, it wouldn’t add back:

kevin@linuxsvr:~$ sudo mdadm --add /dev/md1 /dev/sdc5
mdadm: /dev/sdc5 reports being an active member for /dev/md1, but a --re-add fails.
mdadm: not performing --add as that would convert /dev/sdc5 in to a spare.
mdadm: To make this a spare, use "mdadm --zero-superblock /dev/sdc5" first.

I found a few posts describing to fail the drive, remove and then add it back, but this still gave the same error:

sudo mdadm --manage /dev/md1 --fail /dev/sdc5
sudo mdadm --manage /dev/md1 --remove /dev/sdc5
sudo mdadm --manage /dev/md1 --add /dev/sdc5

I don’t know exactly what the recommendation in the error message did, but using the –zero-superblock option and then adding back the drive again did the job. It resync’d successfully and everything’s back to normal.

This post on StackExchange has some good info and suggestions. This one too.

Configuring Ubuntu to access a wireless HP printer

hplip is an opensource project to support multiple HP printers on Linux. On Ubuntu 12.04 I already had this installed, but running ‘sudo hp-setup’ gave me this error:

kev@ubuntu:~$ sudo hp-setup

HP Linux Imaging and Printing System (ver. 3.12.2)
Printer/Fax Setup Utility ver. 9.0

Copyright (c) 2001-9 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: Qt/PyQt 4 initialization failed.
error: hp-setup requires GUI support (try running with --qt3). Also, try using interactive (-i) mode.

A quick Google turned up this post, and installing hplip-gui installed the missing libraries and got me up and running.

sudo apt-get install hplip-gui

Starting up hp-setup again and following the wizard to point to the IP of my printer was all I needed to get my printer working.

Running Dropbox on Linux

Given that the Linux version of Dropbox installs itself to .dropbox-dist in your home dir, I often forget where it is (?) or how to start it.

Install instructions – here.

Start service running:

cd .dropbox-dist
./dropboxd

Or to run in background:

./dropboxd&

Leave running after logoff:

nohup ./dropboxd& > dropbox.out