USBDisks

From SME Server
Revision as of 01:34, 25 September 2007 by Mmccarn (talk | contribs) (→‎ext2/ext3)
Jump to navigation Jump to search

USB Disks

  Incomplete:
This article or section needs to be expanded. Please help to fill the gaps or discuss the issue on the talk page



  Warning:
NTFS partitions are not supported, please use either fat32/vfat or ext2/ext3


SME will automatically mount connected USB disk drives into the /media folder. Auto-mounting will be performed based on the specific USB port used to connect your drives unless you use another method to specify mount points.

This means that if you insert USB drive 'A', it should auto-mount to /media/usbdisk. If you now dismount this disk and mount drive 'B' in the same USB port, it, too, will auto-mount to /media/usbdisk. Additionally, if you connect drive 'A' to another USB port, it may auto-mount to /media/usbdisk1.

The easiest way to avoid this behavior is to provide a label for each of your USB drives, and specify the desired mount point in /etc/fstab based on the drive label.

Supported FileSystems

ext2/ext3

<list>

  • 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
  • </list>

    fat32/vfat
    • pre-configured on most USB hard drives
    • supported natively by Windows
    • (2^32)-1 byte ( 4GB - 1 byte) maximum file size
    • Windows 2000 format and Windows XP Setup's format will not create a fat32 volume larger than 32 GB
    • 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

    ext3
    1. Copied with slight changes from Affa#Alternatively_setup_a_USB_drive
    2. 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. In the following we assume, that you have created a single partition /dev/sdc1.
    3. Now format the drive with an ext3 filesystem mkfs.ext3 -L MyLabel /dev/sdc1
    4. Make the mount point mkdir -p /mnt/affadevice
    5. Customize /etc/fstab as shown here: Customizing fstab
    6. Mount the drive mount /mnt/affadevice
    7. Crosscheck your work using the df command df
    vfat

    It's probably easier to format your vfat drive on your windows system. You *must* have one, or you wouldn't be using this format... Be however aware of the 32GB limit when formatting from WIN2K or XP using MS native formatting tools. For additional information, check: http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm

    If that sounds unhelpful, you could try (warning, untested!):

    mkfs.vfat -n MyLabel /dev/sdd1
    

    labeling your USB drive

    ext3
    e2label /dev/sdd1 MyLabel
    
    vfat

    Linux uses 'mtools' to manage FAT, FAT32, and VFAT partitions. 'mtools' uses drive letters to access devices. These drive letters must be defined in /etc/mtools.conf before any of the mtools will work. You can create a definition for your USB drive using a command like this one (be sure to replace /dev/sdd1 with the device name identified above for your USB drive!):

    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
    

    Customizing fstab

    Add the following line to the /etc/fstab

    LABEL=MyLabel /mnt/affadevice ext3 defaults
    
    • Replace 'ext3' with 'vfat' if your drive is formatted as vfat.
    • Replace /mnt/affadevice with the folder in which you want your USB drive mounted

    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
    

    More Information