mtools 是一组用于在 Unix/Linux 系统中操作 MS-DOS 文件系统的工具集合[citation:2]。它允许用户直接读取、写入和操作 MS-DOS 格式的磁盘(如软盘、U盘和硬盘分区),而无需先挂载这些设备[citation:2]。
mtools [选项]
或者使用具体的子命令:
mcommand [选项] [参数]
# Ubuntu/Debian
sudo apt update
sudo apt install mtools
# CentOS/RHEL
sudo yum install mtools
# Fedora
sudo dnf install mtools
# Arch Linux
sudo pacman -S mtools
# openSUSE
sudo zypper install mtools
# 验证安装
mtools --version
mtools 包含多个子命令,每个命令对应一个MS-DOS操作:
| 命令 | 功能 | 等效的DOS命令 |
|---|---|---|
mattrib |
修改文件属性 | attrib |
mcopy |
复制文件 | copy |
mdel |
删除文件 | del |
mdir |
列出目录内容 | dir |
mformat |
格式化磁盘 | format |
mlabel |
设置磁盘卷标 | label |
mmd |
创建目录 | md |
mmove |
移动或重命名文件 | move, ren |
mren |
重命名文件 | ren |
mrd |
删除目录 | rd |
mtype |
显示文件内容 | type |
mcd |
更改工作目录 | cd |
mbadblocks |
测试磁盘坏块 | chkdsk |
# 显示mtools支持的所有命令
mtools
# 输出示例:
# Supported commands:
# mattrib, mbadblocks, mcat, mcd, mclasserase, mcopy, mdel, mdeltree
# mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount
# mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype
# mwrite, mzip
# 查看A盘(软盘)内容
mdir a:
# 查看C盘内容
mdir c:
# 使用宽格式列出文件
mdir -w a:
# 从Linux复制文件到DOS磁盘
mcopy file.txt a:
# 从DOS磁盘复制文件到Linux
mcopy a:document.doc .
# 复制多个文件
mcopy *.txt a:
# 在DOS磁盘上创建目录
mmd a:newdir
# 删除DOS磁盘上的文件
mdel a:oldfile.txt
# 重命名DOS磁盘上的文件
mren a:oldname.txt newname.txt
# 移动文件
mmove a:file1.txt a:subdir/file1.txt
mtools 的行为可以通过配置文件进行自定义:
# 系统级配置文件
/etc/mtools.conf
# 用户级配置文件
~/.mtoolsrc
# 通过环境变量指定配置文件
export MTOOLSRC=/path/to/config
# /etc/mtools.conf 示例
# 软盘驱动器
drive a: file="/dev/fd0" exclusive
drive b: file="/dev/fd1" exclusive
# U盘和硬盘分区
drive c: file="/dev/sda1"
drive d: file="/dev/sdb1"
# 全局选项
MTOOLS_SKIP_CHECK=1
MTOOLS_FAT_COMPATIBILITY=1
MTOOLS_LOWER_CASE=1
# 查看软盘内容
mdir a:
# 备份软盘所有文件到当前目录
mcopy a:* .
# 将文档保存到软盘
mcopy report.doc a:
# 查看U盘内容(假设配置为d:)
mdir d:
# 整理U盘中的文件
mmd d:documents
mmd d:images
mcopy d:*.txt d:documents/
mcopy d:*.jpg d:images/
# 删除临时文件
mdel d:*.tmp
# 格式化软盘
mformat a:
# 设置磁盘卷标
mlabel a:MYDISK
# 检查磁盘坏块
mbadblocks a:
# 创建磁盘映像
dd if=/dev/zero of=disk.img bs=1k count=1440
mformat -i disk.img ::
# 将文件添加到磁盘映像
mcopy -i disk.img file.txt ::
# 从磁盘映像提取文件
mcopy -i disk.img ::file.txt .
#!/bin/bash
# 备份DOS磁盘所有内容
echo "开始备份DOS磁盘..."
mdir a: > disk_contents.txt
mcopy -s a:* ./backup/
echo "备份完成"