ファイルシステムのマウントとアンマウント: mount
, umount
1. マウントとは?
Linuxでの操作に関するまたワクワクするレクチャーへようこそ!今日は、ファイルシステムのマウントとアンマウントについて話します。このプロセスはUSBドライブ、追加ハードディスク、そしてネットワークストレージなどを扱う扉を開きます。自動マウントの設定方法を学び、システム起動時からデータを準備できるようにします。それと大事なのは、実際に手を動かしてやっていきます!
マウントとは、デバイスのファイルシステム(ハードディスク、USBドライブ、ISOイメージなど)をLinuxのファイルシステムツリーに接続するプロセスです。Windowsでは、デバイスが「D:\」や「E:\」のように表示されますが、Linuxではすべてのデバイスがツリーストラクチャ内の特定フォルダ、いわゆるマウントポイントに「埋め込まれる」形になります。
アナロジー: 電車と駅
電車(デバイス)と鉄道駅(マウントポイント)を想像してください。乗客が駅に降りてインフラストラクチャ(ファイル)を使うには、電車がプラットフォームに到着してドッキングする必要があります。同じようにLinuxではデバイスをマウントポイントに接続します。
2. コマンドmount
まず、マウントを実行するコマンドmount
から始めよう。このコマンドは、特に外付けディスクやネットワークストレージを使っている場合に、定期的に使用することになるよ。
基本シンタックス
mount [オプション] <デバイス> <マウントポイント>
<デバイス>
— システム内でデバイスが接続されている場所。例えば、/dev/sdb1
とか。lsblk
コマンドを使えば確認できるよ。<マウントポイント>
— デバイスのデータを渡すフォルダのこと。たとえば、/mnt/disk
とかね。
USBドライブを接続する例:
sudo mount /dev/sdb1 /mnt/usb
このコマンドを実行した後、デバイス/dev/sdb1
上のファイルはフォルダ/mnt/usb
内でアクセス可能になるよ。
コマンドmount
の便利なオプション
ファイルシステムの指定:
Linuxがデバイスのファイルシステムを認識しない場合、
-t
フラグを使えばいい。例えば:sudo mount -t ext4 /dev/sdb1 /mnt/usb
これは、珍しいファイルシステムを使う場合に便利だよ。
読み取り専用でのマウント:
デバイスのデータを変更から保護したい場合は、
-o ro
オプションを使う:sudo mount -o ro /dev/sdb1 /mnt/usb
文字コードの指定を伴うマウント:
FAT32やNTFSディスクの場合、文字コードを指定する必要があることがある:
sudo mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
3. コマンド umount
デバイスを接続した後、次に気になるのは「どうやって切断するか?」ですね。これは、Linuxがディスクとの全ての接続を「閉じ」、書き込みを完了するために重要です。
基本構文
umount <デバイスまたはマウントポイント>
接続済みのUSBドライブの例:
sudo umount /mnt/usb
または、デバイス自体を指定することもできます:
sudo umount /dev/sdb1
umount
が動作しない場合は?
時々、umount
コマンドはエラーを表示することがあります: "Device is busy" (デバイスが使用中)。これは、誰か(ファイルシステムの視点では)「線路に座っている」ことを意味します。おそらくあなたや他のプログラムがそのデバイス上のファイルを開いているのです。
こんな時は、デバイスをロックしているプロセスを表示するfuser
コマンドが役立ちます:
fuser -v /mnt/usb
犯人を見つけたら、プロセスを終了させます:
kill <プロセスID>
その後にもう一度umount
コマンドを実行してください。
WindowsでUSBを取り外す前に「安全に取り外す」ボタンをクリックしたのを覚えていますか?これは、アンマウントコマンドを実行しているだけです。
4. /etc/fstab
を使った自動マウント
手動のマウントは便利だけど、システムを起動するたびにデバイスを接続しないといけない場合はどうする?そのためにあるのが/etc/fstab
ファイルだ。
/etc/fstab
って何?
これは、Linuxが自動的に接続するデバイスのリストを含む設定ファイルだよ。fstab
を使うと、ファイルシステムの種類、マウントポイント、アクセス権限などのパラメータを指定できる。
デバイスを/etc/fstab
に追加する方法
blkid
コマンドを使ってデバイスのUUIDを見つけよう:sudo blkid
例えば、デバイス
/dev/sdb1
はUUID1234-5678
を持つかもしれない。/etc/fstab
ファイルを編集用に開こう:sudo nano /etc/fstab
新しい行を追加しよう:
UUID=1234-5678 /mnt/usb ext4 defaults 0 2
UUID
— デバイスのユニークな識別子。/mnt/usb
— マウントポイント。ext4
— デバイスのファイルシステム。defaults
— 標準のマウントパラメータ。0
と2
— 起動時にデバイスをチェックするパラメータ(調整可能)。
設定を確認してデバイスをマウントしよう:
sudo mount -a
これで、システムの再起動時にデバイスが自動的に接続されるようになるよ。
リスク
⚠️ /etc/fstab
の設定が間違っているとシステムが起動しなくなる可能性がある。いつも次のコマンドで設定を確認しよう:
sudo mount -a
エラーがなければ、すべてが正しく動作しているよ。
5. 例: USBドライブのマウントとアンマウント
例えば、USBドライブを接続したとします。システムがそれを/dev/sdb1
として認識しました。
マウントポイントを作成する:
sudo mkdir -p /mnt/usb
ドライブを接続する:
sudo mount /dev/sdb1 /mnt/usb
内容を確認する:
ls /mnt/usb
作業が終わったら、デバイスを取り外す:
sudo umount /mnt/usb
これでデバイスが安全に取り外され、USBドライブを抜くことができます。
6. 実践課題
課題
- USBドライブまたは仮想ディスクを接続してみよう。
- マウントポイントを作成
/mnt/test-disk
。 - デバイスをこのフォルダにマウントして、内容を確認してみよう。
/etc/fstab
を使ってUUID
でのマウントを設定しよう。- デバイスを取り外して、再起動後に設定が正常に動作しているか確かめてみよう。
ヒント
- デバイスがない場合は、以前の講義で学んだフォーマットコマンド(
mkfs.ext4
)を使って作成してみよう。 - 再起動前に
fstab
の設定を確認するのを忘れないように。
これで、Linux環境でデバイスをマウントおよびアンマウントする方法、自動接続を/etc/fstab
で設定する方法、そして問題を安全に診断する方法がわかったね。マウントはデータの快適な利用への重要なステップであり、家庭プロジェクトでも職場サーバーでも役立つ知識だよ。
GO TO FULL VERSION