CodeGym /コース /Docker SELF /ファイルシステムのマウントとアンマウント: mount, umount

ファイルシステムのマウントとアンマウント: mount, umount

Docker SELF
レベル 6 , レッスン 3
使用可能

ファイルシステムのマウントとアンマウント: 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の便利なオプション

  1. ファイルシステムの指定:

    Linuxがデバイスのファイルシステムを認識しない場合、-tフラグを使えばいい。例えば:

    sudo mount -t ext4 /dev/sdb1 /mnt/usb
    

    これは、珍しいファイルシステムを使う場合に便利だよ。

  2. 読み取り専用でのマウント:

    デバイスのデータを変更から保護したい場合は、-o roオプションを使う:

    sudo mount -o ro /dev/sdb1 /mnt/usb
    
  3. 文字コードの指定を伴うマウント:

    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に追加する方法

  1. blkidコマンドを使ってデバイスのUUIDを見つけよう:

    sudo blkid
    

    例えば、デバイス/dev/sdb1はUUID1234-5678を持つかもしれない。

  2. /etc/fstabファイルを編集用に開こう:

    sudo nano /etc/fstab
    
  3. 新しい行を追加しよう:

    UUID=1234-5678 /mnt/usb ext4 defaults 0 2
    
    • UUID — デバイスのユニークな識別子。
    • /mnt/usb — マウントポイント。
    • ext4 — デバイスのファイルシステム。
    • defaults — 標準のマウントパラメータ。
    • 02 — 起動時にデバイスをチェックするパラメータ(調整可能)。
  4. 設定を確認してデバイスをマウントしよう:

    sudo mount -a
    

これで、システムの再起動時にデバイスが自動的に接続されるようになるよ。

リスク

⚠️ /etc/fstabの設定が間違っているとシステムが起動しなくなる可能性がある。いつも次のコマンドで設定を確認しよう:

sudo mount -a

エラーがなければ、すべてが正しく動作しているよ。


5. 例: USBドライブのマウントとアンマウント

例えば、USBドライブを接続したとします。システムがそれを/dev/sdb1として認識しました。

  1. マウントポイントを作成する:

    sudo mkdir -p /mnt/usb
    
  2. ドライブを接続する:

    sudo mount /dev/sdb1 /mnt/usb
    
  3. 内容を確認する:

    ls /mnt/usb
    
  4. 作業が終わったら、デバイスを取り外す:

    sudo umount /mnt/usb
    

これでデバイスが安全に取り外され、USBドライブを抜くことができます。


6. 実践課題

課題

  1. USBドライブまたは仮想ディスクを接続してみよう。
  2. マウントポイントを作成/mnt/test-disk
  3. デバイスをこのフォルダにマウントして、内容を確認してみよう。
  4. /etc/fstabを使ってUUIDでのマウントを設定しよう。
  5. デバイスを取り外して、再起動後に設定が正常に動作しているか確かめてみよう。

ヒント

  • デバイスがない場合は、以前の講義で学んだフォーマットコマンド(mkfs.ext4)を使って作成してみよう。
  • 再起動前にfstabの設定を確認するのを忘れないように。

これで、Linux環境でデバイスをマウントおよびアンマウントする方法、自動接続を/etc/fstabで設定する方法、そして問題を安全に診断する方法がわかったね。マウントはデータの快適な利用への重要なステップであり、家庭プロジェクトでも職場サーバーでも役立つ知識だよ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION