Linux でのディスクのマウントは重要な操作であり、ストレージ領域の拡張、データ ファイルの管理、重要なファイルのバックアップと保存などに使用できます。この記事では、Linux システムでディスクをマウントするための概念、手順、実際の操作ガイドラインを詳しく紹介します。
1. ディスクパーティション
Linux では、ディスクはパーティションを介して使用されます。パーティションはハードディスクをいくつかの論理的な部分に分割するために使用され、各パーティションに異なるファイル システムを保存できます。したがって、ディスクをマウントする前に、まずディスクのパーティションを作成する必要があります。ディスクのパーティショニング プロセスは、コマンド ライン ツールまたは GUI ツールを通じて実行できます。
一般的に使用されるディスク パーティショニング ツールは次のとおりです。
-
cfdisk: プライマリ パーティションと拡張パーティションの作成に適したコマンド ライン ツールで、MBR および GPT パーティション テーブルをサポートします。
-
fdisk: プライマリ パーティションと拡張パーティションの作成に適したコマンド ライン ツールで、MBR パーティション テーブルをサポートします。
-
gdisk: プライマリ パーティション、拡張パーティション、論理パーティションの作成に適したコマンド ライン ツールで、GPT パーティション テーブルをサポートします。
-
gparted: プライマリ パーティション、拡張パーティション、論理パーティションの作成に適したグラフィカル インターフェイス ツール。MBR および GPT パーティション テーブルをサポートします。
パーティショニングの目的は、ハードディスクを複数の論理部分に分割し、各部分を独立して使用および管理できるようにすることです。もちろん、パーティション分割は必要なく、ハードディスク全体を単一のパーティションとして直接マウントすることもできます。
2. ファイルシステム
Linux では、ファイル システムはディスクをマウントするための重要な概念です。ファイル システムとは、ディスク上でファイルを保存および管理するのに役立つデータを編成する方法を指します。一般的な Linux ファイル システムには、ext2、ext3、ext4、XFS などが含まれます。
ディスクをマウントする前に、ディスク上にファイル システムを作成する必要があります。ファイルシステムを作成するコマンドはmkfsです。
たとえば、ext4 ファイルシステムを作成するには、次のコマンドを実行するだけです。
mkfs.ext4 /dev/sdb1
このうち、「/dev/sdb1」はファイルシステムが作成されるパーティションを示します。
3. ディスクをマウントします
Linux では、ディスクをマウントするコマンドは mount です。ディスクをマウントする前に、ファイル システムが作成されていることを確認し、マウントするデバイスとマウント ポイントを把握する必要があります。
デバイスとは、マウントされる物理ディスクまたはパーティションを指し、その識別子は通常 /dev で始まり、その後にパーティション情報 (/dev/sda1 など) が続きます。
マウントポイントとはデバイスをマウントするディレクトリのことを指し、このディレクトリをマウントポイントと呼びます。マウント ポイントは通常、空のディレクトリであり、マウント ポイントとして使用するにはファイル システム内に存在する必要があります。
たとえば、ext4 ファイル システムを /mnt/data ディレクトリにマウントしたい場合は、次のコマンドを実行するだけです。
mount /dev/sdb1 /mnt/data
ここで、「/dev/sdb1」はマウントするデバイス、「/mnt/data」はマウントポイントです。
4. 起動時に自動的にマウントする
Linux では、各起動後にディスクを指定したディレクトリに自動的にマウントしたい場合は、マウント情報を /etc/fstab ファイルに書き込む必要があります。
/etc/fstab は、Linux システムでファイル システムのマウント情報を保存するために使用されるファイルです。これには、システムの起動時にマウントする必要があるすべてのファイル システムと、マウント時に使用されるオプションに関する情報が含まれています。
/etc/fstab ファイルに、マウントするファイル システムを記述する新しい行を追加する必要があります。各行には次の情報が含まれます。
-
Device: マウントするデバイスの名前 (/dev/sdb1 など)。
-
マウント ポイント: デバイスをマウントするディレクトリ。
-
ファイル システム タイプ: マウントされるファイル システムのタイプ (ext4 など)。
-
マウント オプション: noatime (アクセス時間を更新しない) やdefaults (デフォルトのオプションを使用する) など、マウント動作を制御するオプション。
-
マウント順序: システムがファイル システムをマウントする順序。たとえば、0 は最初にマウントすることを意味します。
たとえば、デバイス /dev/sdb1 を /mnt/data ディレクトリにマウントし、ext4 ファイル システム タイプを使用し、マウント時にデフォルト オプションと noatime オプションを使用するとします。/etc/fstab ファイルに次の行を追加する必要があります。
/dev/sdb1 /mnt/data ext4 defaults,noatime 0 0
このようにして、各起動後に、システムは /dev/sdb1 を /mnt/data ディレクトリに自動的にマウントし、指定したマウント オプションを適用します。
5. ディスクをアンマウントします
Linux では、ディスクをアンマウントするコマンドは umount です。ディスクをアンマウントする前に、ディスク上にそのディスクを使用しているプロセスがあるかどうかを確認する必要があります。その場合、ディスクを安全にアンマウントするには、対応するプロセスを終了する必要があります。
たとえば、/mnt/data ディレクトリの下のファイル システムをアンマウントするには、次のコマンドを実行するだけです。
umount /mnt/data
6. 実際の操作
1. lsblk コマンドを使用して、新しく追加されたディスク情報を表示します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 21.5G 0 part /
sdb 8:16 0 100G 0 disk
上記の結果から、新しいディスク デバイス /dev/sdb がシステムに追加されたことがわかります。
2. fdisk または cfdisk を使用して新しいディスクにパーティションを作成し、そのパーティションを Linux ファイル システム タイプとしてマークします (83)
たとえば、fdisk コマンドを使用すると、次のようになります。
$ sudo fdisk /dev/sdb
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +sectors or +size{
K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 83
Changed type of partition 'Linux' to 'Linux'.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3. mkfs コマンドを使用して、新しいパーティションをフォーマットします。
$ sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: 882b7297-1258-4e23-9d03-cf20654455b9
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
4. マウント ディレクトリを作成し、mkdir コマンドを使用します。
$ sudo mkdir /mnt/data
5. パーティションをマウントするには、mount コマンドを使用します。
$ sudo mount /dev/sdb1 /mnt/data
6. マウントが成功したことを確認し、df -h コマンドを使用してすべてのファイル システムのストレージ使用量を表示します。
$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 793M 1.7M 792M 1% /run
/dev/sda3 22G 1.5G 19G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 511M 4.0K 511M 1% /boot/efi
tmpfs 793M 0 793M 0% /run/user/1000
/dev/sdb1 99G 72M 94G 1% /mnt/data
上記の結果から、新しいパーティションが /mnt/data ディレクトリに正常にマウントされたことがわかります。
7. 自動マウントを追加し、/etc/fstab ファイルを編集して、次の内容を追加します。
$ sudo su
$ echo '/dev/sdb1 /mnt/data ext4 defaults 0 2' >> /etc/fstab
7. まとめ
ディスクのマウントは Linux システムの基本操作であり、ストレージ領域の拡張、データ ファイルの管理、重要なファイルのバックアップと保存などに役立ちます。ディスクをマウントする前に、ディスクをパーティション分割し、そのパーティション上にファイル システムを作成する必要があります。次に、mount コマンドを使用してデバイスを指定されたディレクトリにマウントし、必要に応じて /etc/fstab ファイルを使用して起動時の自動マウントを構成する必要があります。最後に、ディスクをアンマウントする前に、ディスクを使用しているプロセスがあるかどうかを確認し、対応するプロセスを終了する必要があります。