Configuring On Board SD Card Interface

There are two basic options when configuring the OS file /etc/fstab to auto mount the SD card at boot-up rather than using mount commands, either on the command line or via rc.local, these depend on how the disk is to be referenced.

Directly referencing the disk by its /dev/sdxy reference has the benefit that the SD card can be swapped out without affecting the mount process, but has the drawback that the sdxy ident used by the SD card could change if additional flash disks are plugged into USB slot(s) before power up due to the way in which the USB bus is initialised and devices are discovered.

Referencing the disk by its unique UUID reference number side-steps this problem, but if the SD card is then changed then the UUID number used in fstab as a disk reference will stop matching the new SD card's UUID number and so the mount process will fail.

A compromise solution here would be to create a new udev rule to catch the SD card interface and create symlink shortcut references for each of the partitions, this way know for sure which of the sdx devices is the SD card and can use these as the disk reference in fstab.


In this example let's first show how to mount disks automatically using the UUID method

To find a disks UUID reference type the below at the prompt :


ls -l /dev/disk/by-uuid


MyPi Industrial Raspberry Pi SD Card Configuration Step 1


Here you can see that the SD card is shown as /dev/sda1 and UUID 9016-4EF8

So we can now use this in /etc/fstab so the device is automounted at start up

The below example shows the procedure for configuring /etc/fstab to auto mount the SD card at boot using the UUID number and we've chosen /mnt as the mount point in this case.

Note that in this example we are using just the basic default and have not added any options like noatime, we've also specified disk as third in the sequence for the boot up fsck scan (see man fstab for more information on what options are available here).


MyPi Industrial Raspberry Pi SD Card Configuration Step 2


At the next reboot the SD card (sda1) has been successfully mounted onto /mnt


MyPi Industrial Raspberry Pi SD Card Configuration Step 3


OK so let's redo this, but this time we'll create and use a udev rule that sets up shortcuts that always point to the internal SD card, making administration easier and allowing for a more flexible fstab mount statement.

We'll start off by creating the udev rule below that targets the on-board SD card controller, this has been already setup on the standard image

 This rule will create /dev/sdcard references for each of the partitions on the SD card, giving a handy short-cut for each one :

MyPi Industrial Raspberry Pi SD Card Configuration Step 5


So we can now re-edit our fstab and use the disk reference /dev/sdcard1 rather than the UUID reference :


MyPi Industrial Raspberry Pi SD Card Configuration Step 6  


Save and reboot shows the mount has worked successfully :


MyPi Industrial Raspberry Pi SD Card Configuration Step 7

 Note that the system shows /dev/sda1 and not /dev/sdcard1 as /dev/sdcard1 is a symlink to a device rather than a real device.


In the examples above we have used /mnt as the mount point, however this could equally be almost any folder under the root directory such as /usr/local/bin with the right configurarion, allowing you to easiliy expand the core file system.

For more information on selecting the most appropriate SD card for use with your Embedded Raspberry Pi device see our KB article Industrial SD Cards




Contact us now to discuss your project

Ready to order, contact us today for pricing or samples

Contact Us