6
Mounting CDROMs on Solaris Unix in general and Solaris in particular has the propensity to make simple tasks complex and mounting CDROM is one of such cases. There are two main ways of mount CDROM on Solaris Using vold daemon Direct mounting using mount command Using vold The simplest way to mount CDROM on Solaris is use vold daemon. The vold daemon in Solaris manages the CD-ROM device and automatically performs the mounting similar to how Windows manages CDROMs (but not as transparent or reliable). If CD is detected in drive its should be automatically mounted to the /cdrom/cdrom0 directory. If you are running File Manager, a separate File Manager window displays the contents of the CD-ROM. If the /cdrom/cdrom0 directory is empty because the CD-ROM was not mounted, or if File Manager did not open a window displaying the contents of the CD-ROM the first step is to verify the vold daemon is running using the command: # pgrep vold If vold is running, the system displays the process identification number of vold. If the system does not display anything, restart the daemon by entering the following command: # /usr/sbin/vold & If the vold daemon is running but did not mount the CD-ROM, stop the vold daemon process and then restart the daemon. To stop the vold process, you must know the process identification number. you can get it by entering this command: # pgrep vold Restart the vold process by entering the following command: # pkill vold && /usr/sbin/vold & In Solaris 9, you need to stop the volume management service:

Mounting CDROMs on Solaris 10

  • Upload
    george

  • View
    11.698

  • Download
    0

Embed Size (px)

DESCRIPTION

How to mount CDROM on Solaris 10

Citation preview

Page 1: Mounting CDROMs on Solaris 10

Mounting CDROMs on SolarisUnix in general and Solaris in particular has the propensity to make simple tasks complex and mounting CDROM is one of such cases.  There are two main ways of mount CDROM on Solaris

Using vold daemon Direct mounting using mount command

Using vold

The simplest way to mount CDROM on Solaris is use vold daemon.  The vold daemon in Solaris manages the CD-ROM device and automatically performs the mounting similar to how Windows manages CDROMs (but not as transparent or reliable). If CD is detected in drive its should be  automatically mounted to the /cdrom/cdrom0 directory. If you are running File Manager, a separate File Manager window displays the contents of the CD-ROM.

If the /cdrom/cdrom0 directory is empty because the CD-ROM was not mounted, or if File Manager did not open a window displaying the contents of the CD-ROM the first step is to verify the vold daemon is running using the  command:

# pgrep vold

If vold is running, the system displays the process identification number of vold. If the system does not display anything, restart the daemon by entering the following command:

# /usr/sbin/vold &

If the vold daemon is running but did not mount the CD-ROM, stop the vold daemon process and then restart the daemon. To stop the vold process, you must know the process identification number. you can get it by entering this command:

# pgrep vold

Restart the vold process by entering the following command:

# pkill vold && /usr/sbin/vold &

In Solaris 9, you need to stop the volume management service:

/etc/init.d/volmgt stop

Using direct mount command

If approach based on vold does not work you do try to do it via direct mount command. The first step is to determine the device which corresponds to the CDROM drive on you server or workstation.

CDROM on Solaris is usually linked to device /dev/sr0.  You can determine the name of the device by entering the following command:

ls -al /dev/sr* |awk '{print "/" $11}'

Page 2: Mounting CDROMs on Solaris 10

This command returns the name(s) of the CD-ROM devices on the server. For example, the command can return the string /dev/dsk/c0t6d0s2.

You can also get the device name in cxtydzsn format, associated with the CD drive:

% iostat -En

c1t0d0 Soft Errors: 149 Hard Errors: 0 Transport Errors: 0

Vendor: MATSHITA Product: CDRW/DVD UJDA740 Revision: 1.00 Serial No:

Size: 0.56GB <555350016 bytes>

Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0

Illegal Request: 149 Predictive Failure Analysis: 0

Here -E displays all device error statistics & -n shows the names in descriptive format. We are

interested in only the logical device name though. 

slice 0 is the default

After you determined the name of device for CDROM drive you can use mount command  (if  mounting directory for example /cdrom does not exit you need to create it  mkdir /cdrom; chmod a+rwx /cdrom ):

