Setup auto-mounting USB flash drive on Raspberry Pi

This tip is useful if you have scripts running that copy files to specific locations and you want the mounts to remain static. Although this is aimed at the raspberry pi it will also work on Debian etc you’ll just need to change the UID, GID etc.

I use ntfs drives so I can use them both on linux and windows so the first step was to install ntfs-3g
sudo apt-get install ntfs-3g

Insert the usb drive into a free port and run the following command to find out it’s UUID
ls -l /dev/disk/by-uuid/

My test drive showed this
lrwxrwxrwx 1 root root 10 Nov 16 20:52 DE64414D64412A1B -> ../../sda1

Make a note of the UUID – DE64414D64412A1B and the drive location /sda1

Create a mount point ie
sudo mkdir /man/usbflash

Set permissions
sudo chmod 770 /mnt/usbflash

Obtain the userid (UID) and groupid (GID) of the pi user
id

mine returned
uid=1000(pi) gid=1000(pi)

Mount the flash drive (note i’m using ntfs-3g for ntfs. Use vfat for FAT32 and ext4 for ext4)
sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=007 /dev/sda1 /mnt/usbflash

To make this persistant we update fstab but before doing so it’s a good idea to make a backup
sudo cp /etc/fstab /etc/fstab.backup
sudo nano /etc/fstab

Add the following to fstab (replace UUID UID GID and mount point with yours)
UUID=DE64414D64412A1B /mnt/usbflash ntfs-3g uid=1000,gid=1000,umask=007 0 0

Before mine looked like this
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

and after

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
UUID=DE64414D64412A1B /mnt/usbflash ntfs-3g uid=1000,gid=1000,umask=007 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

Reboot
sudo reboot

That’s it you should find you drive automatically mounted under the folder you specified ie /mnt/usbflash

Continue Reading

Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)

A package install I was doing got interrupted and when I tried to remove it I got the following error.

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?.

To fix I found out what process was using the lock

sudo lsof /var/lib/dpkg/lock

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dpkg 9442 root 3uW REG 179,2 0 7067 /var/lib/dpkg/lock

And then killed it off

sudo kill -9 9442

Continue Reading

Upgrade Debian 6 Squeeze To Wheezy 7

I had a debian box which I needed to upgrade speciffically to wheezy.

Open the sources file and change the word squeeze to wheezy
nano /etc/apt/sources.list
Change the words ‘squeeze’ to ‘wheezy’

deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as 'volatile'
deb http://mirrors.kernel.org/debian/ wheezy-updates main
deb-src http://mirrors.kernel.org/debian/ wheezy-updates main

Save and exit
apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot
Job done 🙂
Continue Reading

Map owncloud share in linux using webdav

Install davfs2
apt-get install davfs
Reconfigure davfs2 to allow access to other users (select ‘yes’ when prompted).
dpkg-reconfigure davfs2

Add users you want to be able to mount the share (where USER is the username)
usermod -aG davfs2 USER

Create a mountpoint
mkdir /mnt/owncloud
Mount the WebDav ownCloud
mount -t davfs https://owncloud_address_or_ip/owncloud/remote.php/webdav /mnt/owncloud
If your owncloud installation is in a directory other than ‘owncloud’ substitute it above. I used HTTPS which will encrypt communication and credentials but HTTP can also be used but obviously is higher risk.
Credentials can be automatically supplied by adding them to the following files
system wide /etc/davfs/secrets
individually ~/.davfs2/secrets
Edit either file using nano and add
https://owncloud_address_or_ip/owncloud/remote.php/webdav /mnt/owncloud USERNAME PASSWORD
To mount on boot add the following to fstab
https://owncloud_address_or_ip/owncloud/remote.php/webdav /mnt/owncloud davfs2 user,auto 0 0
(using noauto instead of auto will prevent it beingmounted automatically so choose depending on your enviroment)
To manually mount use
mount /mnt/owncloud
To unmount use
umount /mnt/owncloud
When I tried to create a test file on the shared I got the following error
touch: setting times of ‘test’: No such file or directory
To fix this edit your /etc/davfs2/davfs2.conf file and change/uncomment the ‘use_locks’ parameter to
use_locks 0
Continue Reading

Mounting a WebDav Share In Linux

Will clean up this post when i get a chance


apt-get install davfs2


Remote filesystems should not be indexed, so you should exclude the /dfs directory from the updatedb command:
edit /etc/cron.daily/slocate.cron and add the /dfs directory in the list of excluded directories:
/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e "/tmp,/var/tmp,/usr/tmp,/afs,/net,/dfs"




Continue Reading

Day 2

So i’ve had breakfast and now waiting for Sarah to start day 2 of the assessment. Apparently today we are taking a dog to the local garden centre to experience what it’s like being in a public place with one.

Continue Reading

Install mysql php5 and phpmyadmin on raspberry pi

Install PHP

sudo apt-get install php5-cgi

Edit php.ini file
sudo nano /etc/php5/cgi/php.ini

Scroll the bottom and add
cgi.fix_pathinfo = 1

save and exit

Enable fast CGI
sudo lighty-enable-mod fastcgi-php

Restart lighttpd
sudo /etc/init.d/lighttpd restart

Create phpinfo page
sudo nano /var/www/phpinfo.php

and add the following
<?php phpinfo();?>

Save and exit

Enter Pi ip addres into a browser followed by phpinfo.php
http://192.168.1.x/phpinfo.php

Install MySQL and PHPMYADMIN

sudo apt-get install mysql-server mysql-client phpmyadmin

mysql root password, confirm

During the installation of PHPMyAdmin you will be asked which web server is installed. Choose lighttpd.

A message will appear asking whether you want to create a dummy database. As the message states, if you know what you are going to be using the database server for or a database is already configured then you can answer no but if you are just experimenting then you can answer yes.

I recommend answering yes to this. It doesn’t do any harm.

Continue Reading