System Administration Guide, Volume 1

Using Diskettes Task Map

Table 16-4 Using Diskettes Task Map

Task 

Description 

For Instructions, Go To 

1. Load the Diskette 

Insert the diskette into its drive and enter the volcheck command.

"How to Load a Diskette"

2. Examine its Contents 

Optional. To examine the contents of the diskette, look in the appropriate directory under /diskette.

"How to Examine the Contents of a Diskette"

3. Exchange Files 

Optional. Copy files or directories between the diskette and your file system.

"How to Copy or Move Information From a Diskette"

 

"How to Copy or Move Information to a Diskette"

4. Is Diskette Still in Use? 

Optional. Before ejecting the diskette, find out if the diskette is still in use.

"How to Find Out If a Diskette Is Still in Use"

5. Eject the Diskette 

When you finish, eject the diskette from its drive.  

"How to Eject a Diskette"

How to Load a Diskette

  1. Make sure the diskette is formatted.

    If you aren't sure, insert it and check the status messages in the console, as described in Step 3. If you need to format the diskette, go to "How to Format a UFS Diskette" or "How to Format a DOS Diskette".

  2. Insert the diskette.

    Make sure the diskette is completely inserted. It must drop down into the drive. If the drive has a door, close it.

  3. Notify Volume Management.


    $ volcheck -v
    media was found

    Two status messages are possible:

    media was found

    Volume Management detected the diskette and will attempt to mount it in the /floppy directory.

     

    If the diskette is formatted properly, no error messages appear in the console.  

     

    If the diskette is not formatted, the "media was found" message is still displayed, but the following error messages appear in the Console:

     

    fd0: unformatted diskette or no diskette in the drive

    fd0: read failed (40 1 0)

    fd0: bad format

    You must format the diskette before Volume Management can mount it. Instructions are provided on "How to Format a UFS Diskette" (for UFS) and "How to Format a DOS Diskette" (for DOS).

    no media was found

    Volume Management did not detect a diskette. Make sure the diskette is inserted properly and run volcheck(1) again. If unsuccessful, check the diskette; it could be damaged. You can also try to mount the diskette manually.

  4. Verify that the diskette was mounted by listing its contents.


    $ ls /floppy
    floppy0 myfiles

    As described earlier, floppy0 is a symbolic link to the actual name of the diskette; in this case, myfiles. If the diskette has no name but is formatted correctly, the system will refer to it as unnamed_floppy.

    If nothing appears under the /floppy directory, the diskette was either not mounted or is not formatted properly. To find out, run the mount command and look for the line that begins with /floppy (usually at the end of the listing):

    /floppy/name on /vol/dev/diskette0/name ...

    If the line does not appear, the diskette was not mounted. Check the Console for error messages.

How to Examine the Contents of a Diskette

Use the ls -L command because some directories under /floppy are symbolic links.


$ ls -L [-l] floppy0

-L

Includes symbolic links in the output. 

-l

Long format. Includes permissions and owners in the output. 

Example--Examining the Contents of a Diskette

The following example lists the contents of the diskette in the first floppy drive, identified by floppy0.


$ ls -L -l /floppy/floppy0
-rwxrwxrwx  1 smith  staff 362284  Nov 16 20:54  text.doc
-rwxrwxrwx  1 smith  staff  24562  Nov 16 12:20  art.gif

How to Copy or Move Information From a Diskette

Once you have inserted a diskette, you can access its files and directories just as you would those of any other file system. The only significant restrictions are ownership and permissions. For instance, if you are not the owner of a file on a diskette, you won't be able to overwrite that file on the diskette. Or, if you copy a file into your file system, you'll be the owner, but that file won't have write permissions (because it never had them on the diskette); you'll have to change the permissions yourself.

  1. Make sure the diskette is formatted and mounted.


    $ ls /floppy
    floppy0  diskette-name
    

    If the diskette is properly formatted and mounted, its name and the symbolic link will appear under /floppy.

    If nothing appears under the /floppy directory, the diskette is not mounted. See "How to Load a Diskette". The diskette might also need to be formatted. See "How to Format a UFS Diskette" or "How to Format a DOS Diskette".

  2. Copy the files or directories.

    To Copy ... 

    Use ... 

    A file 

    cp

    A directory 

    cp -r

  3. Verify the copy or move operation by using the ls command.

Examples--Copying or Moving Information From a Diskette