mount -F hsfs -r /dev/sr0 /cdrom

or

mount -F hsfs -o ro /dev/dsk/c1t0d0s0 /cdrom 

to mount it (I would like to stress it again that directory /cdrom should exist and have proper permissions for operation to succeed).

After then you can check the results using  df command, for example

/ (/dev/dsk/c0d0s0 ):11467100 blocks 959851 files

... ... ...

/cdrom (/dev/dsk/c1t0d0s0 ): 0 blocks

If you want to simplify the mount process, you can add an entry to the /etc/vfstab file. Edit the /etc/vfstab file and add the following entry:

/dev/dsk/cΨt6dΨs2 - /cdrom hsfs - no ro

Page 3: Mounting CDROMs on Solaris 10

If you have UFS CDROM you can specify multiple entries, one for each typr of the filesystem, for example:

/dev/dsk/cΨt6dΨs2  -  /cdrom-hsfs hsfs -  no  ro/dev/dsk/cΨt6dΨs2  -  /cdrom-ufs  ufs  -  no  ro

Sharing CDROM mounted on Remote server/workstation

Use a text editor to create an /etc/dfs/dfstab file, if one does not exist. Add the following line to the /etc/dfs/dfstab file:

share -F nfs -o ro /cdrom/cd1

Ensure your remote machine is enabled as an NFS server by entering the following command:

# ps -ef | grep nfs | grep -v grep

This indicates whether the following daemons are running: /usr/lib/nfs/nfsd and /usr/lib/nfs/mountd.

If these daemons are not running, you need to enable your machine as an NFS server by entering the following command:

# /etc/init.d/nfs.server start

If your machine is enabled as an NFS server, enter one of the following commands:

# share

or

# shareall

Log on as superuser on target machine. Then create a /cdrom directory, if one does not already exist, by entering the following command:

# mkdir -p /cdrom/cd1

Now you can mount the remote CD-ROM  as NFS filesystem using command

# /usr/sbin/mount -r remote_machine_name:/cdrom/cd1 /cdrom/cd1

Unmounting the CD-ROM Drive

Page 4: Mounting CDROMs on Solaris 10

You need to move out of the CDROM directory to successfully unmount it: 

# cd / && umount /cdrom/cdrom0

If CDROM is mounted via NFS from remote computer you need unmount it in two places.

The typical problem is that some process is still using the mounted filesystem. The fuser utility lists processes using a file or files in a filesystem.  To determine what processes may be preventing a filesystem's amount, the -c switch should be used:   fuser -c /cdrom

This command will list the process ids of processes with open files in the filesystem mounted under /mnt. The characters following the pid provide additional information about the file:

c - the process is using the file as its current working directory m - the file is mapped with mmap o - the process is using it as an open file r - the file is the root directory of the process t - the process is accessing the file as a text file y - this file is the controlling terminal for the process

Before unmounting a filesystem, Solaris checks to ensure that no files are open to prevent loss of data. The following are steps that

can be followed when a filesystem won't unmount.

The fuser utility lists processes using a file or files in a filesystem. It's To determine what processes may be preventing a filesystem's umount, the -c switch must be used as running this command as root:

fuser -c /mnt /mnt:    19504tm   19492tm   19460tm

This command will list the process ids of processes with open files in the filesystem mounted under /mnt. The characters following the pid provide additional information about the file:

c - the process is using the file as its current working directory m - the file is mapped with mmap o - the process is using it as an open file r - the file is the root directory of the process t - the process is accessing the file as a text file y - this file is the controlling terminal for the process

A useful option for fuser is -u which adds the username owning the process to the display:   fuser -cu /mnt /mnt:    19504tm(root)   19492tm(root)   19460tm(qmchenry)

Page 5: Mounting CDROMs on Solaris 10

If you feel comfortable killing the processes reported by fuser, you can do it in one quick blow with the -k option:

fuser -ck /mnt

This sends the SIGKILL signal to each process which is the same as running kill pid to each process.

However, before you go to this extreme, perhaps the most common reason a filesystem won't unmount is because you (or a previous shell you used) has its current working directory in that filesystem.