410 lines
14 KiB
HTML
410 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML><HEAD>
|
|
<TITLE>Floppy Disk Tips Issue 14</TITLE>
|
|
|
|
<!-- Author: Bill Duncan
|
|
Email: bduncan@beachnet.org
|
|
Web: http://www.beachnet.org/bduncan/
|
|
-->
|
|
|
|
</HEAD>
|
|
|
|
<BODY BGCOLOR="#cccccc" TEXT="#000000">
|
|
|
|
<H4>
|
|
"Linux Gazette...<I>making Linux just a little more fun!</I>
|
|
"</H4>
|
|
|
|
<!--===================================================================-->
|
|
|
|
<P><HR NOSHADE><P>
|
|
|
|
|
|
<H1 ALIGN=CENTER>Floppy Disk Tips</H1>
|
|
<H4 ALIGN=CENTER>
|
|
By <A HREF="http://www.beachnet.org/bduncan/">
|
|
Bill Duncan</A>, <FONT SIZE=-1><I>VE3IED</I></FONT>,
|
|
<A HREF="mailto:bduncan@beachnet.org"><TT>bduncan@beachnet.org</TT></A></H4>
|
|
<P><HR NOSHADE><P>
|
|
|
|
<P>Although more computers are becoming network connected every day,
|
|
there are many instances where you need to transfer files by the ol'
|
|
<I>sneaker-net</I> method. Here are some hints, tips and short-cuts for doing
|
|
this, aimed at users who are new to Linux or Unix. (There may even be
|
|
some information useful to old-timers...)
|
|
|
|
<UL>
|
|
<LI><A HREF="#FORMAT">Formatting, Filesystems and Mounting</A>
|
|
<LI><A HREF="#BACKUP">Backups, Cpio and Gzip</A>
|
|
<LI><A HREF="#LARGE">Floppy as a Raw Device for Large Files or Directories</A>
|
|
<LI><A HREF="#MISC">Miscellaneous</A>
|
|
</UL>
|
|
|
|
<P>What do I use floppies for? As a consultant, I frequently do contract
|
|
work for companies which, because of security policies, do not connect
|
|
to the 'Net. So, FTP'ing files which I need from my network at home is out of
|
|
the question.
|
|
|
|
<P>My current contract as an example, I am using Linux as an X-Windows terminal
|
|
for developing software on their DEC Alphas running OSF. (I blew away the
|
|
Windoze '95 which they had loaded on the computer they gave me.) I often need to bring
|
|
files with me from my office at home, or backup my work to take back home
|
|
for work in the evening. (Consultants sometimes work <I>flex-hours</I>, which generally
|
|
means more hours...)<P>
|
|
|
|
<P>Why use <B>cpio</B>(1) or <B>tar</B>(1) when copying files? Because it is a
|
|
<I>portable</I> method of transferring files from a group of subdirectories
|
|
with the file dates left intact. The <B>cp</B>(1) command may or may not do the
|
|
job depending on Operating Systems and versions you are dealing with.
|
|
In addition, specifying certain options will only copy files which are new or
|
|
have changed.
|
|
<P>
|
|
|
|
<A NAME="FORMAT">
|
|
<P><HR NOSHADE><P>
|
|
<H2>Formatting, Filesystems and Mounting</H2></A>
|
|
<P><HR NOSHADE><P>
|
|
|
|
The first thing you need to do to make the floppies useful is to format them,
|
|
and usually lay down a filesystem. There are also some preliminary steps
|
|
which make using floppy disks much easier, which is the point of this article.
|
|
|
|
<P>I find it useful to make my username part of the <B>floppy</B> group in the
|
|
<B>/etc/group</B> file. This saves you from needing to su to root much of
|
|
the time. (You will need to log out and log back in again for this to take
|
|
effect.)
|
|
I also use the same username both on the client's machine and
|
|
my home office which saves time. The line should now look like this:<BR>
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
floppy::11:root,<EM>username</EM>
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>The following setup is assumed for the examples I present here.
|
|
The root user must have the system directories in the <STRONG>PATH</STRONG>
|
|
environment variable.
|
|
Add the following to the <B>.profile</B> file in /root if not already there by
|
|
su'ing to root.<BR>
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
su - # this should ask for the <EM>root</EM> password.
|
|
cat >> <B>.</B>profile
|
|
PATH=/sbin<B>:</B>/usr/sbin<B>:</B>$PATH
|
|
<ctrl>-D
|
|
</PRE></BLOCKQUOTE>
|
|
|
|
<!-- TIP TAG -->
|
|
You can also use your favorite editor to do this... I prefer <B>vim</B>(1) and
|
|
have this <I>symlink</I>ed to <B>/usr/bin/vi</B> instead of <B>elvis</B>(1) which is
|
|
usually the default on many distributions. VIM has online help, and multiple
|
|
window support which is very useful! (A <I>symlink</I> is created with a
|
|
<B>-s</B> option to <B>ln</B>(1), and is actually called a
|
|
<I>sym</I>bolic <I>link</I>.)
|
|
|
|
<P>Next, add the following lines to the <B>/etc/fstab</B> file:
|
|
(I have all the user mountable partitions in one place under <B>/mnt</B>.
|
|
You may want a different convention, but this is useful. I also have
|
|
/mnt/cdrom symlinked to /cd for convenience.)<BR>
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
/dev/fd0 /mnt/fd0 ext2 noauto,user 1 2
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>Still logged in as root, make the following symlink:
|
|
(If you have more than one floppy drive, then add the floppy number
|
|
as well.)<BR>
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
ln -s /mnt/fd0 /fd
|
|
|
|
-or-
|
|
|
|
ln -s /mnt/fd0 /fd0
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
These two things make mounting and unmounting floppies a cinch. The
|
|
<B>mount</B>(8) command follows the symlink and
|
|
accesses the <B>/etc/fstab</B> file for any
|
|
missing parameters, making it a useful shortcut.
|
|
|
|
|
|
<P>To make the floppy usable as an ext2fs Linux filesystem, do the following
|
|
as root:
|
|
(The <I>username</I> is whatever username you use on regularly on the
|
|
system. You, of course, should not use the <I>root</I> user for normal
|
|
use!)
|
|
<BR>
|
|
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
export PATH=/sbin:/usr/sbin:$PATH # not needed if you set environment
|
|
fdformat /dev/fd0
|
|
mke2fs /dev/fd0
|
|
mount /dev/fd0 /mnt/fd0
|
|
chown username /mnt/fd0
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
You may need to specify the geometry of the floppy you are using.
|
|
If it is the standard 3.5 inch double sided disk, you may need to
|
|
substitute <B>/dev/fd0H1440</B> for the device name (in 1.2.x kernels).
|
|
If you have a newer 2.xx kernel and <B>superformat</B>(1), you may want
|
|
to substitute this for <B>fdformat</B>. See the notes in the
|
|
<A HREF="#MISC">Miscellaneous</A> section below, or look at the man page.
|
|
You may now exit out of <B>su</B>(1) by typing:
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
exit
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>From this point on, you may use the <B>mount</B>(8) and <B>umount</B>(8)
|
|
commands logged in as your normal username by typing the following:<BR>
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
mount /fd
|
|
umount /fd
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<A NAME="BACKUP">
|
|
<P><HR NOSHADE><P>
|
|
<H2>Backups, Cpio and Gzip</H2></A>
|
|
<P><HR NOSHADE><P>
|
|
|
|
<P>For backing up my work to take home or to take back to the office I use
|
|
<B>cpio</B>(1) instead of <B>tar</B>(1) as it is far more flexible, and
|
|
better at handling errors etc. To use this on a regular basis, first create
|
|
all the files you need by specifying the command below <EM>without</EM>
|
|
the <B>-mtime -1</B> switch. Then you can make daily backups from the base
|
|
directory of your work using the following commands:<BR>
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
cd <EM>directory</EM>
|
|
mount /fd
|
|
find <B>.</B> -mtime -1 -print | cpio -pmdv /fd
|
|
sync
|
|
umount /fd
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
When the floppy stops spinning, and the light goes out, you have your
|
|
work backed up. The <B>-mtime</B> option to <B>find</B>(1) specifies
|
|
files which have been modified (or created) within one day (the <B>-1</B>
|
|
parameter). The options for <B>cpio</B>(1) specify <EM>copy-pass</EM> mode,
|
|
which retain previous file modification times, create directories where needed,
|
|
and do so verbosely. Without a <B>-u</B> (<I>unconditional</I>) flag, it will
|
|
not overwrite files which are the same age or newer.
|
|
|
|
<P>
|
|
This operation may also be done over a network, either from NFS mounted filesystems,
|
|
or by using a remote shell as the next example shows.
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
mount /fd
|
|
cd /fd
|
|
rsh remotesystem '(cd <I>directory</I>; find <B>.</B> -mtime -1 -print | cpio -oc)' |
|
|
cpio -imdcv
|
|
sync
|
|
cd
|
|
umount /fd
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
This example uses <B>cpio</B>(1) to send files from the remote system, and
|
|
update the files on the floppy disk mounted on the local system. Note the
|
|
<I>pipe</I> (or veritical bar) symbol at the end of the remote shell line.
|
|
The arguments which are enclosed in quotes are executed remotely, with
|
|
everything enclosed in braces happening in a subshell. The <I>archive</I>
|
|
is sent as a stream across the network, and used as input to the <B>cpio</B>(1)
|
|
command executing on the local machine. (If both systems are using a recent
|
|
version of GNU cpio, then specify <B>-Hcrc</B> instead of <B>c</B> for the
|
|
archive type. This will do error checking, and won't truncate inode numbers.)<BR>
|
|
The remote system would have: <I>cpio -oHcrc</I><BR>
|
|
and the local side would have: <I>cpio -imdvHcrc</I><P>
|
|
|
|
<P>To restore the newer files to the other computer, change directories to
|
|
the <I>base directory of your work</I>, and type the following:<BR>
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
cd <EM>directory</EM>
|
|
mount -r /fd
|
|
cd /fd
|
|
find <B>.</B> -mtime -1 -print | cpio -pmdv ~-
|
|
cd -
|
|
umount /fd
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
If you needed to restore the files completely, you would of course leave out
|
|
the <B>-mtime</B> parameter to <B>find</B>(1).
|
|
<P>
|
|
|
|
<!-- TIP TAG -->
|
|
<P>The previous examples assume that you are using the <B>bash</B>(1) shell,
|
|
and uses a few quick tricks for specifying directories. The "<B>~-</B>"
|
|
parameter to cpio is translated to the <I>previous default directory</I>.
|
|
In other words, where you were before cd'ing to the /fd directory.
|
|
(Try typing: <TT>echo ~-</TT> to see the effect, after you have changed
|
|
directories at least once.)
|
|
The <B>cd ~-</B> or just <B>cd -</B> command is another shortcut to switch
|
|
directories to the previous default. These shortcuts often save a lot of time
|
|
and typing, as you frequently need to work with two directories, using this
|
|
command to alternate between them or reference files from where you were.
|
|
|
|
|
|
|
|
<P>If the directory which you are tranferring or backing up is larger than
|
|
a single floppy disk, you may need to resort to using a compressed archive.
|
|
I still prefer using <B>cpio</B>(1) for this, although <B>tar</B>(1) will
|
|
work too. Change directories to your work directory, and issue the following
|
|
commands:
|
|
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
cd <EM>directory</EM>
|
|
mount /fd
|
|
find <B>.</B> -mtime -1 -print | cpio -ovHcrc | gzip -v > /fd/backup.cpio.gz
|
|
sync
|
|
umount /fd
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
The <B>-Hcrc</B> option to cpio(1) is a new type of archive which older
|
|
versions of cpio might not understand. This allows error checking, and
|
|
inode numbers with more than 16 bits.
|
|
|
|
<P>Of course, your original archive should be created using <B>find</B>(1)
|
|
without the <I>-mtime -1</I> options.
|
|
|
|
<A NAME="LARGE">
|
|
<P><HR NOSHADE><P>
|
|
<H2>Floppy as a Raw Device for Large Files or Directories</H2></A>
|
|
<P><HR NOSHADE><P>
|
|
|
|
Sometimes it is necessary to backup or transfer a file or directories which
|
|
are larger than a floppy disk, even when compressed. For this, we finally
|
|
need to resort to using tar.
|
|
|
|
<P>Prepare as many floppies as you think you'll need by using the <B>fdformat</B>(8)
|
|
command. You do not need to make filesystems on them however, as you will be
|
|
using them in <I>raw</I> mode.
|
|
|
|
<P>If you are backing up a large set of subdirectories, switch to the base
|
|
subdirectory and issue the following command:
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
cd <EM>directory</EM>
|
|
tar -cv -L 1440 -M -f /dev/fd0 <B>.</B>
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
This command will prompt you when to change floppies. <STRONG><EM>Wait for the
|
|
floppy drive light to go out of course!</EM></STRONG>
|
|
|
|
<P>If you need to backup or transfer multiple files or directories, or just a single
|
|
large file, then specify them instead of the period at the end of the tar command
|
|
above.
|
|
<!-- I made the period bold, as it didn't show up very well otherwise -->
|
|
|
|
<P>Unpacking the archive is similar to the above command:<BR>
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
cd <EM>directory</EM>
|
|
tar -xv -L 1440 -M -f /dev/fd0
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<A NAME="MISC">
|
|
<P><HR NOSHADE><P>
|
|
<H2>Miscellaneous</H2></A>
|
|
<P><HR NOSHADE><P>
|
|
|
|
Finally, here are some assorted tips for using floppies.
|
|
|
|
<P>The <B>mtools</B>(1) package is great for dealing with MS-DOG
|
|
floppies, as we sometimes must. You can also <B>mount</B>(8) them as a Linux
|
|
filesystem with either msdos or umsdos filesystem types. Add another
|
|
entry to the <B>/etc/fstab</B> entry you made before, so that the two
|
|
lines will look like this:<BR>
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
/dev/fd0 /mnt/fd0 ext2 noauto,user 1 2
|
|
/dev/fd0 /mnt/dos msdos noauto,user 1 2
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
You can now mount an MS-DOS floppy using the command:<BR>
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
mount /mnt/dos
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
You can also symlink this to another name as a further shortcut.
|
|
<BLOCKQUOTE>
|
|
<PRE>
|
|
ln -s /mnt/dos /dos
|
|
mount /dos
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
|
|
<!-- TIP TAG -->
|
|
<P>The danger of using the <B>mount</B>(8) commands rather than <B>mtools</B>(1)
|
|
for users who are more familiar with MSDOS, is that <B><I>you need to explicitly
|
|
unmount floppies</I></B> before taking them out of the drive using
|
|
<B>umount</B>(8).
|
|
Forgetting this
|
|
step can make the floppy unusable! If you are in the habit of forgetting, a simple
|
|
low-tech yellow Post-it note in a strategic place beside your floppy drive might
|
|
save you a few headaches. If your version of Post-it notes has the <BLINK>
|
|
tag, use it! <TT>;-)</TT><BR>
|
|
|
|
|
|
<BLOCKQUOTE>
|
|
<TABLE BORDER=0 CELLPADDING=9><TR><TD BGCOLOR="#ffffcc">"<B><I><BLINK>umount
|
|
me first!</BLINK></I></B>"</TD></TR></TABLE>
|
|
</BLOCKQUOTE>
|
|
<!-- sorry for that blink tag... ;-) -->
|
|
|
|
|
|
<P>Newer systems based on the 2.xx kernel are probably shipped with <B>fdutils</B>.
|
|
Check to see if you have a <B>/usr/doc/fdutils-xxx</B> directory,
|
|
where xxx is a version number. (Mine is 4.3).
|
|
Also check for the <B>superformat</B>(1) man page. This supersedes
|
|
<B>fdformat</B>(1) and gives you options for packing much more
|
|
data on floppies. If you have an older system, check the
|
|
<A HREF="ftp://ftp.imag.fr/pub/Linux/ZLIBC/fdutils/">ftp://ftp.imag.fr/pub/Linux/ZLIBC/fdutils/</A>
|
|
ftp site for more information.
|
|
|
|
<P>The naming convention for floppies in newer 2.xx kernels has also changed,
|
|
although the <B>fd</B>(4) man page has not been updated in my distribution.
|
|
If you do not have a <B>/dev/fd0H1440</B> device, then you probably have the newer
|
|
system.
|
|
|
|
<P> <hr> <P>
|
|
<center><H5>Copyright © 1997, Bill Duncan <BR>
|
|
Published in Issue 13 of the Linux Gazette</H5></center>
|
|
|
|
<!--===================================================================-->
|
|
<P> <hr> <P>
|
|
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
|
ALT="[ TABLE OF CONTENTS ]"></A>
|
|
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
|
ALT="[ FRONT PAGE ]"></A>
|
|
<A HREF="./filter.html"><IMG SRC="../gx/back2.gif"
|
|
ALT=" Back "></A>
|
|
<A HREF="./gm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
|
<P> <hr> <P>
|
|
</BODY>
|
|
</HTML>
|