USBDisks
USB Disks
Supported FileSystems
ext2/ext3/ext4
- recommended for USB drives intended for use only on SME
- works great under Linux
- supports hard links, symlinks
- can be read under Windows using explore2fs from http://www.chrysocome.net/explore2fs
- File & Disk size limits depend on the block size used when formatting the disk. SME defaults to a 1K block size.
1K block size: 16GB max file size, 2TB max disk size
2K block size: 256GB max file size, 8 TB max disk size.
4K block size: 2TB max file size, 16 TB max disk size - You can determine your current block size using (replace /dev/sdc1 with the correct value for your USB drive)
dumpe2fs -h /dev/sdc1
NTFS
You can format and use the NTFS if you install from epel ntfs-3g and ntfsprogs See the complete features of ntfs-3g
yum install ntfs-3g ntfsprogs --enablerepo=epel
fat32/vfat
- pre-configured on most USB hard drives
- supported natively by Windows
- (2^32)-1 byte ( 4GB - 1 byte) maximum file size
- Requires occasional defragmentation for optimal speed
- Maximum disk size dependent on cluster size. 32KB Clusters would allow a disk of approximately 8TB
Identifying your USB drive
After connecting your USB drive, execute the command
mount
and look for anything mounted in /media/???.
If your drive did not auto-mount, search /var/log/messages for the kernel commands related to your device using:
egrep "(kernel|fstab|scsi).*(usb|USB)" /var/log/messages
You should have a line logged by fstab-sync giving the auto-mount folder created and the device name for your new device that looks like this:
Sep 23 17:11:14 office fstab-sync[32193]: added mount point /media/usbdisk1 for /dev/sdd1
You should now be able to mount your USB drive using the values found in /var/log/messages. In our example, that would mean:
mount /media/usbdisk1
or
mount /dev/sdd1
Formatting your USB drive
ext2/ext3/ext4
- Copied with slight changes from Affa#Alternatively_setup_a_USB_drive
- Connect a USB hard disk to the USB Bus. Now you must determine what device the kernel has assigned to the drive. View the /var/log/message and search for Initializing USB Mass Storage driver. A few lines below you'll find the name of the device. In this example it is sdc. Replace /dev/sdc by your device in following instructions. Use the fdisk program to create a linux partition fdisk /dev/sdc You'll most likely find an existing vfat dos partition, which you have to delete first. Refer to http://wiki.contribs.org/AddExtraHardDisk#Partitioning_the_disk for steps to create a partition. In the following we assume, that you have created a single partition /dev/sdc1.
- Now format the drive with an ext3 filesystem mkfs.ext3 -L MyLabel /dev/sdc1
- or format the drive with an ext4 filesystem mkfs.ext4 -L MyLabel /dev/sdc1
- Make the mount point mkdir -p /media/usbdevice
- Customize /etc/fstab as shown here: Customizing fstab
- Mount the drive mount reads /etc/fstab to look for instructions on what to do if not specifically told on the command line. After updating /etc/fstab as recommended, you can "mount" your USB disk reliably by specifying either the target directory: mount /media/usbdevice or the disk label: mount LABEL=MyLabel
- Crosscheck your work using df -h
fat32/vfat
You can format your drive from your SME server using
mkfs.vfat -n MyLabel /dev/sdd1
Since this command will destroy irretrievably all information on the specified device (/dev/sdd1 in this case), be very sure you know exactly which device is the drive you want to format!
NTFS
You can format and use the NTFS if you install from epel ntfs-3g and ntfsprogs
yum install ntfs-3g ntfsprogs --enablerepo=epel
then
mkfs.ntfs -n MyLabel /dev/sdd1
Since this command will destroy irretrievably all information on the specified device (/dev/sdd1 in this case), be very sure you know exactly which device is the drive you want to format!
labeling your USB drive
Only required if you didn't label your drive using the previous section.
ext2/ext3/ext4
e2label /dev/sdd1 MyLabel
fat32/vfat
mtools
SME includes 'mtools' which can be used to manage FAT, FAT32, and VFAT partitions.
'mtools' uses drive letters instead of device names to access devices. These drive letters must be defined in /etc/mtools.conf before any of the mtools will work.
You can add your USB drive to /etc/mtools.conf using a command like the one shown below. However,
- be sure to replace /dev/sdd1 with the device name identified above for your USB drive
- be aware that the assigned device may change each time you reconnect your drive or reboot!
echo 'drive e: file="/dev/sdd1"' >> /etc/mtools.conf
Once you have created the drive letter in mtools.conf you can view or edit the disk label using the following commands:
- Show the current label:
mlabel -s e:
- Clear the volume label:
mlabel -c e:
- Assign a new volume label:
mlabel e:MyLabel
dosfslabel
SME also includes dosfslabel
which appears to be related to labeling "dos" drives.
dosfslabel /dev/sdd1
produces the following output:
Warning: FAT32 support is still ALPHA. MyLabel
While it is safe to use dosfslabel
to check the label on a drive, you should not use it to create or change the label on any drive that contains data you care about.
Dual Partitions
A method to use both ext3 and vfat
eg. an ext3 partition the size of your server, for an rsync backup.
the rest as vfat for easier portability
Plug in your drive or check it is unmounted
fdisk /dev/sdd p - print existing partitions d - delete partitions n - create new partitions p (primary), 1, +160G (the size you want) n - create 2nd partition p (primary), 2, return (rest of the disk) p - print and check w - write mkfs.ext3 -L MaxExt3 /dev/sdd1 mkfs.vfat -n MaxVfat /dev/sdd2
Customizing fstab
Add the following line to the /etc/fstab
LABEL=MyLabel /media/affadevice ext3 defaults
- Replace 'ext3' with 'vfat' if your drive is formatted as fat32/vfat.
- Replace 'ext3' with 'ext4' if your drive is formatted as ext4.
- Replace /media/affadevice with the folder in which you want your USB drive mounted (here and in all "mount" commands)
- Make sure that the mount directory (/media/affadevice in this example) exists and is empty! Linux will not mount a drive in a directory that is not empty.
- Add multiple entries as described in USBDisks#The_Solution to meet your specific requirements.
Or for ntfs
/dev/NTFS-partition /media/affadevice ntfs-3g defaults 0 0
Mount your disk automatically at boot-up
Use the following commands to create a script that will run at each re-boot if you want to re-mount your USB disk automatically:
cat <<EOF > /etc/e-smith/events/local/S95mount_USB #! /bin/sh mount LABEL=MyLabel EOF chmod +x /etc/e-smith/events/local/S95mount_USB
Once the script exists you can add additional mount commands by editing S95mount_USB using:
pico -w /etc/e-smith/events/local/S95mount_USB
The 'local' event will run each time your server boots up. If you connect or disconnect a drive and need to re-mount it you can re-run your auto-mount commands using:
signal-event local
Mount your disks automatically when connected
|Please edit this section to specify how to get SME to automatically mount USB drives when they are connected
Format limitations when linking disk to an ibay
If you wish to mount an external USB drive, and then add a link in a ibay to that drive, then in order to change ownership and have write access you must format the drive as ext3 only. Refer this forum thread for info http://forums.contribs.org/index.php?topic=40240.new;topicseen#new
More Information
- There is a contrib for managing USB disks:
http://forums.contribs.org/index.php?topic=35466.0 - There is evidence that some external USB enclosures are incompatible with SME:
http://forums.contribs.org/index.php?topic=39114.msg178646#msg178646 - Darrell May's HowTo on scrubbing and re-formatting a USB disk:
http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs/dmay/smeserver/7.x/smeserver-usb-disk-howto.htm
USB on SME 8
Things change on SME 8
- It's difficult to work out what your device name is ie /dev/sda1
- The mount point isn't automatically added in /etc/fstab
We use hal for the first and manually create and mount for the second
To find the device name, label, filesystem and the uid
#! /bin/bash hal-find-by-property --key volume.fsusage --string filesystem | while read udi ; do # ignore optical discs if test "$(hal-get-property --udi $udi --key volume.is_disc)" == "false" ; then dev=$(hal-get-property --udi $udi --key block.device) fs=$(hal-get-property --udi $udi --key volume.fstype) lb=$(hal-get-property --udi $udi --key volume.label) echo $dev": label "$lb",file system: "$fs ",uid: "$udi fi done
To check a mount point exists and mount
ll /media mount /dev/sda1 /media/120Gbfat32 (ie. mount /media/120Gbfat32 no longer works) ls -lh /media/120Gbfat32/ umount /dev/sda1 (when finished)
Note: When configuring a USB drive to be used by the built in Workstation Backup To USB you must ensure that the drive is not mounted automatically. When configuring the Workstation Backup, it will look for unmounted removable drives and allow you to select what you want. If the drive is already mounted when you configure it then you will get an error saying "No Removable disk available".
The same applies for the Console Backup to USB