Page 1 of 1

Using USB drive with ESX 3.5

Posted: 15 Jul 2010, 11:01
by daniele
Original article: http://communities.vmware.com/message/1316188#1316188
ALL RIGHTS RESERVED TO THE AUTHOR(S) OF THE ORIGINAL ARTICLE

I got my USB 2.0 external hard drive working for backup on ESX 3.5
The drive came preformatted with NTFS filesystem
To get read/write access I used the ntfs-3g and fuse drivers
see ntfs-3g.org and fuse.sourceforge.net for more info

First I had to workaround the ehci driver problem on my HP DL360 hardware
Since I dont need the USB 1.1 support, I just disabled the ohci driver.
This is what my /etc/modules.conf file looks like after modification:
# cat /etc/modules.conf
alias eth0 tg3
alias eth1 tg3
alias scsi_hostadapter cciss
#alias usb-controller usb-ohci <--- took out 2 lines
#alias usb-controller1 ehci-hcd <--- added next line
alias usb-controller ehci-hcd


Since ESX 3.5 is based on the linux 2.4 kernel, must use old fuse kernel module
fuse 2.5.3 is the recommended version, but only to get the kernel module
You should use a newer version of fuse libraries with the ntfs-3g driver
However, on ESX 3.5 (which is based on redhat EL3) the latest version of
fuse does not work do to some weird interaction with the mount command
fuse 2.6.5 is the recommended version to use with the ntfs-3g driver

Get the sources for fuse versions 2.5.3 and 2.6.5 from:
http://sourceforge.net/projects/fuse/files/

Get the latest source for the ntfs-3g driver from:
http://www.ntfs-3g.org/index.html#download

To build fuse and ntfs-3g from source, another tool called pkg-config is required
I found a pre-built rpm at rpm.pbone.net called pkgconfig-0.15.0-3.i386.rpm

This is what I did to build and install the fuse kernel module:
# cd fuse-2.5.3
# ./configure
# make (NOTE: do not run make install)
### manually install the kernel module
# mkdir -p /lib/modules/2.4.21-47.0.1.ELvmnix/kernel/fs/fuse
# /usr/bin/install -c -m 644 kernel/fuse.o /lib/modules/2.4.21-47.0.1.ELvmnix/kernel/fs/fuse/fuse.o
# /sbin/depmod -a


Dont forget to install the pkg-config utility
# rpm -i pkgconfig-0.15.0-3.i386.rpm

Next I built and installed newer fuse libraries (but not kernel module):
# cd fuse-2.6.5
# ./configure
# make
# make install


Finally I built and installed the ntfs-3g driver (with external fuse libraries)
# cd ntfs-3g-1.5130
# ./configure --with-fuse=external
# make
# make install


Make sure the fuse kernel module gets loaded
# modprobe fuse

Make a mount point for the NTFS drive
# mkdir /mnt/sda1

To mount the NTFS drive (USB external hard disk)
# mount -t ntfs-3g /dev/sda1 /mnt/sda1