はじめに
この実験では、Linux の mtools コマンドを探索します。mtools は、Unix から MS-DOS ディスクをマウントせずにアクセスするためのユーティリティのコレクションです。まず、Ubuntu 22.04 に mtools パッケージをインストールし、次に mtools 内で利用可能なさまざまなコマンドとオプションについて詳しく調べます。最後に、mtools を使用してフロッピーディスクイメージを管理する方法を学びます。
mtools パッケージは使用する前にシステムにインストールする必要があります。この実験では、パッケージのインストール方法をステップバイステップで説明し、その後、MS-DOS ディスク上のファイルおよびディレクトリ操作における mtools コマンドの実用的な使い方を示します。
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)...
これで、Ubuntu 22.04 環境に mtools パッケージがインストールされました。
mtools コマンドとオプションを探索する
このステップでは、mtools パッケージが提供するさまざまなコマンドとオプションを探索します。
まず、利用可能な mtools コマンドを確認しましょう。
mtools --help
出力例:
mtools version 4.0.26, dated 2019/11/29
Usage: mtools [options] command [arguments]
Options:
-V, --version print version information and exit
-h, --help print this help
-f, --config=FILE use FILE as the configuration file
-s, --safe disable all potentially dangerous commands
-q, --quiet suppress most warning messages
-v, --verbose enable verbose messages
-d, --debug enable debug messages
Commands:
mcopy copy file or directory
mmove move or rename file or directory
mdir display directory of MSDOS file
mtype display contents of file
mren rename file
mdel, mdelete delete file
mmd, mmkdir make directory
mrd, mrmdir remove directory
mformat format disk
mlabel set volume label
mattrib change file attribute bits
minfo print information about an MSDOS file or directory
mshortname display short 8.3 names
mtoolstest run internal consistency checks
mcheck check MSDOS filesystem consistency
ご覧のとおり、mtools は mcopy、mdir、mtype など、MS-DOS ベースのファイルシステムを管理するためのさまざまなコマンドを提供しています。
一般的に使用される mtools コマンドのいくつかを探索しましょう。
MS-DOS ディスクイメージの内容を一覧表示する:
mcopy -ml a:このコマンドは、通常 MS-DOS ディスクイメージを表す "a:" ドライブの内容を一覧表示します。
ホストシステムから MS-DOS ディスクイメージにファイルをコピーする:
mcopy example.txt a:これにより、カレントディレクトリの
example.txtファイルが "a:" ドライブ (MS-DOS ディスクイメージ) にコピーされます。MS-DOS ディスクイメージからホストシステムにファイルをコピーする:
mcopy a:example.txt.これにより、"a:" ドライブ (MS-DOS ディスクイメージ) の
example.txtファイルがホストシステムのカレントディレクトリにコピーされます。MS-DOS ディスクイメージ上にディレクトリを作成する:
mmd a:newdirこれにより、"a:" ドライブ (MS-DOS ディスクイメージ) 上に "newdir" という名前の新しいディレクトリが作成されます。
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 パッケージをインストールする方法を学びました。mtools は、Unix から MS-DOS ディスクをマウントせずにアクセスするためのユーティリティのコレクションを提供します。mtools で利用可能なさまざまなコマンドとオプションを探索し、提供されたツールを使用してフロッピーディスクイメージの管理を練習しました。この実験では、mtools を使い始めるための基本的な手順をカバーし、Linux システム上で MS-DOS 形式のストレージデバイスを操作する際の実用的なアプリケーションを示しました。



