mount

  • ファイルシステムを利用するためのコマンド
  • mount コマンドを利用することでファイルシステムを一時的に利用可能にする。
  • システム起動時から使いたい場合は、mount コマンドのオプションなどを /etc/fstab ファイルに記述する。
  • ファイルシステムファイルのデバイスファイル (/dev/ ディレクトリに入っているファイル) と、マウント先のディレクトリを指定する。マウント後は、マウント先のディレクトリにアクセスして利用する。
    • どのデバイスファイルがマウントしたいファイルシステム化を確認するには fdiskblkid コマンドを使う。
      • 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ビットを有効にする
    • 0: dump フラグ (0 はしない)
    • 2: fsck フラグ (ファイルシステムチェック)

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 ではパーミッションの変更ができないため)。