【LPIC・Linux】ファイルシステムのマウントを管理する「/etc/fstab」

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回は、LPIC Level2のアウトプットとして、ファイルシステムのマウントを管理する「/etc/fstab」についてまとめたいと思います。

/etc/fstabとは?

「/etc/fstab」とは、「Linux上で利用するファイルシステムのマウント設定を事前に行うファイル」になります。

このファイルに設定を追加することで、Linuxサーバの再起動や電源Off/On時にファイルシステムのマウントを自動で実施してくれるようになります。

ファイルに設定を追加しない場合は、再起動前にマウントを実施したファイルシステムがマウントされない状態で立ち上がってきます。

実機で確認してみましょう。

Step1:再起動前の状態確認

以下出力ログの通り、「/etc/fstab」には設定されてないですが、マウントされていることが確認できると重追います。

daimaru@raspi-test:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ext4   1.0          773fc3ed-d157-49df-XXX6-XXXXXXXXXX  869.2G     0% /mnt/hdd1
daimaru@raspi-test:~ $ sudo cat /etc/fstab
proc            /proc           proc    defaults          0       0
PARTUUID=752c3c01-01  /boot/firmware  vfat    defaults          0       2
PARTUUID=752c3c01-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

daimaru@raspi-test:~ $ sudo ls /mnt/hdd1
lost+found  test

daimaru@raspi-test:~ $ sudo df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1      960302096      32 911447640   1% /mnt/hdd1

Step2:再起動の実施

以下コマンドでLinuxサーバの再起動を実施します。

daimaru@raspi-test:~ $ sudo reboot

Broadcast message from root@raspi-test on pts/1 (XXX YYYY-MM-DD HH:MM:SS JST):

The system will reboot now!

Step3:再起動後の状態確認

再起動後の状態を確認すると、マウント先が「/media/daimaru/_hdd1」と変更されており、再起動前は「/mnt/hdd1」配下にtestディレクトリがありましたが、出力されないことがわかります。

daimaru@raspi-test:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ext4   1.0   /hdd1  773fc3ed-d157-49df-XXXXXXXXXXXX  869.2G     0% /media/daimaru/_hdd1
daimaru@raspi-test:~ $ sudo ls /mnt/hdd1
daimaru@raspi-test:~ $ sudo df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1      960302096      32 911447640   1% /media/daimaru/_hdd1

「/etc/fstab」を実際に設定してみよう!

「/etc/fstab」の概要を理解した後は、実際の設定方法等、詳細を見ていきましょう。

「/etc/fstab」の書式

まずは、「/etc/fstab」の設定ファイルの書式についてです。

###/etc/fstabの書式###
[マウント元デバイス] [マウント先デバイス] [ファイルシステムの種別] [オプション] [dumpフラグ] [fsckフラグ]

各入力値の説明を表にまとめてみました。

項目詳細
マウント元デバイス・LABEL=<label名>:ラベル指定
・UUID=<uuid>:UUID指定
・デバイス名(/dev/sda1等)
マウント先デバイス・マウント先指定(/mnt/hdd1等)
ファイルシステム種別ext2/ext3/ext4等
オプション次の章で記載(多数あり)
dumpフラグdumpコマンドの実施可否(0:dump off/1: dump on)
fsckフラグfsckコマンドの実施可否

実際のファイルの中身は以下の通りです。

daimaru@raspi-test:~ $ sudo cat /etc/fstab
proc            /proc           proc    defaults          0       0
PARTUUID=752c3c01-01  /boot/firmware  vfat    defaults          0       2

オプション一覧

「/etc/fstab」で設定するオプションは以下の表の通り数多くあることがわかります。

項目詳細
rw/roファイルシステムの書き込み可否
・rw:書き込み可能
・ro:読み込みのみ
exec/noexecバイナリの実行可否
auto/noauto自動マウントの可否
sync/async・sync:I/Oの同期
・async:全I/Oの同期
nouser一般ユーザのマウント不可
user一般ユーザのマウント(マウントを行ったユーザのみ)
users全ユーザのマウント
group指定したグループのマウント

fstabの設定を実際にやってみよう

fstabファイルの書式やオプションがわかった後は、実際に実機で確認してみよう。

