GNU/Linux >> Linux の 問題 >  >> Linux

Linux でファイルシステム / パーティションをマウントおよびアンマウントする方法 (Mount/Umount コマンドの例)

システムに新しいハードディスクを挿入したら、通常は fdisk や parted などのユーティリティを使用してパーティションを作成します。パーティションを作成したら、mkfs コマンドを使用して ext2、ext3、または ext4 パーティションを作成します。

パーティションを作成したら、mount コマンドを使用してパーティションをマウント ポイント (ディレクトリ) にマウントし、ファイル システムの使用を開始する必要があります。

このチュートリアルでは、mount コマンドと umount コマンドの両方について知っておく必要があるすべてのことを、15 の実用的な例で説明します。

デバイスをマウントするための一般的な mount コマンド構文:

mount -t type device destination_dir

1. CD-ROM をマウント

CD のデバイス ファイルは、/dev ディレクトリの下に存在します。たとえば、CD-ROM デバイスは次のようにマウントされます。

# mount -t iso9660 -o ro /dev/cdrom /mnt

上記の例では、オプション「-o ro」は、cdrom を読み取り専用アクセスでマウントする必要があることを示しています。また、マウント コマンドを実行する前に、宛先ディレクトリ (上記の例では /mnt) が存在することを確認してください。

2.すべてのマウントを見る

パーティションまたはファイルシステムのマウントを実行した後、引数を指定せずにマウント コマンドを実行して、すべてのマウントを表示します。

以下の例では、USB ドライブをシステムにマウントした後、mount の出力は次のようになります。以下に示すように、USB デバイス (つまり、/dev/sdb) は /media/myusb にマウントされており、これはマウント コマンドの最後の行として表示されます。

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /mydata type ext2 (rw)
/dev/sda7 on /backup type vfat (rw)
gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)
/dev/sdb on /media/myusb type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)

df コマンドを使用して、すべてのマウント ポイントを表示することもできます。

# df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      195069136 128345036  56958520  70% /
udev             2008336         4   2008332   1% /dev
tmpfs             806244       928    805316   1% /run
none                5120         0      5120   0% /run/lock
none             2015604       228   2015376   1% /run/shm
/dev/sda6       17729076    176200  16657596   2% /mydata
/dev/sda7       11707200    573312  11133888   5% /backup
/dev/sdb         3910656   2807160   1103496  72% /media/myusb

3. /etc/fstab に記載されているすべてのファイルシステムをマウントします

/etc/fstab にリストされているファイルシステムは、起動プロセス中にマウントされます。起動後、システム管理者はさまざまな理由で一部のパーティションをアンマウントする場合があります。 /etc/fstab で指定されているようにすべてのファイルシステムをマウントしたい場合は、以下に示すように、mount で -a オプションを使用します。

/etc/fstab ファイルのエントリの例:

# cat /etc/fstab
#
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda5 during installation
/dev/sda5 /               ext4    errors=remount-ro 0       1
# /mydata was on /dev/sda6 during installation
/dev/sda6 /mydata         ext2    defaults        0       2
# /backup was on /dev/sda7 during installation
/dev/sda7 /backup         vfat    defaults        0       3

-a オプションを指定してマウント コマンドを実行し、すべての /etc/fstab エントリをマウントします。

# mount -a

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /mydata type ext2 (rw)
/dev/sda7 on /backup type vfat (rw)
gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)

同じ -a オプションを umount で使用して、/etc/mtab に記載されているすべてのファイルシステムをアンマウントできます

# umount -a
umount: /run/shm: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /run: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /dev: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

一部のファイルシステムは、使用中または現在使用中のため、マウント解除されません。ファイル /etc/mtab と /proc/mounts の内容は似ていることに注意してください。

4. /etc/fstab から特定のファイルシステムのみをマウント

マウントにディレクトリ名のみを渡すと、マウント ポイント エントリが検索され、見つからない場合は、/etc/fstab でデバイスを連続して検索し、マウントされます。

