Connect multiple USB devices to the LinkStation via a USB hub

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 22:07, 17 July 2006 by Ramuk (Talk | contribs)

Jump to: navigation, search

This article is based on forum posts by lotus49 and Bauldrick work by mindbender and Sylver. Originally by frontalot. at Linkstationwiki.org

Nuvola apps important.png 
WARNING!

USB Hard Drive


You can connect multiple USB device to the LinkStation via a USB hub. However, you must modify 2 files in order to share more than 1 USB disk. The following information details connecting 2 USB disks but can easily be modified to cover any number of disks.

1.) Open the file in a text editor and adjust it to the following:

vi /etc/murasaki/bin/mount_sd.sh


#!/bin/sh

BOOTCHECK=0
MNT_DIR1=/mnt2/usbdisk1
MNT_DIR2=/mnt2/usbdisk2
LOCK1=/var/lock/mount_sd1
LOCK2=/var/lock/mount_sd2
MOUNT_SD1=0
MOUNT_SD2=0

### check initial devices
if [ $# -eq 2] ; then
BOOTCHECK=1
fi

### parse usb device info
/usr/bin/parse_usbscsi > /dev/null 2>&1

start()
{
echo "mount usb disks..."
### read exist files
while read SD
do
CHECK_MOUNT=`cat /proc/mounts | grep ${SD}`
if [ ! ${CHECK_MOUNT} ] ; then
if [ ! -f ${LOCK1} ] ; then
mount -t vfat,ntfs,ext3,ext2 ${SD}1 ${MNT_DIR1}
case $? in
0)
chmod 777 ${MNT_DIR1}
MOUNT_SD1=1
echo "${SD},${SD}1,${MNT_DIR1}" > ${LOCK1}
if [ -d ${MNT_DIR1}/lost+found ] ; then
rm -rf ${MNT_DIR1}/lost+found
fi
;;
32)
mount -t vfat,ntfs,ext3,ext2 ${SD}5 ${MNT_DIR1}
if [ $? -eq 0 ] ; then
chmod 777 ${MNT_DIR1}
MOUNT_SD1=1
echo "${SD},${SD}5,${MNT_DIR1}" > ${LOCK1}
fi
;;
esac
elif [ ! -f ${LOCK2} ] ; then
mount -t vfat,ext3,ext2 ${SD}1 ${MNT_DIR2}
case $? in
0)
chmod 777 ${MNT_DIR2}
MOUNT_SD2=1
echo "${SD},${SD}1,${MNT_DIR2}" > ${LOCK2}
touch /var/lock/${SD}
;;
32)
mount -t vfat,ext3,ext2 ${SD}5 ${MNT_DIR2}
if [ $? -eq 0 ] ; then
chmod 777 ${MNT_DIR2}
MOUNT_SD2=1
echo "${SD},${SD}5,${MNT_DIR2}" > ${LOCK2}
fi
;;
esac
fi
fi
done < /mnt2/usbinfo/list

if [ ${MOUNT_SD1} -eq 1 -o ${MOUNT_SD2} -eq 1 ] ; then
# if [ ${MOUNT_SD1} -eq 1 ] ; then
/etc/init.d/chkshare
sleep 3
if [ ${BOOTCHECK} -eq 0 ] ; then
/etc/init.d/smb restart > /dev/null 2>&1
fi
# /etc/init.d/atalk start > /dev/null 2>&1
fi
}

stop()
{
echo "unmounting usb devices.."
MOUNT_SD1=1
MOUNT_SD2=1
if [ -f ${LOCK1} ]; then
rm -rf ${LOCK1}
umount -f ${MNT_DIR1}
MOUNT_SD1=0
sleep 1
fi
if [ -f ${LOCK2} ]; then
rm -rf ${LOCK2}
umount -f ${MNT_DIR2}
MOUNT_SD2=0
fi

if [ ${MOUNT_SD1} -eq 0 -o ${MOUNT_SD2} -eq 0 ] ; then
# if [ ${MOUNT_SD1} -eq 0 ] ; then
/etc/init.d/chkshare
sync
sleep 3
/etc/init.d/smb restart > /dev/null 2>&1
/etc/init.d/atalk restart > /dev/null 2>&1
else
echo ${MOUNT_SD1} ${MOUNT_SD2} >> /tmp/stop.$$ 2>&1
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
esac

exit 0


2.) Now you have to add some lines (without this modifications the usbdisk would not be shared via samba)

vi /etc/init.d/chkshare

directly after

/bin/mkcode -s > /dev/null

add this:

Different Sharenames | if you change "usbdisk2" in the first and last echo line to something different it will be shared that way!

CHECK_MOUNT=`grep /mnt2/usbdisk2 /etc/mtab`

if [ -n “$CHECK_MOUNT“ ] ; then
  echo “[usbdisk2]“ >> /etc/samba/smb.conf
  echo “comment = USB HDD2“ >> /etc/samba/smb.conf
  echo “path = /mnt2/usbdisk2“ >> /etc/samba/smb.conf
  echo “browsable = yes“ >> /etc/samba/smb.conf
  echo “writable = yes“ >> /etc/samba/smb.conf
  echo “printable = no“ >> /etc/samba/smb.conf
  echo “guest ok = yes“ >> /etc/samba/smb.conf
  echo “force create mode = 777“ >> /etc/samba/smb.conf
  echo “force directory mode = 777“ >> /etc/samba/smb.conf
  echo “###usbdisk2###“ >> /etc/samba/smb.conf
fi 

3.) Then reboot the Linkstation for the new settings to take effect. The additional USB disk(s) won't appear in the web interface.

shutdown -r now

mindbender-21.5.06: this is true at the moment if you use the 2.6-kernel. if you use the stock-kernel, then you will see the second usb-hdd over the webinterface and you can even format it as normal. in the status screen you will see all the information also accordingly.

4.) It's worth pointing out that I had already formatted the additional USB disk on another machine before doing any of this. This should all work for vfat, ext2 or ext3 file systems.