今回の設定は、以下の内容で実施してみようと思います。

  • マウント元デバイス:LABEL指定
  • マウント先デバイス:/mnt/hdd1
  • ファイルシステム種別:ext4
  • オプション:ro,exec,auto,async,user(root権限で作成したディレクトリでどうなるか確認)
  • dumpフラグ:1
  • fsckフラグ:1

Step1:fstabファイルの設定

実際にfstabファイルに設定していきましょう。

まずは「デバイス元ファイル」の設定ですが、LABELによる指定を行うため、LABELの設定を行います。

LABELの指定には「e2labelコマンド」を利用します。

今回は「/hdd1」というラベル名にしています。

daimaru@raspi-test:~ $ sudo e2label /dev/sda1
daiamru@raspi-test:~ $ sudo e2label /dev/sda1 /hdd1
daimaru@raspi-test:~ $ sudo e2label /dev/sda1
/hdd1

次に、fstabの設定ファイルを編集していきます。

daimaru@raspi-test:~ $ sudo cat /etc/fstab
daimaru@raspi-test:~ $ sudo vim /etc/fstab
daimaru@raspi-test:~ $ sudo cat /etc/fstab
LABEL=/hdd1 /mnt/hdd1 ext4 ro,exec,auto,async,user 1 1

Step2:再起動と起動時のログ確認

Step1で設定を終えたため、再起動を実施してみます。

daimaru@raspi-test:~ $ sudo reboot

Broadcast message from root@raspi-test on pts/1 (XXX YYYY-MM-DD HH:MM:SS JST):

The system will reboot now!

起動後の「dmseg」の出力ログを見ていきます。

daimaru@raspi-test:~ $ dmesg
[    8.418842] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    8.419693] sd 0:0:0:0: [sda] Write Protect is off
[    8.419726] sd 0:0:0:0: [sda] Mode Sense: 73 00 10 08
[    8.421083] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    8.518414]  sda: sda1
[    8.519614] sd 0:0:0:0: [sda] Attached SCSI disk
[   11.960338] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   15.979983] EXT4-fs (sda1): mounted filesystem 773fc3ed-d157-49df-XXXXXXXXXX ro with ordered data mode. Quota mode: none.

上記のログより、ext4のファイルシステムとしてマウントされていることがわかります。

Step3:起動後の状態確認

実際にマウントされているのかをしっかり確認していきましょう。

daimaru@raspi-test:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ext4   1.0   /hdd1  773fc3ed-d157-49df-aff6-XXXXXXXXX 869.2G     0% /mnt/hdd1
daiamru@raspi-test:~ $ sudo ls /mnt/hdd1
lost+found  test
daimaru@raspi-test:~ $ sudo df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       916G   32K  870G   1% /mnt/hdd1

上記結果より、「/dev/sda1」が「/mnt/hdd1」にマウントされていることがわかります。

Step4:一般ユーザによる書き込みができるのか?

マウント後の確認として、「書き込みが不可であること」と「一般ユーザによる読み込みが可能かどうか」を確認していきます。

daimaru@raspi-test:~ $ sudo vim /mnt/hdd1/test/test.txt
"/mnt/hdd1/test/test.txt" [New]                                                                                                                                                           hello world
~
~
~
"/mnt/hdd1/test/test.txt"
"/mnt/hdd1/test/test.txt" E212: Cannot open file for writing
Press ENTER or type command to continue

上記の結果より、書き込みが不可であることがわかります。

次に、一般ユーザによる参照が可能か?を確認します。

daimaru@raspi-test:~ $ sudo ls -l /mnt/hdd1
total 20
drwx------ 2 root root 16384 Nov 27 09:01 lost+found
drwxr-xr-x 2 root root  4096 Dec  7 10:30 test
daimaru@raspi-test:~ $ ls /mnt/hdd1
lost+found  test

上記結果より、参照可能であることがわかりました。

最後に

今回は、LPIC Level2の勉強として、ファイルシステムのマウント管理を行う「/etc/fstab」について、まとめてみました。

次回もLPIC Level2に関する記事を作成していこうと思います。

  • URLをコピーしました!

この記事を書いた人

目次