rmformat 命令是可以用来格式化和保护可重写软盘的实用程序。除非 vold 没有运行,否则此实用程序不需要超级用户权限。卷管理 (vold) 将自动挂载文件系统。因此,如果介质包含现有的文件系统,则可能必须取消挂载该介质,然后才能对其进行格式化。
rmformat 命令具有以下三个格式化选项:
quick-此选项用于格式化软盘,但对介质上的某些磁道不进行检查或进行有限的检查。
long-此选项用于完全格式化软盘。对于某些设备,使用此选项可能包括按驱动器检查整个介质。
force-此选项用于完全格式化软盘,而无需用户确认。对于具有口令保护机制的软盘,此选项可在格式化之前清除口令。此功能在忘记口令时非常有用。在没有口令保护的软盘上,此选项可强制长格式。
使用软盘和 PCMCIA 内存卡时,请牢记以下限制:
SPARC 和 x86 UFS 格式是不同的。SPARC 使用小尾数法位编码,而 x86 使用大尾数法位编码。为 UFS 格式化的介质仅限于在对其进行格式化的硬件平台上使用。因此,在基于 SPARC 的平台上为 UFS 格式化的软盘不能用于 x86 平台上的 UFS。同样,在 x86 平台上为 UFS 格式化的软盘也不能在 SPARC 平台上使用。该限制同样适用于 PCMCIA 内存卡。
除了支持 SunOS 文件系统的结构外,SunOSTM 文件系统的完整格式还包含基本的“位”格式化。除了支持 MS-DOS 或 NEC-DOS 文件系统的结构外,DOS 文件系统的完整格式还包含基本的“位”格式化。为每种类型的文件系统准备介质所需的过程是不同的。因此,在格式化软盘或 PCMCIA 内存卡之前,请考虑要遵照哪个过程进行操作。有关更多信息,请参见管理可移除介质(任务列表)。
格式化软盘时,请牢记以下内容:
有关软盘名称的信息,请参见表 3–1。
对于未命名(即没有“标号”)的软盘,会为其指定缺省名称 noname。
Solaris 系统可以格式化以下类型的软盘:
UFS
MS-DOS 或 NEC-DOS (PCFS)
UDFS
在 Solaris 系统(SPARC 或 x86)上,可以格式化以下密度的软盘。
软盘大小 |
软盘密度 |
容量 |
---|---|---|
3.5” |
高密度 (High density, HD) |
1.44 MB |
3.5” |
双倍密度 (Double density, DD) |
720 KB |
缺省情况下,软盘驱动器会将软盘格式化为相同的密度。此缺省设置表示,除非另行指定,否则 1.44 MB 驱动器尝试将软盘格式化为 1.44 MB,而不管该软盘实际上是否为 1.44 MB 软盘。换句话说,可以将一张软盘格式化为其容量或更低容量,并且驱动器可以为软盘执行这一操作。
有关可移除介质硬件注意事项的信息,请参见可移除介质硬件注意事项。
插入介质。
如果无法确定,请插入介质并检查系统控制台窗口中的状态消息,如步骤 3 中所述。如果需要格式化介质,请转到如何格式化软盘 (rmformat)。
(可选的)如果使用的是传统的非 USB 软盘设备,请通知卷管理。
$ volcheck -v |
可能会显示两条状态消息:
卷管理检测到介质,并将尝试在表 3–1 所述的目录中挂载该介质。
如果介质已正确格式化,则控制台中不会出现错误消息。
如果介质未格式化,则仍会显示 “media was found” 消息。但是,在系统控制台窗口中会出现类似以下内容的错误消息:
fd0: unformatted diskette or no diskette in the drive
fd0: read failed (40 1 0)
fd0: bad format
必须格式化介质后,卷管理才能挂载该介质。 有关更多信息,请参见第 2 章,管理可移除介质(任务)。
卷管理未检测到介质。请确保介质已正确插入,然后再次运行 volcheck。如果不成功,请检查介质,该介质可能已损坏。另外,也可以尝试手动挂载介质。
通过列出介质的内容,验证是否已挂载该介质。
例如,对软盘执行以下操作:
$ ls /floppy floppy0 myfiles |
floppy0 是指向软盘实际名称的符号链接。在本示例中为 myfiles。如果软盘没有名称但已正确格式化,则系统将其称为 unnamed_floppy。
如果 /floppy 目录为空,则表明软盘未挂载或者未正确格式化。要查明原因,请运行 mount 命令,然后查找以 /floppy 开头的行(通常位于列表结尾):
/vol/dev/diskette0/ name 上的 /floppy/name
如果未出现该行,则表明未挂载软盘。请查看系统控制台窗口中的错误消息。
可以使用 rmformat 命令格式化软盘:缺省情况下,此命令会在介质上创建两个分区:分区 0 和分区 2(整个介质)。
验证卷管理是否正在运行。如果正在运行,则可以使用设备名称的较短昵称。
$ svcs volfs STATE STIME FMRI online 10:39:12 svc:/system/filesystem/volfs:default |
有关启动 vold 的信息,请参见如何停止和启动卷管理 (vold)。有关标识介质设备名称的信息,请参见使用可移除介质名称。
格式化该软盘。
$ rmformat -F [ quick | long | force ] device-name |
有关 rmformat 格式化选项的更多信息,请参见格式化软盘。
如果 rmformat 输出指明存在坏块,请参见如何修复可移除介质上的坏块。
(可选)使用 8 个字符的标号标记软盘。
$ rmformat -b label device-name |
有关创建 DOS 标号的信息,请参见 mkfs_pcfs(1M)。
本示例说明如何格式化软盘。
$ rmformat -F quick /dev/rdiskette Formatting will erase all the data on disk. Do you want to continue? (y/n) y ......................................................................... |
(可选的)格式化该软盘。
$ rmformat -F quick device-name |
(可选)创建备用 Solaris 分区表。
$ rmformat -s slice-file device-name |
将显示类似以下内容的片文件样例:
slices: 0 = 0, 30MB, "wm", "home" : 1 = 30MB, 51MB : 2 = 0, 94MB, "wm", "backup" : 6 = 81MB, 13MB |
成为超级用户。
确定相应的文件系统类型,然后选择以下操作之一:
创建 UFS 文件系统。例如:
# newfs /vol/dev/aliases/floppy0 |
创建 PCFS 文件系统。例如:
# mkfs -F pcfs /dev/rdsk/c0t4d0s2:c |
创建 UDFS 文件系统。例如:
# mkfs -F udfs /dev/rdsk/c0t1d0s1 |
以下示例说明如何格式化软盘并在该软盘上创建 UFS 文件系统。
$ rmformat -F quick /vol/dev/aliases/floppy0 Formatting will erase all the data on disk. Do you want to continue? (y/n) y $ su # /usr/sbin/newfs /vol/dev/aliases/floppy0 newfs: construct a new file system /dev/rdiskette: (y/n)? y /dev/rdiskette: 2880 sectors in 80 cylinders of 2 tracks, 18 sectors 1.4MB in 5 cyl groups (16 c/g, 0.28MB/g, 128 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 640, 1184, 1792, 2336, # |
本示例说明如何使用备用 fdisk 分区创建 PCFS 文件系统。在这些示例中,vold 没有运行。
$ rmformat -F quick /dev/rdsk/c0t4d0s2:c Formatting will erase all the data on disk. Do you want to continue? (y/n) y $ su # fdisk /dev/rdsk/c0t4d0s2:c # mkfs -F pcfs /dev/rdsk/c0t4d0s2:c Construct a new FAT file system on /dev/rdsk/c0t4d0s2:c: (y/n)? y # |
本示例说明如何在不使用 fdisk 分区的情况下创建 PCFS 文件系统。
$ rmformat -F quick /dev/rdiskette Formatting will erase all the data on disk. Do you want to continue? (y/n) y $ su # mkfs -F pcfs -o nofdisk,size=2 /dev/rdiskette Construct a new FAT file system on /dev/rdiskette: (y/n)? y # |
成为超级用户。
确定文件系统类型,然后选择以下操作之一:
检查 UFS 文件系统。
# fsck -F ufs device-name |
检查 UDFS 文件系统。
# fsck -F udfs device-name |
检查 PCFS 文件系统。
# fsck -F pcfs device-name |
以下示例说明如何检查介质上的 PCFS 文件系统的一致性。在本示例中,vold 没有运行。
# fsck -F pcfs /dev/rdsk/c0t4d0s2 ** /dev/rdsk/c0t4d0s2 ** Scanning file system meta-data ** Correcting any meta-data discrepancies 1457664 bytes. 0 bytes in bad sectors. 0 bytes in 0 directories. 0 bytes in 0 files. 1457664 bytes free. 512 bytes per allocation unit. 2847 total allocation units. 2847 available allocation units. # |
如果驱动器支持坏块管理,则只能使用 rmformat 命令来验证、分析和修复在验证过程中找到的坏扇区。大多数软盘、PCMCIA 内存卡和 USB 内存条都不支持坏块管理。
如果驱动器支持坏块管理,则会尽最大努力纠正坏块。如果尽最大努力也无法纠正坏块,则会显示一条消息,指明修复介质失败。
修复可移除介质上的坏块。
$ rmformat -c block-numbers device-name |
提供以前的 rmformat 会话中的十进制、八进制或十六进制格式的块编号。
验证介质。
$ rmformat -V read device-name |
在支持此功能的可移除介质上,可以应用读保护或写保护,并设置口令。
确定要启用还是禁用写保护,然后选择以下操作之一:
启用写保护。
$ rmformat -w enable device-name |
禁用写保护。
$ rmformat -w disable device-name |
验证是否已启用或禁用介质的写保护。
$ rmformat -p device-name |
对于支持此功能的可移除介质,可以应用最多为 32 个字符的口令。
如果尝试在不支持此功能的介质上应用口令,则会收到一条警告消息。
确定是要启用还是禁用读/写保护,并设置口令。选择以下操作之一:
启用读保护或写保护。
$ rmformat -W enable device-name Please enter password (32 chars maximum): xxx Please reenter password: |
$ rmformat -R enable device-name Please enter password (32 chars maximum): xxx Please reenter password: |
禁用读保护或写保护并删除口令。
$ rmformat -W disable device-name Please enter password (32 chars maximum): xxx |
$ rmformat -R disable device-name Please enter password (32 chars maximum): xxx |
验证是否已启用或禁用介质的读/写保护。
$ rmformat -p device-name |
本示例说明如何在软盘上启用写保护并设置口令。
$ rmformat -W enable /vol/dev/aliases/floppy0 Please enter password (32 chars maximum): xxx Please reenter password: xxx |
本示例说明如何在软盘上禁用读保护并删除口令。
$ rmformat -R disable /vol/dev/aliases/floppy0 Please enter password (32 chars maximum): xxx |