mv:tidak dapat memindahkan "/home" ke "/home-old":Perangkat atau sumber daya sibuk
Satu-satunya "penggunaan"[*] yang dapat saya pikirkan, yang menahan nama file agar tidak berubah, adalah titik pemasangan.
Apa lagi yang bisa saya periksa?
Saya tidak yakin, tapi mungkin ini bisa terjadi jika mount masih ada di namespace mount lain. Karena unmount tidak disebarkan dari root namespace, untuk beberapa alasan? Atau melihat hasil di sistem saya, mungkin layanan sistem dengan ProtectHome
?
$ grep -h home /proc/*/task/*/mountinfo | sort -u
121 89 0:22 /systemd/inaccessible/dir /home ro,nosuid,nodev shared:142 master:24 - tmpfs tmpfs rw,seclabel,mode=755
275 243 253:2 / /home ro,relatime shared:218 master:33 - ext4 /dev/mapper/alan_dell_2016-home rw,seclabel,data=ordered
321 288 253:2 / /home rw,relatime shared:262 master:33 - ext4 /dev/mapper/alan_dell_2016-home rw,seclabel,data=ordered
84 64 253:2 / /home rw,relatime shared:33 - ext4 /dev/mapper/alan_dell_2016-home rw,seclabel,data=ordered
85 46 253:2 / /home rw,relatime master:33 - ext4 /dev/mapper/alan_dell_2016-home rw,seclabel,data=ordered
Perhatikan masalah ini - tidak dapat mengganti nama /home meskipun tidak ditampilkan sebagai titik pemasangan (di ruang nama saat ini) - harus diperbaiki di kernel Linux versi 3.18+.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe
bagaimana cara mengetahui namespace dari proses tertentu?
lsns
mungkin berguna jika Anda dapat menginstalnya. Kemungkinan perintah lainnya:
Mencantumkan ruang nama pemasangan:
# readlink /proc/*/task/*/ns/mnt | sort -u
Identifikasi root mount namespace:
# readlink /proc/1/ns/mnt
Temukan proses dengan namespace mount yang diberikan
# readlink /proc/*/task/*/ns/mnt | grep 4026531840
Periksa namespace dari proses yang diberikan:
# cat /proc/1/task/1/mountinfo
[*] EBUSY Penggantian nama gagal karena jalur lama atau jalur baru adalah direktori yang sedang digunakan oleh beberapa proses (mungkin sebagai direktori kerja saat ini, atau sebagai direktori root, atau karena terbuka untuk dibaca) atau sedang digunakan oleh sistem ( misalnya sebagai titik pemasangan) , sementara sistem menganggap ini sebagai kesalahan. (Perhatikan bahwa tidak ada persyaratan untuk mengembalikan EBUSY dalam kasus seperti itu—tidak ada salahnya melakukan penggantian nama—namun diperbolehkan untuk mengembalikan EBUSY jika sistem tidak dapat menangani situasi seperti itu.)
Itu adalah NetworkManager.
Menjalankan systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
tidak membantu, tetapi membuat tabel proses menjadi sangat kecil.
Setelah systemctl stop NetworkManager
, saya dapat mengganti nama /home.