Linux mtools 命令及实际应用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Linux 的 mtools 命令,这是一组实用工具,用于在不挂载的情况下从 Unix 访问 MS-DOS 磁盘。我们将从在 Ubuntu 22.04 上安装 mtools 包开始,然后深入研究 mtools 中可用的各种命令和选项。最后,我们将学习如何使用 mtools 管理软盘镜像。

在使用 mtools 之前,需要先在系统上安装该软件包。本实验提供了逐步的安装说明,并演示了如何使用 mtools 命令在 MS-DOS 磁盘上进行文件和目录操作。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/dd("File Converting/Copying") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/dd -.-> lab-422829{{"Linux mtools 命令及实际应用示例"}} linux/sudo -.-> lab-422829{{"Linux mtools 命令及实际应用示例"}} linux/apt -.-> lab-422829{{"Linux mtools 命令及实际应用示例"}} end

在 Ubuntu 22.04 上安装 mtools 包

在这一步中,我们将在 Ubuntu 22.04 环境中安装 mtools 包。mtools 是一组实用工具,用于在不挂载的情况下从 Unix 访问 MS-DOS 磁盘。

首先,更新包索引:

sudo apt-get update

示例输出:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Fetched 324 kB in 1s (324 kB/s)
Reading package lists... Done

现在,安装 mtools 包:

sudo apt update
sudo apt-get install -y mtools

示例输出:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libc6 libmagic-mgc libmagic1
Suggested packages:
  mtools-doc
The following NEW packages will be installed:
  libc6 libmagic-mgc libmagic1 mtools
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 632 kB of archives.
After this operation, 2,102 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libc6 amd64 2.35-0ubuntu3.1 [2,560 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmagic-mgc amd64 5.38-4 [276 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmagic1 amd64 5.38-4 [92.6 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 mtools amd64 4.0.26-1 [201 kB]
Fetched 632 kB in 1s (632 kB/s)
Selecting previously unselected package libc6.
(Reading database ... 24441 files and directories currently installed.)
Preparing to unpack .../libc6_2.35-0ubuntu3.1_amd64.deb ...
Unpacking libc6 (2.35-0ubuntu3.1) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../libmagic-mgc_5.38-4_amd64.deb ...
Unpacking libmagic-mgc (5.38-4) ...
Selecting previously unselected package libmagic1.
Preparing to unpack .../libmagic1_5.38-4_amd64.deb ...
Unpacking libmagic1 (5.38-4) ...
Selecting previously unselected package mtools.
Preparing to unpack .../mtools_4.0.26-1_amd64.deb ...
Unpacking mtools (4.0.26-1) ...
Setting up libc6 (2.35-0ubuntu3.1) ...
Setting up libmagic-mgc (5.38-4) ...
Setting up libmagic1 (5.38-4) ...
Setting up mtools (4.0.26-1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...

mtools 包现已安装在你的 Ubuntu 22.04 环境中。

探索 mtools 命令和选项

在这一步中,我们将探索 mtools 包提供的各种命令和选项。

首先,查看可用的 mtools 命令:

mtools --help

示例输出:

mtools version 4.0.26, dated 2019/11/29

Usage: mtools [options] command [arguments]

Options:
  -V, --version       打印版本信息并退出
  -h, --help          打印帮助信息
  -f, --config=FILE   使用 FILE 作为配置文件
  -s, --safe          禁用所有潜在危险命令
  -q, --quiet         抑制大多数警告信息
  -v, --verbose       启用详细输出
  -d, --debug         启用调试信息

Commands:
  mcopy              复制文件或目录
  mmove              移动或重命名文件或目录
  mdir               显示 MSDOS 文件的目录
  mtype              显示文件内容
  mren               重命名文件
  mdel, mdelete      删除文件
  mmd, mmkdir        创建目录
  mrd, mrmdir        删除目录
  mformat            格式化磁盘
  mlabel             设置卷标
  mattrib            更改文件属性位
  minfo              打印 MSDOS 文件或目录的信息
  mshortname         显示短 8.3 文件名
  mtoolstest         运行内部一致性检查
  mcheck             检查 MSDOS 文件系统一致性

如你所见,mtools 提供了多种命令来管理基于 MS-DOS 的文件系统,例如 mcopymdirmtype 等。

让我们探索一些常用的 mtools 命令:

  1. 列出 MS-DOS 磁盘镜像的内容

    mcopy -ml a:

    该命令将列出 "a:" 驱动器的内容,通常代表一个 MS-DOS 磁盘镜像。

  2. 将文件从主机系统复制到 MS-DOS 磁盘镜像

    mcopy example.txt a:

    这将把当前目录中的 example.txt 文件复制到 "a:" 驱动器(MS-DOS 磁盘镜像)。

  3. 将文件从 MS-DOS 磁盘镜像复制到主机系统

    mcopy a:example.txt .

    这将把 "a:" 驱动器(MS-DOS 磁盘镜像)中的 example.txt 文件复制到主机系统的当前目录。

  4. 在 MS-DOS 磁盘镜像上创建目录

    mmd a:newdir

    这将在 "a:" 驱动器(MS-DOS 磁盘镜像)上创建一个名为 "newdir" 的新目录。

  5. 从 MS-DOS 磁盘镜像中删除目录

    mrd a:newdir

    这将从 "a:" 驱动器(MS-DOS 磁盘镜像)中删除 "newdir" 目录。

请记住,"a:" 驱动器通常代表一个 MS-DOS 磁盘镜像,你可以将其替换为适当的驱动器字母或磁盘镜像文件的路径。

使用 mtools 管理软盘镜像

在这最后一步中,我们将学习如何使用 mtools 命令管理软盘镜像。

首先,创建一个软盘镜像文件:

dd if=/dev/zero of=floppy.img bs=1440k count=1

这将创建一个名为 floppy.img 的 1.44MB 软盘镜像文件。

接下来,格式化软盘镜像:

mformat a: -f 1440

这将格式化 "a:" 驱动器(代表 floppy.img 文件)为 1.44MB 容量。

然后,将文件复制到软盘镜像中:

mcopy example.txt a:

这将把当前目录中的 example.txt 文件复制到 "a:" 驱动器(软盘镜像)。

为了验证软盘镜像的内容,我们可以使用 mdir 命令:

mdir a:

示例输出:

Volume in drive A has no label
 Volume Serial Number is 0000-0000

Directory for A:/

example.txt           1024 2023-04-18 15:23
               1 file

最后,从软盘镜像中删除文件:

mdel a:example.txt

并验证文件是否已被删除:

mdir a:

示例输出:

Volume in drive A has no label
 Volume Serial Number is 0000-0000

Directory for A:/

               0 files

就是这样!你现在已经学会了如何使用 mtools 命令管理软盘镜像。

总结

在本实验中,我们学习了如何在 Ubuntu 22.04 上安装 mtools 包,它提供了一组实用工具,用于在不挂载的情况下从 Unix 访问 MS-DOS 磁盘。我们探索了 mtools 中可用的各种命令和选项,并通过提供的工具练习了管理软盘镜像。实验涵盖了使用 mtools 的基本步骤,并展示了其在 Linux 系统上处理 MS-DOS 格式化存储设备的实际应用。

Linux 命令速查表