Archlinuxの起動時にaufsファイルシステムをマウントする方法は?

Archlinuxの起動時にaufsファイルシステムをマウントする方法は?

aufsを使って複数のディスクを結合したいです。コマンドラインから mount コマンドを使用して aufs ファイルシステムをマウントできます。

ただし、fstabエントリを介して同じファイルをインストールしようとすると失敗します。 Googleは、fstabが指定された順序でファイルシステムをマウントしないため、問題が発生したと述べました。また、 aufs が fstab の後にマウントされるように、rc.local にマウントコマンドを追加するよう提案しています。

私はsystemdを使用するArchlinuxを使用していますが、systemdで起動時にmountコマンドをどのように実行できますか?

答え1

私のような人のためにステップバイステップの指示を投稿する必要があると思いました。私がここに来るのを手伝ってくれたDavid Bagmanに感謝します。

/etc/systemd/system/mnt-aufs.mount私は次の内容にしました。

[Unit]
Description = AUFS disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

[Mount]
What = none
Where = /mnt/aufs
Type = aufs
Options = br:/mnt/data01/=rw:/mnt/data02/=rw:/mnt/data03/=rw,sum,create=mfs

[Install]
WantedBy = multi-user.target

次にsystemdを実行してsystemctl daemon-reloadデバイスをロードします。systemctl start mnt-aufs.mountディスクのマウントまたはsystemctl enable mnt-aufs.mount起動時に起動するには、実行してください。

これは、次のものを/etc/rc.localinitスクリプトにコピーして貼り付けるのと同じで、はるかに簡単です。なぜsystemdに同等のファイルがないのか疑問に思います。

mount -t aufs -o br:/mnt/disk01=rw:/mnt/disk02=rw: /mnt/disk03=rw,sum,create=mfs none /mnt/aufs

答え2

Systemdはmount()をデフォルトでサポートしていますman systemd.mount。実際、systemdはそれを読み取り、/etc/fstabそれを使用してインストールユニットを作成し、ファイルシステム自体をマウントします。

fstab依存関係の代わりにインストールユニットを手動で作成することも可能です。 、など/dev/sysシステムインストールが処理される方法です()。この方法では、システムの依存関係を使用して、エントリが正しい順序でインストールされていることを確認できます。/proc/usr/lib/systemd/system/*.mount

systemdマウント単位ファイルの名前は、そのファイルが制御するマウントポイントの名前に基づいて指定する必要があります(man systemd.unit)。たとえば、USBバックアップドライブを/mnt/backup/etc/systemd/system/mnt-backup.mount

[Unit]
Description = USB backup disk

[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4

[Install]
WantedBy = multi-user.target

次にsystemdを実行してsystemctl daemon-reloadデバイスをロードします。実行してsystemctl start mnt-backup.mountディスクをマウントしたりsystemctl enable mnt-backup.mount起動したりできます。

依存関係の場合は、該当するRequires = some-other-mnt-point.mountセクション[Unit]の下に追加してください。またはBindTo代わりに使用できますRequires。これにより、依存関係の1つが消えたときに削除されます。ただし、Requiresディスクのインストール順序には影響しません。したがって、aufsの前にディスクがマウントされていることを確認するにはAfter

Requires編集:sumの使用を拡張するには、After単位部分が次のようになります。

[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

答え3

最新バージョンの systemd は fstab で x-systemd.requires オプションをサポートしているため、systemd.mount デバイスを使用せずに fstab を引き続き使用するには、次のようにします。

aufs /mnt/storage aufs ro,nobootwait,dirs=/mnt/storage2=ro:/mnt/storage1=ro:/mnt/storage3=ro:/mnt/storage4=ro:/mnt/storage0=ro:/mnt/storage5=ro:/mnt/storage6=ro:/mnt/storage7=ro:/mnt/storage8,xino=/dev/shm/aufs.xino,x-systemd.requires=mnt-storage0,x-systemd.requires=mnt-storage1,x-systemd.requires=mnt-storage2,x-systemd.requires=mnt-storage3,x-systemd.requires=mnt-storage4,x-systemd.requires=mnt-storage5,x-systemd.requires=mnt-storage6,x-systemd.requires=mnt-storage7,x-systemd.requires=mnt-storage8  0 0

答え4

/etc/rc.localを使用することをお勧めします

次の例を試してください。

# cat > /etc/rc.local << EOF
mount -t squashfs -o loop /usr/src/system_packages.squashfs /var/mount_point/
mount -t aufs -o remount,append:/var/mount_point/ none / 
EOF

関連情報