====== mount ======
===== 概要 =====
* ファイルシステムを利用するためのコマンド
===== 利用方法 =====
* ''mount'' コマンドを利用することでファイルシステムを一時的に利用可能にする。
* システム起動時から使いたい場合は、''mount'' コマンドのオプションなどを ''/etc/fstab'' ファイルに記述する。
* ファイルシステムファイルのデバイスファイル (''/dev/'' ディレクトリに入っているファイル) と、マウント先のディレクトリを指定する。マウント後は、マウント先のディレクトリにアクセスして利用する。
* どのデバイスファイルがマウントしたいファイルシステム化を確認するには ''fdisk'' や ''blkid'' コマンドを使う。
* ''fdisk'' (ディスクのサイズやパーティション数で判断する場合)\\
$ sudo fdisk -l
* ''blkid'' (ディスクラベルやフォーマットで判断する場合)\\
$ sudo blkid
==== ext4 ====
* Linux の標準のファイルシステム\\
$ sudo mount -t ext4 DEVICE_FILE MOUNT_POINT
* ''DEVICE_FILE'': デバイスファイル
* ''MOUNT_POINT'': マウント先
* マウントオプションは ''-o'' の後に、記述する。複数のマウントオプションの場合は、スペースをあけず、'','' でつなげる。
* ''/etc/fstab''\\
DEVICE_FILE MOUNT_POINT ext4 defaults 0 2
* ''DEVICE_FILE'': デバイスファイルあるいは UUID (UUID の場合は ''UUID=XXXXXXX'' のように指定する)
* ''MOUNT_POINT'': マウント先
* ''defaults'': マウントオプションの標準 (複数のオプションを含んでいる)
* ''async'': ファイルシステムに対するすべての入出力を非同期で行う
* ''auto'': ''-a'' オプションで ''mount'' コマンドを実行した時にマウントする
* ''dev'': ファイルシステム上のデバイスファイルを利用できる
* ''exec'': バイナリの実行を許可する
* ''nouser'': 一般ユーザーのマウントを禁止する
* ''rw'': 読み書き許可でマウント
* ''suid'': SUID/SGIDビットを有効にする
* 参考サイト: [[https://open-groove.net/lpic/linux-fstab-mount-option/ | /etc/fstabのマウントオプション | OpenGroove]]
* ''0'': dump フラグ (0 はしない)
* ''2'': ''fsck'' フラグ (ファイルシステムチェック)
* ''0'': しない
* ''1'': root ファイルシステムを含むパーティションで実行
* ''2'': root ファイルシステムでないパーティションで実行
* 参考サイト: [[https://www.atmarkit.co.jp/flinux/rensai/linuxtips/756fstabnum.html | @IT:/etc/fstabに記述されている数字の意味]]
==== RAM disk ====
* メモリをディスクのように扱うためのファイルシステム。
* 高速な書き込みを要する場合に便利。
* ただし、メモリなのでデータが揮発する (シャットダウンで消える) ため、一時ファイル置き場やキャッシュなどに利用すると良い。
* メモリは使用した分だけ消費される (マウント時に確保されるわけではない)
* ''/etc/fstab''\\
tmpfs MOUNT_POINT tmpfs noatime,size=512m 0 0
* ''MOUNT_POINT'': マウント先
* ''noatime,size=512m'': マウントオプション (今回は以下の 2 つを指定)
* ''noatime'': アクセス時刻を更新しない (書き込み高速化のため)。
* ''size=512m'': メモリ 512 MB をディスクとして割り当てる。
==== ntfs-3g ====
* Windows の標準ファイルシステム (NTFS) をマウントするためのファイルシステム\\
$ sudo mount -t ntfs-3g DEVICE_FILE MOUNT_POINT
* ''DEVICE_FILE'': デバイスファイル
* ''MOUNT_POINT'': マウント先
* ''/etc/fstab''\\
DEVICE_FILE MOUNT_POINT ntfs-3g
nosuid,nodev,nofail,uid=1000,gid=1000,fmask=0133,dmask=0022 0 0
* ''DEVICE_FILE'': デバイスファイルあるいは UUID (UUID の場合は ''UUID=XXXXXXX'' のように指定する)
* ''MOUNT_POINT'': マウント先
* ''nosuid,nodev,nofail,...'': マウントオプション (今回は以下を指定)
* ''nosuid'': SUID/SGIDビットを有効にしない
* ''nodev'': ファイルシステム上のデバイスファイルを利用しない
* ''nofail'': マウントを失敗しても、システムを起動させる (これがない場合、システムがずっと起動しない)
* ''uid=1000'': UID 1000 のユーザでマウント (UID は ''id'' コマンドで確認可)
* ''gid=1000'': GID 1000 のグループでマウント (GID は ''id'' コマンドで確認可)
* ''fmask=0133'': マウント時にファイルのパーミッションを 644 にする (ntfs-3g ではパーミッションの変更ができないため)。
* ''dmask=0022'': マウント時のファイルのパーミッションを 755 にする (ntfs-3g ではパーミッションの変更ができないため)。
* ''fmask'', ''dmask'' はマスクであるため、フルアクセスパーミッション 0777 から各桁を差し引いた値を指定する必要がある。
* ntfs-3g は標準では Ubuntu にインストールされていないので、''apt'' などでインストールする必要がある。
* ntfs が標準でインストールされているが、読み込み専用のファイルシステムなので、ntfs-3g と間違えないようにしたい。
==== cifs ====
* Samba (Windows) で共有されたネットワークドライブをマウントするためのファイルシステム
* ''/etc/fstab''\\
//ADDRESS/SHARE_DIR MOUNT_POINT cifs vers=1.0,credentials=PASSWORD_FILE,nofail,async,nodev,rw,nosuid,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0
* ''ADDRESS'': 共有元のサーバの IP アドレス
* ''SHARE_DIR'': 共有元のサーバの共有ディレクトリ名
* ''MOUNT_POINT'': マウント先
* ''vers=1.0,cred...'': マウントオプション (以下のオプションを適用)
* ''vers=1.0'': Samba のバージョン (SMB1 や SMB2 と呼ばれているバージョン)
* ランサムウェア WannaCry 対策として、Ver. 2.0 以降が望ましいが、今回の NAS では SMB1 が使われているため、これを指定した。
* ''credentials=PASSWORD_FILE'': アクセスするためのユーザ名、パスワードを ''PASSWORD_FILE'' から読み込む (''PASSWORD_FILE'' のパーミッションや管理には十分注意)。
* ''PASSWORD_FILE'' の書式:\\
username=USER
password=PASS
* ''USER'': ユーザ名
* ''PASS'': パスワード
* ''nofail'': マウントを失敗しても、システムを起動させる (これがない場合、システムがずっと起動しない)
* ''async'': ファイルシステムに対するすべての入出力を非同期で行う
* ''nodev'': ファイルシステム上のデバイスファイルを利用しない
* ''rw'': 読み書き許可でマウント
* ''nosuid'': SUID/SGIDビットを有効にしない
* ''uid=1000'': UID 1000 のユーザでマウント (UID は ''id'' コマンドで確認可)
* ''gid=1000'': GID 1000 のグループでマウント (GID は ''id'' コマンドで確認可)
* ''file_mode=0644'': マウント時にファイルのパーミッションを 644 にする (cifs ではパーミッションの変更ができないため)。
* ''dir_mode=0755'': マウント時のファイルのパーミッションを 755 にする (cifs ではパーミッションの変更ができないため)。
* 参考サイト: [[https://access.redhat.com/ja/solutions/1447443 | CIFS を使用して Red Hat Enterprise Linux システムに Windows 共有をマウントする]]
{{tag>Linux サーバ}}