Linuxコマンド辞典 mountコマンド(デバイス)
Linuxは、CD、DVD、ブルーレイ、外付けハードディスク、USBメモリ、HDDを追加した場合、マウントという作業が必要になる。Windowsであれば自動認識であったり、ディスク管理のボリューム作成の作業にあたる
Linuxはディレクトリにマウントして使用する。Windowsユーザーすれば、一見わかりづらい仕様であるが、良い面もある。どのディレクトリにもマウントすることができるので、容量が不足しているディレクトリがあれば、その配下にドライブをマウントすることで容量を増やすことができる。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
書式
$ mount [オプション] [デバイス][マウントポイント]
Unixシステムのファイルシステムはツリー(木)構造からなり、/(ルート)を元にすべてのファイル、ディレクトリをその枝のように扱います。mountはHDDなどのファイルシステムをこのディレクトリツリーの任意の場所に接続します。
Linuxは、複数のファイルシステムをサポートしており、ハードウェアデバイス上でフォーマットされている形式に合わせてマウントし、そのデバイスの中のファイルを扱うことができます。また、サポートしているファイルシステムフォーマットを検索するために、「/etc/filesystems」を参照します。「/etc/filessystems」が無い場合は、次に「/proc/filesystems」を参照します。ディストリビューションによって、「/etc/filesystems」は「/proc/filesystems」のシンボリックリンクである場合があります。また、ハードウェアデバイスの他に、procファイルシステムなどのマウントも行うことができます。
オプション
-a –all | /etc/fstabに記述されたファイルシステムのうち、「noauto」オプションがないものすべてマウントする |
-F –fork | -aオプションと併用し、ファイルシステムごとにforkしてマウントする。 マウント処理が並列実行されるため、NFSなど反応が遅いファイルシステムをマウントする場合に有効にである。 |
-r –read-only | ファイルシステムを読み込み専用(-o ro)でマウントする |
-w –rw、–read-write | 書き込み可能(-o rw)でマウントする |
-t ファイルシステム | 指定したファイルシステムのパーティションをマウントする。利用可能なファイルシステムは/proc/filesystemで参照できる ※主なファイルシステムを参照 |
-o マウントオプション | ファイルシステムのマウントオプション ※主なマウントオプションを参照 |
-L ラベル –label ラベル | 指定したラベルのついたパーティションをマウント対象とする |
-U UUID –uuid UUID | 指定したUUIDのついたパーティションをマウント対象とする |
主なファイルシステム
ファイルシステム | 説明 |
---|---|
ext2 | Linux標準ファイルシステム |
ext3 | ジャーナル機能つきext2ファイルシステム |
ext4 | ジャーナル機能つきext2ファイルシステム |
vfat | MS-DOSファイルシステム |
ntfs | WindowsNTファイルシステム |
xfs | XFSファイルシステム |
jfs | JFSファイルシステム |
nfs | NFS(ネットワークファイルシステム) |
smbfs | Sambaファイルシステム |
loop | ループバックファイルシステム |
主なマウントオプション
マウントオプション | 説明 |
---|---|
remount | 既にマウントしているファイルシステムを再マウントする。書き込み権限の変更などで利用する。 |
ro | 読み込み専用として扱う |
rw | 書き込み可能として扱う |
sync | I/Oをすべて同期する |
loop | ループバックデバイスをマウントする |
exec | 実行可能ファイルの実行を許可する |
ディスクマウントの状況を表示
mountコマンドに引数無しで実行すると現在マウント状況を一覧で表示します。
$ mount
実行結果
[root@localhost mnt]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=865856k,nr_inodes=216464,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,size=894996k,nr_inodes=223749)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=894996k,nr_inodes=223749,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=894996k,nr_inodes=223749,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
none on /sys/kernel/tracing type tracefs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/rl-root on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=19298)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,size=178996k,nr_inodes=223749,mode=700,uid=42,gid=42)
tmpfs on /run/user/1002 type tmpfs (rw,nosuid,nodev,relatime,size=178996k,nr_inodes=223749,mode=700,uid=1002,gid=1002)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
[root@localhost mnt]#
外部ストレージをマウント
USB外部ストレージをdmesgでカーネルが出力したログをあさり、外部ストレージのログをあてる。
下記のサンプルはUSB外部ストレージを差し込んだ際のログ
$ dmesg
[ 36.450974] virbr0: port 1(virbr0-nic) entered learning state
[ 36.524953] usb 3-1: new high-speed USB device number 7 using xhci_hcd
[ 36.689637] usb 3-1: New USB device found, idVendor=0411, idProduct=01c5
[ 36.689646] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 36.689652] usb 3-1: Product: HD-PCTU2
[ 36.689656] usb 3-1: Manufacturer: BUFFALO
[ 36.689661] usb 3-1: SerialNumber: 3030304A4138533137383239
[ 36.690859] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 36.691209] scsi host10: usb-storage 3-1:1.0
[ 37.693307] scsi 10:0:0:0: Direct-Access BUFFALO HD-PCTU2 0108 PQ: 0 ANSI: 4
[ 37.694250] sd 10:0:0:0: Attached scsi generic sg3 type 0
[ 37.694606] sd 10:0:0:0: <span class="bold-red">[sdc]</span> 1250058927 512-byte logical blocks: (640 GB/596 GiB)
[ 37.695418] sd 10:0:0:0: [sdc] Write Protect is off
[ 37.695426] sd 10:0:0:0: [sdc] Mode Sense: 1c 00 00 00
[ 37.695774] sd 10:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 37.731210] sdc: sdc1
[ 37.731221] sdc: p1 size 1250236416 extends beyond EOD, enabling native capacity
[ 37.733762] sdc: sdc1
[ 37.733769] sdc: p1 size 1250236416 extends beyond EOD, truncated
[ 37.734963] sd 10:0:0:0: [sdc] Attached SCSI disk
fdiskで領域を確保
外部記録媒体(外付けハードディスク、USBメモリ、SDメモリ)は、本作業を行う。
$ fdisk /dev/sdc
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-xxxxxxxxx, default 1): 1
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-xxxxxxxxx, default xxxxxxxxx): xxxxxxxxx
Using default value xxxxxxxxx
コマンド (m でヘルプ): w
OSの非同期書き込みを考慮してもう一度、syncさせておく
$ sync
フォーマット
ext4 でフォーマットする。
$ mkfs.ext4 /dev/sdc1
ファイルシステム種類
解説 | |
---|---|
ext2 | 初期段階のlinuxシステムで使用されていた。 「second extended filesystem」の略だ限界ファイルサイズ2TiB、最大容量(ボリュームサイズ)16TiB、ジャーナルには 非対応となっているので、使うのは避けたほうがいい。 rootのために一部容量を予約しているので限界まで容量をつかいきってもrootでのメンテナンスが可能となっている。 ジャーナルに非対応なため、一度クラッシュすると復旧に時間がかかる。 このファイルシステムは旧式なので「ext4」の使用をおすすめする。 |
ext3 | 「third extended file system」の略だ、ext2との高い互換性があり、 ext2をext3に変換することも可能だ。大きな変更点としてはジャーナルが 追加されているところだろう。 |
ext4 | 「fourth extended file system」の略である。ext3の拡張であり、 現在のlinuxファイルシステムのデファクトスタンダードだ。 最大ファイルサイズは16TiBと拡張され、最大ボリューム サイズも1EiBとなっている。 また日付範囲も1901年12月14日から2514年4月25日までと拡張されている、 下位互換もたもたれており、ext3としてマウントすることも可能だ。 |
JFS | このファイルシステムは「Journaled File System」の略であり、IBMが自社の商用UNIXである AIXに採用したファイルシステムだ。 ジャーナルなファイルシステムとしては最古の部類に入る。 このファイルシステムは既存ファイルシステムを拡張、機能追加するのではなく、 ジャーナルを前提として新しく設計されたファイルシステムだ。 最大ファイルサイズは4PiB、最大容量(ボリュームサイズ)は32PiBとなっている、 高負荷時にも一定のパフォーマンスを維持できる。 信頼性は高いが、ディストリビューションのデフォルト設定ではext4が選択されていることが多い。 |
XFS | XFSはSilicon Graphics Incで設計されたファイルシステムでRHEL7では デフォルトのファイルシステムとなっている。 こちらも最古のジャーナリングファイルシステムの一つだ。 マウントした状態でのデフラグなどの操作が可能となっている。最大ファイル サイズ8EiB、 最大ボリューム サイズ8EiBである。 XFSは当初からハイエンドシステム向に開発されたためスケーラビリティの面において ext4を圧倒している。 RHELがデフォルトでXFSを採用したのはそういった理由もあるだろう。 |
Fat | 「File Allocation Table」の略でWindows95やWindowsNTなどで使用されている ファイルシステムのひとつだ。 非常に古典的なファイルシステムなためジャーナルには非対応でスケーラビリティも貧弱である。 またLinuxからの属性情報をひきつげないため、パーミッション情報などが、失われる。 容量の小さなUSBメモリを扱うのが限界だ。 しかし逆に超古典的なために、大概のOSで読み書きが可能となっている。 最大ファイルサイズは4GiB最大容量(ボリュームサイズ)も 4GiBとなる。 |
Fat32 | Fat32はFatの32Bit版である。 これにより、扱えるボリュームサイズが大きくなっている。 そのためFatと比べ外付けのHDDなどをフォーマットして使うパターンが多いだろう。 しかしジャーナルなファイルシステムではないので、こちらも障害耐性が低い。 こちらも古いものなので大抵のOSで読み書きが可能となっている。 |
UUIDでマウント
$ ls -al /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 7月 31 07:01 7ba0cf96-598e-413d-8053-b4c547628424 -> ../../sdc1
lrwxrwxrwx 1 root root 10 7月 31 07:01 9aa422bc-689d-4efc-aae6-ee144c02127e -> ../../sdb1
lrwxrwxrwx 1 root root 10 7月 31 07:01 c3ff64a5-5e26-4438-855e-82183a81b1f9 -> ../../dm-0
lrwxrwxrwx 1 root root 10 7月 31 07:01 de09e6b8-3a26-4465-a971-8957fa6f5528 -> ../../dm-1
マウント用フォルダを作成。
基本的には、外部媒体をマウントするときは/mnt配下にディレクトリを作成してマウントする。
状況次第では、/mnt配下にこだわる必要はなく別のディレクトリでも問題ない。
$ sudo mkdir /mnt/usbdisk1
外付けHDDのマウント
$ mount /dev/sdc1 /mnt/usbdisk1
CD-ROMのマウント
$ mount -t cd9660 -o rdonly /dev/cd0c /cdrom
起動時に自動マウントする
恒常的なマウントを行うためには、以下の2つの作業を行う必要があります。
- /etc/fstabファイルの編集
- mountコマンドの実行、または再起動(init 6)の実行
viで/etc/fstabを編集する。
$ vi /etc/fstab
/dev/hda4 / ext3 defaults 1 1
/dev/hda1 /boot ext3 defaults 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/hda2 /var ext3 defaults 1 3
/dev/hda3 swap swap defaults 0 0
/dev/sdc1 /mnt/usbdisk1 ext4 defaults 1 2
① ② ③ ④ ⑤⑥
項番 | フィールド | 設定内容 |
---|---|---|
① | マウントするデバイスファイル名 | マウントするデバイスファイル名またはボリュームラベルを指定 |
② | マウントポイント | マウントポイントとなるディレクトリの絶対パスを指定 |
③ | ファイルシステムの種類 | ①のファイルシステムの指定。下表1を参照。 |
④ | マウントオプション | ①のマウントオプションの指定。下表2を参照。 |
⑤ | dump | dumpコマンドによるバックアップ対象となるかどうかを指定 0 : バックアップする必要がない 1 : バックアップする必要がある |
⑥ | fsck | システム起動時にfsckコマンドでチェックを行う時の順序を指定 0 : fsckコマンドでファイルシステムをチェックしない 1 : ルートファイルシステム ( / ) に指定する数値 2以上 : その他のファイルシステムに指定する数値 |
④のオプション表
オプション | 説明 |
---|---|
async | ファイルシステムの入出力を非同期で実行 |
auto | mount -a コマンドの実行時にマウントする |
noauto | mount -a コマンドの実行時にマウントしない |
defaults | デフォルトのオプションを設定 ( async、auto、dev、exec、nouser、rw、suid ) |
exec | バイナリの実行を許可 |
noexec | バイナリの実行を禁止 |
ro | 読み取り専用モードでマウント |
rw | 読み書き可能モードでマウント |
unhide | 隠しファイルも表示 |
suid | SUIDとSGIDの有効化 |
user | 一般ユーザーにマウントを許可する |
users | 一般ユーザーにマウントを許可し、マウントを実行していないユーザにもアンマウントを許可 |
nouser | 一般ユーザーのマウントを許可しない |
パーティションをマウントする
$ mount -v /dev/sda1 /data/
CR-ROMイメージファイルをマウントする
$ mount -v -o loop ディレクトリ/isoイメージ.iso /tmp/iso
CR-ROMをマウントする
最近は、CDやDVDをドライブにセットすると自動的にマウントするようなっているディストリビューションもありますが、コマンド実行する必要があるときもあります。光学ディスクを対象とした場合、mountコマンドの引数にデバイスとしてCD-ROMのデバイス名を指定します。通常は、「/dev/cdrom」となります。読み取り専用の場合は、「-r」オプションを指定します。光学ドライブでは、引数として「iso9660」も指定します。「-r」と「-t iso9660」は省略することもできます。
$ mount -r -t iso9660 /dev/cdrom /mnt/cdrom
Windows(DOS)フォーマットのフロッピーディスクをマウントする
Linuxでは、Windowsでフォーマットされた、いわゆる「DOSフォーマット」フロッピーディスクのファイルシステムをマウントして使用することができます。mountコマンドに「-t」をつけてファイルシステムを「msdos」または「vfat」を指定します。msdosを指定した場合は、8.3形式のファイル名しか使用できませんが、「vfat」を指定した場合は、ロングファイルネームも使用できます。これは、Linuxカーネル2.4以降のとなります。
$ mount -t msdos /dev/fd0 /mnt/fd/