# mount | grep /mydata

# cat /etc/fstab | grep mydata
##########/mydata was on /dev/sda6 during installation##########
 /dev/sda6 /mydata         ext2    defaults        0       2

上記のように、/mydata ディレクトリはマウントポイントではありませんが、/etc/fstab に存在します。

# mount /mydata

# mount | grep /mydata
/dev/sda6 on /mydata type ext2 (rw)

同じことをもう一度実行すると、次のようなエラー メッセージが表示されます:

# mount /mydata
mount: /dev/sda6 already mounted or /mydata busy
mount: according to mtab, /dev/sda6 is already mounted on /mydata

ここでは、ディレクトリ名の代わりにデバイス名を渡すこともできます (/etc/fstab ファイルから取得されます)。

# mount /dev/sda6

ファイル /etc/mtab と /proc/mounts の内容は似ていることに注意してください。

5.特定のタイプのマウントされたすべてのパーティションを表示

以下に示すように、オプション -l と -t を使用して、マウントされた特定のタイプのファイルシステムのみをリストすることができます:

# mount -l -t ext2
/dev/sda6 on /mydata type ext2 (rw)

# mount -l -t ext4
/dev/sda5 on / type ext4 (rw,errors=remount-ro)

上記のように、/dev/sda6 は唯一の ext2 パーティションであり、/dev/sda5 は唯一の ext4 パーティションです。

6.フロッピー ディスクをマウントする

フロッピー ディスクのデバイス ファイルは、/dev ディレクトリの下に存在します。たとえば、フロッピー ディスクは次のようにマウントされます。

# mount /dev/fd0 /mnt
# cd /mnt

マウントが成功すると、フロッピー ディスクの内容にアクセスできるようになります。作業が完了したら、システムからフロッピー ディスクを物理的に取り外す前に、umount を使用してください。

# umount /mnt

7.マウント ポイントを新しいディレクトリにバインド

マウントポイントは、新しいディレクトリにバインドできます。同時に複数のマウントポイントを介してファイルシステムのコンテンツにアクセスできるようにします。

次のように -B オプションを olddir と newdir に使用してバインドします。

# mount -B /mydata /mnt

これでバインドが完了し、次のように確認できます。

# mount | grep /mydata
/dev/sda6 on /mydata type ext2 (rw)
/mydata on /mnt type none (rw,bind)

上記のように、バインドは適切に行われます。したがって、ある場所でファイルシステムを変更すると、以下に示すように、他のマウント ポイントでその変更が反映されていることがわかります:

# cd /mydata
# ls
test
# mkdir dir1
# mkdir dir2
# ls
test    dir1    dir2
# cd /mnt
# ls
test    dir1    dir2

8.新しいマウント ポイントからコンテンツにアクセス

Mount を使用すると、新しいマウント ポイントからマウント ポイントの内容にアクセスできます。マウントされたツリーを別の場所に移動するだけです。

以下の例では、以下に示すように、オプション -M を使用して /mnt からマウント ポイント /mydata にアクセスします。

# mount -M /mydata /mnt/

完了すると、古いマウント ポイントは新しいマウント ポイントに移動されるため、使用できなくなります。これは、以下に示すように確認できます。

# mount | grep /mydata
# mount | grep /mnt
/dev/sda6 on /mnt type ext2 (rw)

9. /etc/mtab にエントリを書き込まずにマウント

/etc/ の読み取り専用マウント中は、mount コマンドで /etc/mtab ファイルのエントリを変更できません。ただし、次のようにオプション -n を使用すると、/etc/mtab に書き込まずにマウントできます。

# mount -n /dev/sda6 /mydata

この /mydata のエントリは、mount コマンドの出力にも、次のように /etc/mtab ファイルにも表示されません:

# mount | grep /mydata
# cat /etc/mtab | grep /mydata

マウントされたディレクトリ /mydata の内容にアクセス:

# cd /mydata
# ls
dir1  dir2  test

