Я хочу заменить /home
символической ссылкой на мои домашние каталоги, смонтированные на NFS.
Только root авторизован, / home не является отдельной файловой системой, lsof не показывает блокировок, selinux разрешает. Что мне не хватает?
Я вошел в систему как root через ssh:
[root@usil01-sql01 /]# uname -a
Linux usil01-sql01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@usil01-sql01 /]# w
15:30:33 up 1:41, 1 user, load average: 0.00, 0.02, 0.22
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 10.50.11.114 15:13 1.00s 0.19s 0.01s w
[root@usil01-sql01 /]# lsof | grep /home
[root@usil01-sql01 /]# lsof +D /home
[root@usil01-sql01 /]# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 63G 4.1G 56G 7% /
[root@usil01-sql01 /]# mount | grep -w /
/dev/sda2 on / type ext4 (rw,relatime,seclabel,data=ordered)
[root@usil01-sql01 /]# ls -lFd /home
drwxr-xr-x. 3 root root 4096 Mar 7 13:36 /home/
[root@usil01-sql01 /]# getenforce
Permissive
[root@usil01-sql01 /]# mv /home /home-old
mv: cannot move "/home" to "/home-old": Device or resource busy
Что еще я могу проверить?
Больше информации о системе:
[root@usil01-sql01 /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 836.6G 0 disk
|-sda1 8:1 0 768.6G 0 part /storage
|-sda2 8:2 0 64G 0 part /
`-sda3 8:3 0 4G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
[root@usil01-sql01 /]# blkid
/dev/sda2: UUID="5ba6a429-4c65-4023-82b4-3673bfcf6a88" TYPE="ext4"
/dev/sda3: UUID="b5eb680f-8789-43b2-9f7e-c52570b0eb73" TYPE="swap"
/dev/sda1: UUID="cb22d57d-4a5b-4963-a990-890abe0c56dc" TYPE="ext4"
linux
centos
filesystems
TheAmigo
источник
источник
umount -f -l /home
top
илиps
. Они пытаются посмотреть, что он делает сейчас, используяstrace
. Та ситуация странная тммм. ОБНОВЛЕНИЕ: также дважды проверьтеlsof
вывод сfuser
одним на всякий случай.Ответы:
Единственное «использование» [*], о котором я могу подумать, которое удерживает имя файла от изменения, - это точка монтирования.
Я не уверен, но, возможно, это могло произойти, если монтирование все еще существует в другом пространстве имен монтирования. Потому что по каким-то причинам это не распространяется unmounts из корневого пространства имен? Или, глядя на результат в моей системе, может быть, с системными службами
ProtectHome
?Обратите внимание, что эта проблема - невозможно переименовать / home, несмотря на то, что она не отображается в качестве точки монтирования (в текущем пространстве имен) - должна быть исправлена в ядре Linux версии 3.18+.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe
как узнать пространство имен конкретного процесса?
lsns
может быть полезно, если вы можете установить его. Больше возможных команд:Список пространств имен монтирования:
Определите пространство имен корневого монтирования:
Найти процессы с заданным пространством имен монтирования
Проверьте пространство имен данного процесса:
[*] EBUSY Переименование завершается неудачно, потому что oldpath или newpath - это каталог, который используется каким-либо процессом (возможно, в качестве текущего рабочего каталога, или в качестве корневого каталога, или потому что он был открыт для чтения) или используется системой (для например, как точка монтирования) , в то время как система считает это ошибкой. (Обратите внимание, что в таких случаях не требуется возвращать EBUSY - в любом случае нет ничего плохого в том, чтобы переименовывать, - но разрешено возвращать EBUSY, если система не может иначе обработать такие ситуации.)
источник
Это был NetworkManager.
Запуск
systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
не помог, но сделал таблицу процессов очень маленькой.После
systemctl stop NetworkManager
я смог переименовать / домой.источник
Вы можете загружаться от одного пользователя и вносить любые изменения в домашний каталог.
e
linux16
строке удаленыrhgb
&quite
параметры и положить в свои местаinit=/bin/bash
.ctrl+x
для начала. Это подскажет вам на консоли bash./
с опциями чтения / записи, выдавmount -o remount,rw /
/home
каталог, переименовывать его и т. Д.touch /.autorelabel
exec /sbin/init
чтобы начать загрузку как обычно.@sourcejedi: спасибо за ваш ответ.
источник