Introduction: Using a USB External Hard Drive With Your Raspberry Pi


Experimental introduction:

In many cases SD capacity is not enough. Luckily Raspberry Pi can easily be connected to external USB hard drives. Follow the steps in this section, and you will soon have a lot more storage connected to your Raspberry Pi.

Step 1: Experimental Hardware Devices

Experimental hardware devices:

This experiment requires the following hardware:

  • Raspberry Pi board.
  • USB External hard drive.

This experiment requires the following software:

  • tightvncserver

It is recommended that any USB external hard drive that you choose should be powered by an external power supply rather being powered by the USB port. In the past I have had bad experiences trying to power USB external hard drives from the Raspberry Pi USB port. Sometimes the Raspberry Pi was not even able to find the hard drive.

Experiments Wiring:

  • Please plug the external hard drive into the Raspberry Pi USB connector.

Step 2: Make Sure That Your Raspberry Pi Software Is Up to Date

Execute the

following commands to make sure your Raspberry Pi has the latest software.

$sudo apt-get update

$sudo apt-get upgrade

This will update all the installed software on your Raspberry Pi.

Step 3: Verify That Your Raspberry Pi Is Able to Recognize the Hard Drive.

Execute the following command to confirm your

Raspberry Pi recognizes the hard drive that you plugged in.

$sudo fdisk -l

If you do not see it, you can fix it by following these procedures:

1. Reboot the Raspberry Pi

2. Make sure you are using an external power supply for your USB hard drive as the Raspberry PI USB port will probably not have enough power for it.

3. Do not use a USB Hub plug the hard drive directly into the Raspberry Pi.

4. Verify that your Hard drive, USB interface is using USB 2.0. My experience is that Raspberry Pi is unable to use USB 3.0 interfaces.

Step 4: NTFS Hard Drive Compatibility Software Driver Installation


the following command to install this software.

 $ sudo apt-get install ntfs-3g

Step 5: Specify the Location Path That You Want to Mount the USB Hard Drive

Execute the following command to create the path you

want to use to mount the hard drive. The name "usbhdd" is for example, it can be whatever you like following Linux naming standards.

$ sudo mkdir /media/usbhdd

Execute the following command to set up the user rights for your hard drive path.

$ sudo chown pi:pi /media/usbhdd

Execute the following command to mount the hard drive so that you can use it. Specify // media / usbhdd path, using the name that you set up previously.

$ sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1

If an error message appears as in figure 5-3 this means there is a problem is the file format, make sure your hard drive is using the FAT32 format. If you want to format the hard drive in the Raspberry Pi, you can see the next chapter "Format HDD" for instructions. You can also plug the external hard drive into your favorite Windows PC and format it with the FAT32 format as well.

Step 6: Hard Drive Confirm Access

Now that we have defined a path and mounted the hard

drive, you can use this path and access information on the USB hard drive.

$ cd  /media/usbhdd
$ ls

If you want to remove the USB hard drive execute the
same instructions but substitute the unmout command for the mount command as show below.

$ sudo umount /media/usbhdd

Step 7: Set to Automatically Mount When the System Starts

It is a lot of trouble to have to mount the drive

Every time you want to use it so lets have the system automatically mount it when the system reboots.

As we are going to update one of the system Let's back up the file fstab configuration file before updating it by executing the following command.

$ sudo cp /etc/fstab /etc/fstab.backup

To accomplish what we need we have to obtain the UUID of the external hard drive. Executing the following command will this and a great deal more information as well.

$sudo blkid

So in my example you will see /dev/sda1: LABEL = "HD256G" UUID = "1599-18FA" TYPE = "vfat". The information that we need is UUID = "1599-18FA" and TYPE = "vfat". Your results will probably be different so you need to substitute your information when we edit the fstab file.

Step 8:

So now lets edit the fstab file by executing the following command.

$ sudo nano /etc/fstab 

We will add a line in this file to describe the hard drive. Your UUID will be unique, so please update with your data. They of vfat probably will be same and everything else will be same.

UUID="1599-18FA" /media/usbhdd  vfat     rw,defaults 0 0

Additional information:

You can also use auto instead of vfat or ext3 to automatically have the system determine the hard disk format type. So then the line would like the following.

UUID="1599-18FA" /medusbia/hdd  auto    rw,defaults   0 0

Step 9: Test the Change for Auto Mount

This change can be tested quickly by executing the

Following command. If the /etc/fstab file is incorrect you will see an error message as indicated below.

$ sudo mount -a

To fix this go back and verify all the instructions
Have been correctly following and the text you entered is correct. After everything has been fixed and you have tested successfully, you can reboot your Raspberry Pi by executing the following command.

$ sudo reboot

Step 10: Final Testing

After reboot and after you Login to your Raspberry

Pi, you can verify success by executing the following command and you test accessing the external hard drive.

$ cd /media/usbhdd
Raspberry Pi Contest

Participated in the
Raspberry Pi Contest