External USB Drive¶
A goog resource is here
Setup¶
First connect the drive and find it:
pi@calculon ~ $ sudo fdisk -l
Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes
4 heads, 16 sectors/track, 486192 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 31116287 15496704 83 Linux
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 1250263727 625131863+ ee GPT
Make a mount point and mount and/or unmount the drive.
pi@calculon ~ $ sudo mkdir /mnt/usbdrive
pi@calculon ~ $ sudo mount /dev/sda1 /mnt/usbdrive
pi@calculon ~ $ sudo umount /dev/sda1
Formatting Disk¶
Starting with a USB hard drive 640GB formated in OSX’s HSF+, I needed to change it to ext4:
pi@calculon ~ $ sudo parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Maxtor OneTouch (scsi)
Disk /dev/sda: 640GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart primary ext4 1 640000
(parted) p
Model: Maxtor OneTouch (scsi)
Disk /dev/sda: 640GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 640GB 640GB primary
(parted) quit
Information: You may need to update /etc/fstab.
Note in the mkpart
line, the start and stop locations are in MB.
pi@calculon ~ $ sudo mkfs.ext4 /dev/sda1 -L Calculon
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=Calculon
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
39067648 inodes, 156249856 blocks
7812492 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
4769 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Now mount the drive and double check it:
pi@calculon ~ $ sudo mount /dev/sda1 /mnt/usbdrive
pi@calculon ~ $ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 15G 3.7G 11G 27% /
/dev/root 15G 3.7G 11G 27% /
devtmpfs 112M 0 112M 0% /dev
tmpfs 24M 240K 23M 2% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 47M 0 47M 0% /run/shm
/dev/mmcblk0p1 56M 9.8M 47M 18% /boot
/dev/sda1 587G 70M 557G 1% /mnt/usbdrive
Fix permissions:
pi@calculon ~ $ sudo chown pi:pi /mnt/usbdrive
pi@calculon ~ $ sudo chmod 777 /mnt/usbdrive
pi@calculon ~ $ sudo ls /mnt/usbdrive -alh
total 24K
drwxrwxrwx 3 pi pi 4.0K Dec 14 20:45 .
drwxr-xr-x 3 root root 4.0K Dec 14 18:24 ..
drwx------ 2 root root 16K Dec 14 20:45 lost+found
Automounting¶
Add the following to fstab so it mounts on boot.
sudo nano /etc/fstab
/dev/sda1 /mnt/usbdisk auto defaults,user 0 1
This sets the file system to auto
and user
enables write
permissions for all users. The 0 is for debugging and 1 is for a file
system check at boot. You can test this out by:
sudo mount -a
Swap Partition on Hard Drive¶
Don’t ever make a swap partition on the sd card ... it is too slow and will reduce the card’s life span.
Create a partition for swap on say
/dev/sda2
following the method above, then exitparted
.Use
mkswap /dev/sda2
to set it up.Edit
/etc/fstab
and add the following line:/dev/sda2 none swap sw 0 0
Get rid of RPi’s file base swap by removing the packages:
sudo apt-get remove dphy-swapfile
Make sure swap is working:
swapon -s
pi@calculon ~ $ swapon -s Filename Type Size Used Priority /dev/sda2 partition 4295676 0 -1
Making available to OSX¶
Make the following changes to the config file, adding the drive to netatalk.
pi@calculon ~ $ sudo pico /etc/netatalk/AppleVolumes.default
# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots
# By default all users have access to their home directories.
~/ "Home Directory"
/mnt/usbdrive
# End of File
There are also options to enable Time Machine support (see tm).
Then restart netatalk
:
pi@calculon ~ $ sudo /etc/init.d/netatalk stop
Stopping Netatalk Daemons: afpd cnid_metad papd timelord atalkd.
pi@calculon ~ $ sudo /etc/init.d/netatalk start
Starting Netatalk services (this will take a while): cnid_metad afpd.