10.読み取りまたは読み取り/書き込みアクセスでファイルシステムをマウント

パーティションを読み取り専用としてマウントするには、-o ro と同義の -r オプションを使用します。

# mount /dev/sda6 /mydata -r
# mount  | grep /mydata
/dev/sda6 on /mydata type ext4 (ro)

ext3 および ext4 ファイルシステムでは、ファイルシステムがダーティな場合でも書き込み操作を実行できます。そのため、この種の書き込み操作を防ぐために、「ro,noload」を使用する必要がある場合があります。

# mount /dev/sda6 /mydata -t ext4 -o ro -o noload
# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (ro,noload)

読み取り/書き込みアクセスでパーティションをマウントするには、「-o rw」と同じ -w オプションを使用します (つまり、デフォルト)。

11.マウントされたファイルシステムを再マウント

既にマウントされているファイルシステムをマウントするには、remount オプションを使用します。これは通常、以前に読み取りアクセスでマウントされていたファイルシステムを読み取り/書き込みアクセスで再マウントするために使用されます。

/mydata マウント ポイントは、以下に示すように、読み取りアクセスから読み取り/書き込みアクセスで再マウントされます:

# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (ro,noload)
# mount -o remount,rw /mydata
# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (rw)

12. iso イメージをディレクトリにマウント

iso イメージは以下のようにマウントできます:

# mount -t iso9660 -o loop pdf_collections.iso /mnt
# cd /mnt
# ls
perl/    php/    mysql/

13.複数のマウント ポイントをアンマウント

次のように、umount を使用すると、コマンドの umount を 1 回実行するだけで複数のマウント ポイントをアンマウントできます。

# umount /mydata  /backup
# mount | grep /mydata
# mount | grep /backup

14.ファイルシステムの遅延アンマウント

これは、ディスク操作が完了した後にパーティションをアンマウントする場合に備えて、umount の特別なオプションです。そのパーティションに対してコマンド umount -l を発行すると、ディスク操作が完了した後にアンマウントが行われます。

たとえば、タスク (つまり、スクリプトまたはその他のコマンド) がディスク上でコピー操作を実行していて、同時に -l を使用してアンマウントを発行できるシナリオを考えてみましょう。コピーが終了しました (つまり、ディスク操作)。

# umount /mydata -l

15.ファイルシステムを強制的にアンマウント

umount は、以下に示すように、デバイスがビジー状態のときにオプション -f を使用してファイルシステムを強制的にアンマウントするオプションを提供します:

# umount -f /mnt

これがうまくいかない場合は、レイジー アンマウントを使用できます。

一方、以下に示すように、どのプロセスが現在マウントポイントを使用しているかを示す ps コマンドの出力を確認することもできます。

# ps ajx | grep /mydata
 2540  3037  3037  2468 pts/2     3037 D+       0   0:00 cp -r /home/geekstuff/ProjectData/ /mydata

また、fuser コマンドを実行して、操作用のディレクトリを保持しているプロセスを見つけることもできます。

# fuser -cu /mydata
/mydata:              3087(root)

ユーザー名(プロセスの所有者以外は何もありません)でプロセスIDを提供します。そのプロセスが何であるかがわかっている場合は、そのプロセスを停止してから、umount を再試行してください。


Linux
  1. Imgファイルのタイプを見つけてマウントする方法は?

  2. ファイルを作成してファイルシステムとしてマウントする方法は?

  3. ファイルシステムをチェックして修復する10のLinux Fsckコマンドの例

  1. Linuxでドライブをマウントおよびアンマウントする方法

  2. パーティションが「noexec」としてマウントされているかどうかを確認するにはどうすればよいですか?

  3. Linux での mount コマンドの例

  1. Linux でファイルシステムを作成してマウントする方法

  2. Linux でファイルシステムをマウントおよびアンマウントする方法

  3. FUSE ファイルシステム タイプを mount(8) と fstab に登録する方法は?