私の設定では、いくつかの/etc
ファイルが別々のパーティションにある必要があります。これを行うためにソフトリンクを作成しました。
ls -li /etc/group
956 lrwxrwxrwx 1 root root 21 May 7 15:48 /etc/group -> /var/common/etc/group
ls -li /var/common/etc/group
3145744 -rw-r--r-- 1 root root 668 May 11 11:02 /var/common/etc/group
私の問題は、次のファイルを使用してコマンドを実行しようとしたときです。
groupadd foo
groupadd: failure while writing changes to /etc/group
strace
レポート:
rename("/etc/group+", "/var/common/etc/group") = -1 EXDEV (Invalid cross-device link)
write(2, "groupadd: failure while writing "..., 54groupadd: failure while writing changes to /etc/group
) = 54
groupadd
私がどのように出勤できるかについてのアイデアはありますか?
ベストアンサー1
/etc
したがって、複数のパーティションにファイルを分割するのは悪い考えです。
何が起こっているのかは、ユーティリティが一時groupadd
ファイルを生成してから、簡単な操作/etc/groups
で実際のファイル(またはむしろシンボリックリンクが指すファイル)を一時ファイルに置き換えることですrename
。
問題は、rename()
同じファイルシステムでのみ機能することです。それ以外の場合はエラーが発生します。
ここで発生する可能性のあるもう1つの問題は、タスクを実行するとrename
シンボリックリンクが失われ、現在は通常のファイルになることです。
/etc
別の潜在的な問題は、システムが追加のボリュームをマウントする前に正しく起動するために必要なファイルがたくさんあることです。したがって、これらのファイルは実際に失われます。
簡単に言えば、いいえ、この問題は修正できません。とにかく、そうしてはいけません。