実践例付きの Linux mtools コマンド

LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Linux の mtools コマンドを探索します。mtools は、Unix から MS-DOS ディスクをマウントせずにアクセスするためのユーティリティのコレクションです。まず、Ubuntu 22.04 に mtools パッケージをインストールし、次に mtools 内で利用可能なさまざまなコマンドとオプションについて詳しく調べます。最後に、mtools を使用してフロッピーディスクイメージを管理する方法を学びます。

mtools パッケージは使用する前にシステムにインストールする必要があります。この実験では、パッケージのインストール方法をステップバイステップで説明し、その後、MS-DOS ディスク上のファイルおよびディレクトリ操作における mtools コマンドの実用的な使い方を示します。

Linux コマンドチートシート

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

ご覧のとおり、mtoolsmcopymdirmtype など、MS-DOS ベースのファイルシステムを管理するためのさまざまなコマンドを提供しています。

一般的に使用される mtools コマンドのいくつかを探索しましょう。

  1. MS-DOS ディスクイメージの内容を一覧表示する:

    mcopy -ml a:
    

    このコマンドは、通常 MS-DOS ディスクイメージを表す "a:" ドライブの内容を一覧表示します。

  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 パッケージをインストールする方法を学びました。mtools は、Unix から MS-DOS ディスクをマウントせずにアクセスするためのユーティリティのコレクションを提供します。mtools で利用可能なさまざまなコマンドとオプションを探索し、提供されたツールを使用してフロッピーディスクイメージの管理を練習しました。この実験では、mtools を使い始めるための基本的な手順をカバーし、Linux システム上で MS-DOS 形式のストレージデバイスを操作する際の実用的なアプリケーションを示しました。

Linux コマンドチートシート