GNU/Linux >> Linux の 問題 >  >> Cent OS

Systemd を使用してファイルシステムを自動マウントする方法

以下の例は、再起動時に特定のパスの下にディスクを自動的にマウントする systemd スクリプトを作成する方法を示しています。

1. コマンド「blkid」を使用して、ファイルシステムの UUID を確認します。

# blkid /dev/sdb
/dev/sdb: UUID="5813cd72-ff30-44bc-a7a3-27c68fe3e6c7" UUID_SUB="ccd243dc-1481-403f-aa51-1502a95cdf2f" TYPE="btrfs"

2. ファイルシステムをマウントするには、新しいマウント ユニットを作成する必要があります。マウント ユニットは、それらが制御するマウント ポイント ディレクトリに基づいて名前を付ける必要があります。例:マウント ポイント /var/lib/docker は、ユニット ファイル var-lib-docker.mount で構成する必要があります。ファイル システム パスをユニット名に変換するために使用されるエスケープ ロジックの詳細については、systemd.unit のマンページを参照してください。

# vi /etc/systemd/system/var-lib-docker.mount
[Unit]
Description=Docker mount

[Mount]
What=/dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7
Where=/var/lib/docker
Type=btrfs
Options=defaults

[Install]
WantedBy=multi-user.target

「What」のオプションは、UUID、LABEL、ディスクへのパスです

3. 起動後に systemd ユニットを起動できるようにします。

# systemctl enable var-lib-docker.mount

4. 以下の docker サービス スクリプトは、マウント サービスが呼び出された後にのみサービスが開始されるように変更されています。

# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket var-lib-docker.mount     ### Added mount unit for docker service to wait
Requires=docker.socket
...

5. ノードを再起動し、マウント サービス ユニットのステータスを確認します。

# shutdown -r now
# systemctl status var-lib-docker.mount
● var-lib-docker.mount - Docker mount
Loaded: loaded (/etc/systemd/system/var-lib-docker.mount; enabled; vendor preset: disabled)
Active: active (mounted) since Tue 2016-06-07 02:06:07 IST; 54s ago
Where: /var/lib/docker
What: /dev/sdb
Process: 416 ExecMount=/bin/mount /dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 /var/lib/docker -n -t btrfs -o defaults (code=exited, status=0/SUCCESS)

Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounting Docker mount...
Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounted Docker mount.

6. 「mount」コマンドでマウント ポイントを確認します。

# mount | grep docker
/dev/sdb on /var/lib/docker type btrfs (rw,relatime,seclabel,space_cache)

マウント ユニットを別のサービス操作の一部として追加することはできません。利用可能な systemd ユニット タイプ:

ユニット タイプ ファイル 拡張子 説明
サービス ユニット .service システム サービス。
対象ユニット .target systemd ユニットのグループ。
オートマウント ユニット .automount ファイル システムの自動マウント ポイント。
デバイス ユニット .device カーネルによって認識されるデバイス ファイル。
マウント ユニット .mount ファイル システムのマウント ポイント。
パス単位 .path ファイル システム内のファイルまたはディレクトリ。
スコープユニット .scope 外部で作成されたプロセス。
スライス単位 .slice システム プロセスを管理する、階層的に編成されたユニットのグループ。
スナップショット ユニット .snapshot systemd マネージャーの保存された状態。
ソケットユニット .socket プロセス間通信ソケット。
ユニットの交換 .swap スワップ デバイスまたはスワップ ファイル。
タイマー単位 .timer systemd タイマー。


Cent OS
  1. 起動時にsystemdユニットを管理する方法

  2. 自動マウントのUSBキーを取得するにはどうすればよいですか?

  3. CentOS/RHEL で「autofs」を使用して NFS ファイル システムをマウントする方法

  1. ファイルシステムをマウントする方法、ユーザーIDのマッピング?

  2. systemd/init がない場合に電源をオフにする方法 (例:init=/bin/bash を使用)?

  3. 読み取り専用環境でファイルシステムをマウントするには?

  1. Centos – Livecdを起動せずにルートファイルシステムを縮小する方法は?

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

  3. 外付けハードドライブを自動マウントする方法は?