Quiero reemplazar /home
con un enlace simbólico a mis directorios de inicio montados en nfs.
Solo root está conectado, / home no es un sistema de archivos separado, lsof no muestra bloqueos, selinux es permisivo. ¿Qué me estoy perdiendo?
Estoy conectado directamente como root a través de 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
¿Qué más puedo consultar?
Más información del sistema:
[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
fuente
fuente
umount -f -l /home
top
o conps
. Intentan ver qué está haciendo ahora mismo usandostrace
. Esa situación es extraña tmm. ACTUALIZACIÓN: también verifique dos veces lalsof
salida confuser
una por si acaso.Respuestas:
El único "uso" [*] que se me ocurre, que impide que cambie el nombre de un archivo, es un punto de montaje.
No estoy seguro, pero quizás esto podría suceder si el montaje todavía existe en otro espacio de nombres de montaje. ¿Porque no se está desmontando propaga desde el espacio de nombres raíz, por alguna razón? ¿O mirando el resultado en mi sistema, quizás con los servicios systemd
ProtectHome
?Tenga en cuenta que este problema, al no poder cambiar el nombre / home a pesar de que no se muestra como un punto de montaje (en el espacio de nombres actual), debe solucionarse en la versión 3.18+ del kernel de Linux.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe
¿Cómo encontrar el espacio de nombres de un proceso en particular?
lsns
podría ser útil si puede instalarlo. Más comandos posibles:Lista de espacios de nombres de montaje:
Identifique el espacio de nombres de montaje raíz:
Encuentra procesos con un espacio de nombres de montaje dado
Inspeccionar el espacio de nombres de un proceso dado:
[*] EBUSY El cambio de nombre falla porque oldpath o newpath es un directorio que está siendo utilizado por algún proceso (tal vez como directorio de trabajo actual, o como directorio raíz, o porque estaba abierto para lectura) o está siendo utilizado por el sistema (para ejemplo como punto de montaje) , mientras que el sistema lo considera un error. (Tenga en cuenta que no es necesario devolver EBUSY en tales casos; de todos modos, no hay nada de malo en cambiar el nombre, pero está permitido devolver EBUSY si el sistema no puede manejar tales situaciones).
fuente
Fue NetworkManager.
Correr
systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
no ayudó, pero hizo que la tabla de procesos fuera muy pequeña.Después
systemctl stop NetworkManager
, pude cambiar el nombre / home.fuente
Puede arrancar en un solo usuario y realizar cambios en el directorio de inicio.
e
linux16
línea eliminadorhgb
yquite
opciones y poner en su lugarinit=/bin/bash
.ctrl+x
para comenzar. Esto te indicará en la consola bash./
a montar con opciones de lectura / escritura emitiendomount -o remount,rw /
/home
directorio, renombrarlo, etc.touch /.autorelabel
exec /sbin/init
para iniciar el arranque de la forma habitual.@sourcejedi: gracias por tu respuesta.
fuente