using a firewire disk under linux is not trivial, but it does work reliably and repeatably. i am quite satisfied with the operation.
in my setup, i am running a sony vaio laptop, pcg-xg29k, with redhat 7.3. i have a maxtor 1394 external 80G drive connected to the vaio. the steps i've taken to make this work are: 1. turn off plug and play in the bios. 2. power on the external disk before the computer. 3. create a mount point for the drive. 4. after boot and subsequent login, i run my startup script, mount-firewire. you'll need to modify it for your installation. (could be put into /etc/rc.d/rc.local.) 5. mount-firewire, in turn, calls rescan-scsi-bus.sh. (you'll read about it in the 1394 project pages howto's.) 6. optional: nfs serve the volume to other nfs clients. or samba share the volume, etc. i've included a list of some firewire url's and the two scripts mentioned above in the following shar file. cheers. scowles at bioinfogen dot com =========================================== Sunday, July 28, 2002, 6:00:36 PM, you wrote: J> I'm using RH7.3. Must I recompile my kernel to be able to use a firewire J> drive with my pentium 3 triple boot (bootmagic, 98/xp/rh7.3) laptop? Is it J> safe (for my very expensive data) to use a firewire drive? J> I've never compiled a kernal; wish there were an easier way for this newbie. J> Any advice or pointers very appreciated. J> Thanks, J> Jim =========================================== #!/bin/sh # This is a shell archive (produced by GNU sharutils 4.2.1). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 2002-07-28 22:26 PDT by <scowles@BUBO5>. # Source directory was `/mnt/b5c/users/scowles'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 414 -rw-rw-rw- 1394 # 368 -r-xr-xr-x bin/mount-firewire # 2775 -r-xr-xr-x bin/rescan-scsi-bus.sh # save_IFS="${IFS}" IFS="${IFS}:" gettext_dir=FAILED locale_dir=FAILED first_param="$1" for dir in $PATH do if test "$gettext_dir" = FAILED && test -f $dir/gettext \ && ($dir/gettext --version >/dev/null 2>&1) then set `$dir/gettext --version 2>&1` if test "$3" = GNU then gettext_dir=$dir fi fi if test "$locale_dir" = FAILED && test -f $dir/shar \ && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) then locale_dir=`$dir/shar --print-text-domain-dir` fi done IFS="$save_IFS" if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED then echo=echo else TEXTDOMAINDIR=$locale_dir export TEXTDOMAINDIR TEXTDOMAIN=sharutils export TEXTDOMAIN echo="$gettext_dir/gettext -s" fi if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$2 "$8"' else shar_touch=: echo $echo 'WARNING: not restoring timestamps. Consider getting and' $echo "installing GNU \`touch', distributed in GNU File Utilities..." echo fi rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch # if mkdir _sh02964; then $echo 'x -' 'creating lock directory' else $echo 'failed to create lock directory' exit 1 fi # ============= 1394 ============== if test -f '1394' && test "$first_param" != -c; then $echo 'x -' SKIPPING '1394' '(file already exists)' else $echo 'x -' extracting '1394' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && SHAR_EOF $echo 'gunzipping file' '1394' && gzip -d < _sh02964/gzi > '1394' && (set 20 02 07 28 22 14 27 '1394'; eval "$shar_touch") && chmod 0666 '1394' || $echo 'restore of' '1394' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo '1394:' 'MD5 check failed' 44c5a0e1a756e53605a9a1f89cc478d9 1394 SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < '1394'`" test 414 -eq "$shar_count" || $echo '1394:' 'original size' '414,' 'current size' "$shar_count!" fi fi # ============= bin/mount-firewire ============== if test ! -d 'bin'; then $echo 'x -' 'creating directory' 'bin' mkdir 'bin' fi if test -f 'bin/mount-firewire' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'bin/mount-firewire' '(file already exists)' else $echo 'x -' extracting 'bin/mount-firewire' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && SHAR_EOF $echo 'gunzipping file' 'bin/mount-firewire' && gzip -d < _sh02964/gzi > 'bin/mount-firewire' && (set 20 02 07 28 22 16 20 'bin/mount-firewire'; eval "$shar_touch") && chmod 0555 'bin/mount-firewire' || $echo 'restore of' 'bin/mount-firewire' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'bin/mount-firewire:' 'MD5 check failed' 5cc1b095287cc40955d6ac7ff2613ba6 bin/mount-firewire SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bin/mount-firewire'`" test 368 -eq "$shar_count" || $echo 'bin/mount-firewire:' 'original size' '368,' 'current size' "$shar_count!" fi fi # ============= bin/rescan-scsi-bus.sh ============== if test -f 'bin/rescan-scsi-bus.sh' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'bin/rescan-scsi-bus.sh' '(file already exists)' else $echo 'x -' extracting 'bin/rescan-scsi-bus.sh' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && SHAR_EOF $echo 'gunzipping file' 'bin/rescan-scsi-bus.sh' && gzip -d < _sh02964/gzi > 'bin/rescan-scsi-bus.sh' && (set 20 02 07 28 22 17 08 'bin/rescan-scsi-bus.sh'; eval "$shar_touch") && chmod 0555 'bin/rescan-scsi-bus.sh' || $echo 'restore of' 'bin/rescan-scsi-bus.sh' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'bin/rescan-scsi-bus.sh:' 'MD5 check failed' 8dbc19c95b3c1bddbf2d16cdde960ad4 bin/rescan-scsi-bus.sh SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bin/rescan-scsi-bus.sh'`" test 2775 -eq "$shar_count" || $echo 'bin/rescan-scsi-bus.sh:' 'original size' '2775,' 'current size' "$shar_count!" fi fi rm -fr _sh02964 exit 0
_sh02964_gzi
Description: Binary data
_sh02964_gzi
Description: Binary data
_sh02964_gzi
Description: Binary data