The first example below moves a file (readme.doc) from the diskette to the current directory (indicated by the "." symbol). The second example copies a file (readme2.doc) from the diskette to the current directory. The third example copies a directory (morefiles) and everything below it from the diskette to the current directory.


$ mv /floppy/floppy0/readme.doc  .
$ cp /floppy/floppy0/readme2.doc  .
$ cp -r /floppy/floppy0/morefiles  .

How to Copy or Move Information to a Diskette

  1. Make sure the diskette is not write-protected.

    On both 3.5-inch and 5.25 inch diskettes, write-protection is controlled by a small tab in either the lower left or lower right corner. If you can see through the square hole behind the tab, the diskette is write-protected. If the hole is covered by the tab, the diskette is write-enabled.

  2. Make sure the diskette is formatted and mounted.


    $ ls /floppy
    floppy0  diskette-name
    

    If the diskette is properly formatted and mounted, its name and the symbolic link, floppy0, will appear under /floppy.

    If nothing appears under the /floppy directory, the diskette is not mounted. See "How to Load a Diskette". The diskette might also need to be formatted. See "How to Format a UFS Diskette" or "How to Format a DOS Diskette".

  3. Move or copy the files or directories.

    To ... 

    Use ... 

    Copy a file 

    cp

    Copy a directory 

    cp -r

    Move a file or directory 

    mv

  4. Verify a move or copy operation by using the ls command.

Examples--Copying or Moving Information to a Diskette

The first example, below, moves a file (readme.doc) from the current directory to the diskette loaded into the first floppy drive (indicated by /floppy/floppy0). The second example copies a file (readme2.doc) from the current directory to the diskette loaded into the second floppy drive (indicated by /floppy/floppy1). The third example copies a directory (morefiles) and its contents from the /home/smith/directory to the diskette loaded into the first floppy drive.


$ mv readme.doc /floppy/floppy0
$ cp readme2.doc /floppy/floppy1
$ cp -r /home/smith/morefiles /floppy/floppy0

How to Find Out If a Diskette Is Still in Use

  1. Become superuser.

  2. Invoke the fuser command.

    The fuser command lists the processes that are currently accessing the CD that you specify.


    # fuser -u [-k] floppy0
    

    -u

    Displays the user of the diskette. 

    -k

    Kills the process accessing the diskette. 

Example--Finding Out If a Diskette Is Still In Use

In the following example, the processes 6400c and 6399c are accessing the /floppy/floppy0 directory, and the process owners are root and smith, respectively.


# fuser -u /floppy/floppy0
/floppy/floppy0: 6400c(root)  6399c(smith)

You can kill the processes individually (as superuser), or you can use the fuser command with the -k option, which kills all the processes accessing that file system. The fuser command might not always identify all the killed processes. To be sure, run it again with the -u option.


# fuser -u -k /floppy/floppy0
/floppy/floppy0: 6400c(root)Killed  6399c(smith)Killed

How to Eject a Diskette

  1. Make sure the diskette is not being used.

    Remember, a diskette is "being used" if a shell or an application is accessing any of its files or directories.

    If you are not sure whether you have found all users of a diskette (a renegade shell hidden behind a desktop tool might be accessing it), use the fuser command, as described in "How to Find Out If a Diskette Is Still in Use".

  2. Eject the diskette.


    # eject floppy0
    

    On a SPARC based system the floppy is physically ejected from its drive, but on an IA based system, you'll have to eject the diskette by hand. If you are running Windows, look for an onscreen message that says you can now eject the diskette.

    If the diskette is still in use, the following message appears:


     /vol/dev/rdiskette0/noname: Device busy

    In this case, return to Step 1 and make sure no one is using the diskette, then eject it again.

    If the diskette jams, eject it manually by inserting an unfolded paper clip about an inch into the small hole in the front of the drive.

How to Access Diskettes on Other Systems

You can access a diskette on another system by mounting it manually into your file system--provided the other system has shared its diskette drive according to the instructions in "How to Make Local Diskettes Available to Other Systems".

  1. Select an existing directory to serve as the mount point, or create one.


    $ mkdir directory
    

    directory

    Is the name of the directory that you create to serve as a mount point for the other system's diskette.  

  2. Find the name of the diskette you want to mount.

    When you manually mount a remote diskette, you cannot use the floppy0 or floppy1 variables available with your local diskettes. You must use the exact diskette name. To find it, use the ls command on the remote system's /floppy directory. If the automounter is running, you can simply cd to the system whose diskette you want to mount and then use the ls command. If the automounter is not running, you'll have to use another method, such as logging in remotely.

  3. As superuser, mount the diskette.


    # mount -F nfs system-name:/floppy/diskette-name local-mount-point
    

    system-name

    The name of the system whose diskette you will mount. 

    diskette-name

    The name of the diskette you want to mount. 

    local-mount-point

    The local directory onto which you will mount the remote diskette. 

  4. Log out as superuser.

  5. Verify that the diskette is mounted by using the ls command to list the contents of the mount point.


    $ ls /floppy
    

