Reshaping mdadm RAID 6 to RAID 10

When setting up a RAID array I have always opted for either RAID 5 for arrays with less than five drives or RAID 6 when there are more than five. It wasn't until recently that I noticed how much of a penalty there is for running a RAID 6, six IOPs while the penalty for RAID 5 is four IOPs. When a drive has failed in one of my RAID 6 arrays, I never saw the rebuild speed get above 75MiB/s even though the failed drive was capable of 150MiB/s. For smaller arrays, that may not be such a big deal. When it's a 16TiB array it will take about two and a half days to rebuild.

Quickly Configuring dd-wrt

Recently, I've been having some issues with dd-wrt on my Linksys wrt-1200ac router. I'm not certain if there is a bug with the firmware or if there is something wrong with the router itself. After flashing the router, it would work great anywhere between a day to a week before not being able to access the internet or becomes unresponsive. The only way that I was able to fix it was by doing a factory restore, which means I had to reconfigure my router.

Seeing More Progress with dd and pv

In cloning my PS3 and PS4 hard drives using the dd command, and using the status=progress I was only able to see how much has been transferred, how long the command has been running, and the speed. The only thing that was missing was a estimate of how long it would take to complete. Additionally, a progress bar would have been nice. While waiting for the process to complete I looked for a tool that would provide what I was missing.

Sony Play Station 3 Hard Drive Upgrade

Back in 2008, I purchased a Sony PS3 along with my 40" Samsung TV. I was lucky to get a model that is able to play PSX and PS2 games so I definitely want to hold on to this for as long as I can. Unfortunately, the 80GB hard drive has become rather limited and would like to free myself of that constraint. Over the years I have accumulated various computer parts and one of them was a 256GB OCZ Agility 4 SSD, so I decided to put it to use.

Create a Backup Drive

The first and obvious thing to do is BACKUP YOUR DATA.

Duplicity Backup

What is Duplicity?

Duplicity is a command line tool used for incremental backups to local or remote storage, which supports Amazon S3, Rackspace Cloud, Dropbox, Google Docs, rsync, ssh, FTP, FTPS, and webdav.


  • gpg
  • swaks
  • duplicity
  • duply (optional)

Generating GPG Keys

Although duplicity uses GPG by default, this can be skipped by adding the --no-encryption option to the command.
# gpg —gen-key
# gpg --full-generate-key

Cryptsetup & dm-crypt

cryptsetup is a command line tool that interfaces with the dm_crypt kernel module that creates, access, and manages encrypted devices.


    • Debugging The --debug option does not leak the passphrase, however, using strace does.
    • Backups Always have a fresh backup before attempting anything, especially if you plan on reencrypting a device.
    • Cloning Do not distribute cloned encrypted devices because the clone w

Gitlab + Runner with SSH and Docker

If you’re going to go with a cloud provider, I would highly recommend using Digital Ocean because it’s the best bang for your buck overall. With Digital Ocean, a droplet that meets the recommended resource requirements costs $20/mo. That price also includes bandwidth unlike Google Cloud Platform and Amazon’s Web Services.

Linux Logical Volume Manager (LVM)

The Logical Volume Manager uses a device mapper framework which creates an abstract layer of virtual devices to manage phyical devices with greater flexibility. Device mappers is not only for LVM, but is also used for software RAID, disk encryption, and features such as snapshots. Other features provided by a device mapper are: