系统管理指南:设备和文件系统

第 3 章 访问可移除介质(任务)

本章介绍在 Solaris OS 中如何从命令行访问可移除介质。

有关访问可移除介质过程的信息,请参见以下内容:

有关可移除介质的背景信息,请参见第 1 章,管理可移除介质(概述)

访问可移除介质(任务列表)

以下任务列表介绍了有关访问可移除介质的任务。

任务 

说明 

参考 

1. (可选)添加可移除介质驱动器。 

如有必要,请将可移除介质驱动器添加到系统。  

如何添加新的可移除介质驱动器

2. (可选)确定是在运行还是在不运行卷管理 (vold) 的情况下使用可移除介质。

缺省情况下,将运行卷管理 (vold)。确定是在运行还是在不运行卷管理的情况下使用可移除介质。

如何停止和启动卷管理 (vold)

3. 访问可移除介质。 

在运行或不运行卷管理的情况下访问不同种类的可移除介质。 

如何访问可移除介质上的信息

4. (可选)复制文件或目录。 

从介质复制文件或目录,类似于从文件系统中的其他任何位置进行复制。 

如何从可移除介质复制信息

5. 确定介质是否仍在使用。 

弹出介质之前,确定其是否仍在使用。 

如何确定可移除介质是否仍在使用

6. 弹出介质。 

完成后,从驱动器中弹出介质。 

如何弹出可移除介质

访问可移除介质

无论是否使用卷管理,都可以访问有关可移除介质的信息。有关使用 GNOME 的文件管理器访问可移除介质相关信息的信息,请参见 GNOME 桌面文档。

卷管理 (vold) 可主动管理所有的可移除介质设备。因此,使用设备名称(如 /dev/rdsk/cntndnsn/dev/dsk/cn tndn sn)访问可移除介质的任何尝试都将失败。

使用可移除介质名称

可以使用不同名称访问所有可移除介质。下表介绍了在使用或不使用卷管理的情况下可以访问的不同介质名称。

表 3–1 可移除介质名称

介质 

卷管理设备名称 

卷管理设备别名 

设备名称 

第一个软盘驱动器 

/floppy

/vol/dev/aliases/floppy0

/dev/rdiskette

/vol/dev/rdiskette0/

volume-name

第一个、第二个、第三个 CD-ROM 或 DVD-ROM 驱动器 

/cdrom0

/cdrom1

/cdrom2

/vol/dev/aliases/cdrom0

/vol/dev/aliases/cdrom1

/vol/dev/aliases/cdrom2

/vol/dev/rdsk/cnt n[dn] /

volume-name

第一个、第二个、第三个 PCMCIA 驱动器 

/pcmem/pcmem0

/pcmem/pcmem1

/pcmem/pcmem2

/vol/dev/aliases/pcmem0

/vol/dev/aliases/pcmem1

/vol/dev/aliases/pcmem2

/vol/dev/rdsk/cnt ndn /

volume-name

USB 内存条 

/rmdisk/noname

/vol/dev/aliases/rmdisk0

/vol/dev/dsk/cntndn/volume-name:c

访问可移除介质数据的指导原则

大多数 CD 和 DVD 都是按照可移植的 ISO 9660 标准格式化的。因此,卷管理可以挂载大多数 CD 和 DVD。但是,具有 UFS 文件系统的 CD 或 DVD 不能在体系结构之间移植。因此,它们必须在针对其设计的体系结构上使用。

例如,x86 平台无法识别 SPARCTM 平台上具有 UFS 文件系统的 CD 或 DVD。同样,SPARC 平台上的卷管理也无法挂载 x86 UFS CD。此限制通常也适用于软盘。但是,一些体系结构共享相同的位结构,因此有时特定于一种体系结构的 UFS 格式可被另一种体系结构识别。但是,UFS 文件系统结构的设计不能保证此兼容性。

要适应不同的格式,可将 CD 或 DVD 分成若干个片。这些片在作用上与硬盘上的分区类似。9660 部分可移植,但 UFS 部分特定于体系结构。如果在挂载 CD 或 DVD 时出现问题,尤其是安装 CD 或 DVD 时,应确保其 UFS 文件系统适合系统的体系结构。例如,可以检查 CD 或 DVD 上的标号。

Procedure如何添加新的可移除介质驱动器

通常,大多数新式总线类型支持热插拔。如果系统的总线类型支持热插拔,则可能只需执行下面的步骤 5。如果系统的总线类型不支持热插拔,则可能必须执行下面步骤 1-6 中介绍的任务。

有关热插拔设备的更多信息,请参见第 6 章,动态配置设备(任务)

  1. 成为超级用户。

  2. 创建 /reconfigure 文件。


    # touch /reconfigure
    
  3. 使系统转至运行级 0。


    # init 0
    
  4. 关闭系统电源。

  5. 连接新的介质驱动器。

    有关特定说明,请参见硬件手册。

  6. 打开系统电源。

    系统会自动进入多用户模式。

Procedure如何停止和启动卷管理 (vold)

有时,可能需要在不使用卷管理的情况下管理介质。本节介绍如何停止和重新启动卷管理。

  1. 确保未使用介质。

    如果无法确定是否已找到介质的所有用户,请使用 fuser 命令。请参见如何确定可移除介质是否仍在使用

  2. 成为超级用户。

  3. 选择以下操作之一:

    • 停止卷管理。


      # svcadm disable volfs
      
    • 启动卷管理。


      # svcadm enable volfs
      
      volume management starting.

Procedure如何访问可移除介质上的信息

  1. 插入介质。

    几秒后将挂载介质。

  2. (可选的)如果使用的是传统的非 USB 软盘设备,请检查驱动器中的介质。


    % volcheck
    
  3. 列出介质的内容。


    % ls /media
    

    通过命令行界面使用适当的设备名称访问信息。有关设备名称的说明,请参见表 3–1


示例 3–1 访问可移除介质上的信息

此示例说明如何访问软盘上的信息。


$ $ ls /floppy

myfile

此示例说明如何访问 USB 内存条上的信息。


$ ls /rmdisk

rmdisk0/		rmdisk1/

此示例说明如何访问 DVD 或 CD 上的信息。


$ ls /cdrom

cdrom0       sol_10_305_sparc

此示例说明如何查看 DVD 或 CD 上的符号链接。


$ ls -lL /cdrom/cdrom0

total 24

dr-xr-xr-x   2 root     sys         2048 Jan 23 03:24 s0

drwxr-xr-x  18 root     root         512 Jan 23 03:25 s1

drwxr-xr-x   2 root     root         512 Jan 23 03:27 s2

drwxr-xr-x   2 root     root         512 Jan 23 03:27 s3

drwxr-xr-x   2 root     root         512 Jan 23 03:27 s4

drwxr-xr-x   2 root     root         512 Jan 23 03:27 s5

此示例说明如何访问 PCMCIA 内存卡上的信息,如下所示:


$ ls /pcmem/pcmem0

pcmem0 myfiles

Procedure如何从可移除介质复制信息

与任何其他文件系统一样,可以访问可移除介质上的文件和目录。仅有的重要限制与拥有权和权限有关。

例如,如果您将文件从 CD 复制到文件系统中,则您即是属主。但是,您不会具有写入权限,因为 CD 上的文件从没有写入权限。您必须自行更改权限。

  1. 确保已挂载介质。


    $ ls /media
    

    ls 命令会显示已挂载介质的内容。如果未显示内容,请参见如何访问可移除介质上的信息

  2. (可选)复制文件或目录。

    例如,对于 DVD,可以执行以下操作:


    $ cp /cdrom/sol_10_305_sparc/s0/Solaris_10/Tools/add_install_client .
    
    $ ls -l
    
    -rwxr-xr-x   1 pmorph	  gelfs   66393 Jun 14 16:08 add_install_client

    例如,对于 PCMCIA 内存卡,可以执行以下操作:


    $ cp /pcmem/pcmem0/readme2.doc .
    
    $ cp -r /pcmem/pcmem0/morefiles .
    

Procedure如何确定可移除介质是否仍在使用

  1. 成为超级用户。

  2. 确定正在访问介质的进程。


    # fuser -u /media
    

    -u 显示介质的用户。

    有关更多信息,请参见 fuser(1M)

  3. (可选)中止正在访问介质的进程。


    # fuser -u -k /media
    

    -k 中止正在访问介质的进程。


    注意 – 注意 –

    仅在紧急情况下才能中止正在访问介质的进程。


  4. 检验进程是否已中止。


    # pgrep process-ID
    

示例 3–2 确定介质是否仍在使用

以下示例说明用户 pmorph 正在访问 /cdrom/sol_10_305_sparc/s0/Solaris_10/Tools 目录。


# fuser -u /cdrom/sol_10_305_sparc/s0/Solaris_10/Tools

/cdrom/sol_10_305_sparc/s0/Solaris_10/Tools:  13737c(pmorph)  4712c(pmorph)

Procedure如何弹出可移除介质

  1. 确保未使用介质。

    请记住,如果 shell 或应用程序正在访问介质的任何文件或目录,则表明“正在使用”该介质。如果无法确定是否已找到 CD 的所有用户(例如,隐藏在桌面工具之后的 shell 可能正在访问 CD),请使用 fuser 命令。请参见如何确定可移除介质是否仍在使用

  2. 弹出介质。


    # eject media
    

    例如,对于 CD,可以执行以下操作:


    # eject cdrom
    

    例如,对于 USB 内存条,可以执行以下操作:


    # eject rmdisk0
    

    例如,对于 PCMCIA 内存卡,可以执行以下操作:


    # eject pcmem0
    

在远程系统上访问可移除介质(任务列表)

以下任务列表介绍了在远程系统上访问可移除介质所需的任务。

任务 

说明 

参考 

1. 使本地介质可供远程系统使用。 

将系统配置为共享其介质驱动器,以便使这些驱动器中的任何介质可供其他系统使用。 

如何使本地介质可供其他系统使用

2. 访问远程系统上的可移除介质。 

在本地系统上访问远程介质。 

如何访问可移除介质上的信息

Procedure如何使本地介质可供其他系统使用

可以将系统配置为共享其介质驱动器,以便使这些驱动器中的任何介质可供其他系统使用。音乐 CD 除外。共享介质驱动器后,其他系统只需挂载这些驱动器即可访问其包含的介质。有关说明,请参见如何访问远程系统上的可移除介质

  1. 成为超级用户。

  2. 创建要共享的伪目录。


    # mkdir /dummy
    

    dummy 挂载点可以是任何目录名,例如 /dummy。 此目录将不包含任何文件。其唯一的用途是“唤醒”NFS 守护进程,以便此进程通知共享的介质驱动器。

  3. 将以下项添加到 /etc/dfs/dfstab 文件。


    share -F nfs -o ro /dummy
    

    启动 NFS 服务器服务时,该服务会遇到该项,“唤醒” NFS 守护进程,然后通知共享的介质驱动器。

  4. 确定 NFS 服务器服务是否正在运行。


    # svcs *nfs*
    
    

    如果 NFS 服务器服务正在运行,则 svcs 命令将返回以下输出:


    online         14:28:43 svc:/network/nfs/server:default
  5. 确定 NFS 服务器的状态,然后选择以下操作之一:

    • 如果 NFS 服务器服务正在运行,则转到步骤 7

    • 如果 NFS 服务器服务没有运行,则转到下一步。

  6. 启动 NFS 服务器服务。


    # svcadm enable network/nfs/server
    

    验证 NFS 守护进程是否正在运行。

    例如:


    # svcs -p svc:/network/nfs/server:default
    
    STATE          STIME    FMRI
    
    online         Aug_30   svc:/network/nfs/server:default
    
                   Aug_30        319 mountd
    
                   Aug_30        323 nfsd
  7. 弹出当前位于驱动器中的任何介质。


    # eject media
    
  8. 指定对 /etc/rmmount.conf 文件的超级用户写入权限。


    # chmod 644 /etc/rmmount.conf
    
  9. 将以下行添加到 /etc/rmmount.conf 文件:


    share media*

    这些行共享装入系统 CD-ROM 驱动器中的任何介质。但是,可以将共享限制为特定的 CD 或 CD 系列,如 share(1M) 中所述。

  10. 删除 /etc/rmmount.conf 文件的写入权限。


    # chmod 444 /etc/rmmount.conf
    

    此步骤可将文件恢复为其缺省权限。

  11. 装入介质。

    现在装入的介质和所有后续介质均可供其他系统使用。请记住,在检验此任务之前,应等待驱动器上的指示灯停止闪烁。

    要访问介质,远程用户必须按照如何访问远程系统上的可移除介质中的说明,按名称挂载介质。

  12. 检验介质是否确实可供其他系统使用。

    如果介质可用,则会显示其共享配置,还将显示共享的 dummy 目录。


    # share
    
    -               /dummy  ro    ""
    
    -               /cdrom/sol_10_305_sparc/s5   ro   ""  
    
    -               /cdrom/sol_10_305_sparc/s4   ro   ""  
    
    -               /cdrom/sol_10_305_sparc/s3   ro   ""  
    
    -               /cdrom/sol_10_305_sparc/s2   ro   ""  
    
    -               /cdrom/sol_10_305_sparc/s1   ro   ""  
    
    -               /cdrom/sol_10_305_sparc/s0   ro   ""  

示例 3–3 使本地 CD 可供其他系统使用

以下示例说明如何使任何本地 CD 可供网络中的其他系统使用。


# mkdir /dummy

vi /etc/dfs/dfstab

(Add the following line:)

# share -F nfs -o ro  /dummy

# svcs *nfs*

# svcadm enable network/nfs/server

# svcs -p svc:/network/nfs/server:default

# eject cdrom0

# chmod 644 /etc/rmmount.conf

# vi /etc/rmmount.conf

(Add the following line:)

 share cdrom*

# chmod 444 /etc/rmmount.conf

(Load a CD.)

# share

-               /dummy   ro   ""  

-               /cdrom/sol_10_305_sparc/s5   ro   ""  

-               /cdrom/sol_10_305_sparc/s4   ro   ""  

-               /cdrom/sol_10_305_sparc/s3   ro   ""  

-               /cdrom/sol_10_305_sparc/s2   ro   ""  

-               /cdrom/sol_10_305_sparc/s1   ro   ""  

-               /cdrom/sol_10_305_sparc/s0   ro   "" 


示例 3–4 使本地软盘可供其他系统使用

以下示例说明如何使任何本地软盘可供网络中的其他系统使用。


# mkdir /dummy

# vi /etc/dfs/dfstab

(Add the following line:)

share -F nfs -o ro  /dummy

# svcs *nfs*

# svcadm enable network/nfs/server

# svcs -p svc:/network/nfs/server:default

# eject floppy0

# chmod 644 /etc/rmmount.conf

# vi /etc/rmmount.conf

(Add the following line:)

share floppy*

# chmod 444 /etc/rmmount.conf

(Load a diskette.)

# volcheck -v

media was found

# share

-               /dummy   ro   ""  

-               /floppy/myfiles   rw   ""  


示例 3–5 使本地 PCMCIA 内存卡可供其他系统使用

以下示例说明如何使任何本地 PCMCIA 内存卡可供网络中的其他系统使用。


# mkdir /dummy

# vi /etc/dfs/dfstab

(Add the following line:)

# svcs *nfs*

# share -F nfs -o ro  /dummy

# svcadm enable network/nfs/server

# svcs -p svc:/network/nfs/server:default

# eject pcmem0

# chmod 644 /etc/rmmount.conf

# vi /etc/rmmount.conf

(Add the following line:)

share floppy*

svc:/network/nfs/server:default# chmod 444 /etc/rmmount.conf

(Load a PCMCIA memory card.)

# volcheck -v

media was found

# share

-               /dummy   ro   ""  

-               /pcmem/myfiles   rw   ""

Procedure如何访问远程系统上的可移除介质

通过手动将介质挂载到文件系统中,可以访问远程系统上的该介质。另外,远程系统还必须已按照如何使本地介质可供其他系统使用中的说明共享其介质。

  1. 选择一个现有目录用作挂载点。或者,创建一个挂载点。


    $ mkdir /directory
    

    其中 /directory 是创建作为远程系统 CD 挂载点的目录的名称。

  2. 查找要挂载的介质的名称。


    $ showmount -e system-name
    
  3. 以超级用户身份挂载介质。


    # mount -F nfs -o ro system-name:/media/media-name local-mount-point
    
    system-name:

    将挂载其介质的系统的名称。

    media-name

    要挂载的介质的名称。

    local-mount-point

    将挂载远程介质的本地目录。

  4. 以超级用户身份注销。

  5. 检验是否已挂载介质。


    $ ls /media
    

示例 3–6 在远程系统上访问 CD

以下示例说明如何从使用 AutoFS 的远程系统 starbug 自动访问名为 sol_10_305_sparc 的远程 DVD。


$ showmount -e starbug

export list for starbug:

/dummy                     (everyone)

/cdrom/sol_10_305_sparc/s5 (everyone)

/cdrom/sol_10_305_sparc/s4 (everyone)

/cdrom/sol_10_305_sparc/s3 (everyone)

/cdrom/sol_10_305_sparc/s2 (everyone)

/cdrom/sol_10_305_sparc/s1 (everyone)

/cdrom/sol_10_305_sparc/s0 (everyone)

$ ls /net/starbug/cdrom/

sol_10_305_sparc


示例 3–7 在其他系统上访问软盘

以下示例说明如何从使用 AutoFS 的远程系统 mars 自动访问 myfiles


$ showmount -e mars

$ cd /net/mars

$ ls /floppy

floppy0     myfiles


示例 3–8 在远程系统上访问 PCMCIA 内存卡

以下示例说明如何从使用 AutoFS 的远程系统 mars 自动访问名为 myfiles 的 PCMCIA 内存卡。


$ showmount -e mars

$ cd /net/mars

$ ls /pcmem

pcmem0     myfiles