Example--Accessing Diskettes on Other Systems

This example mounts the diskette named myfiles from the remote system mars onto the /floppy directory of the local system.


$ cd /net/mars
$ ls /floppy
floppy0     myfiles
$ su
Password: password
# mount -F nfs mars:/floppy/myfiles /floppy
# exit
$ ls /floppy
myfiles

How to Make Local Diskettes Available to Other Systems

You can configure your system to share its diskettes; in other words, make any diskettes in those drives available to other systems. Once your diskette drives are shared, other systems can access the diskettes they contain simply by mounting them, as described in "How to Access Diskettes on Other Systems".

  1. Become superuser.

  2. Find out whether the NFS daemon (nfsd) is running.


    # ps -ef | grep nfsd
    root 14533    1 17 10:46:55 ?     0:00 /usr/lib/nfs/nfsd -a 16
    root 14656  289  7 14:06:02 pts/3 0:00 grep nfsd

    If the daemon is running, a line for /usr/lib/nfs/nfsd will appear, as shown above. If the daemon is not running, only the grep nfsd line will appear.

  3. Select an option from the following table.

    If ... 

    Then ... 

    nfsd is running

    Go to Step 8

    nfsd is not running

    Continue with Step 4

  4. Create a dummy directory for nfsd to share.


    # mkdir /dummy-dir
    

    dummy-dir

    Can be any directory name; for example, dummy. This directory will not contain any files. Its only purpose is to "wake up" the NFS daemon so that it notices your shared diskettes.

  5. Add the following entry into /etc/dfs/dfstab.


    share -F nfs -o ro [-d comment] /dummy-dir
    

    When you start the NFS daemon, it will see this entry, "wake up," and notice the shared diskette drive. Note that the comment (preceded by -d) is optional.

  6. Start the NFS daemon.


    # /etc/init.d/nfs.server start
    
  7. Verify that the NFS daemon is indeed running.


    # ps -ef | grep nfsd
    root 14533    1 17 10:46:55 ?     0:00 /usr/lib/nfs/nfsd -a 16
    root 14656  289  7 14:06:02 pts/3 0:00 /grep nfsd
  8. Eject any diskette currently in the drive.


    # eject floppy0
    
  9. Assign root write permissions to /etc/rmmount.conf.


    # chmod 644 /etc/rmmount.conf
    
  10. Add the following lines to /etc/rmmount.conf.


    # File System Sharing
    share floppy*

    These lines share any diskette loaded into your system's diskette drives.

  11. Remove write permissions from /etc/rmmount.conf.


    # chmod 444 /etc/rmmount.conf
    

    This step returns the file to its default permissions.

  12. Load a diskette.


    --Insert the diskette--
    # volcheck -v
    media was found

    The diskette you now load, and all subsequent diskettes, will be available to other systems. To access the diskette, the remote user must mount it by name, according to the instructions in "How to Access Diskettes on Other Systems".

  13. Verify that the diskette is available to other systems by using the share(1M) command.

    If the diskette is available, its share configuration will be displayed. (The shared dummy directory will also be displayed.)


    # share
    -    /dummy  ro "dummy dir to wake up NFS daemon"
    -    /myfiles rw  ""

Example--Making Local Diskettes Available to Other Systems

The following example makes any diskette loaded into the local system's diskette drive available to other systems on the network.


# ps -ef | grep nfsd
    root 10127  9986  0 08:25:01 pts/2    0:00 grep nfsd
    root 10118     1  0 08:24:39 ?        0:00 /usr/lib/nfs/nfsd -a
# mkdir /dummy
# vi /etc/dfs/dfstab
(Add the following line:)
share -F nfs -o ro  /dummy
# eject floppy0
# chmod 644 /etc/rmmount.conf
# vi /etc/rmmount
(Add the following line to the File System Sharing section.)
share floppy*
# chmod 444 /etc/rmmount.conf
(Load a diskette.)
# volcheck -v
media was found
# share
-               /dummy   ro   ""  
-               /floppy/myfiles   rw   ""