Quero substituir /home
por um link simbólico para meus diretórios domésticos montados em NFS.
Somente o root está logado, / home não é um sistema de arquivos separado, lsof não mostra bloqueios, o selinux é permissivo. o que estou perdendo?
Estou logado diretamente como root via 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
O que mais posso verificar?
Mais informações do 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
fonte
fonte
umount -f -l /home
top
oups
. Eles tentam ver o que estão fazendo agora usandostrace
. Essa situação é estranha tmm. UPDATE: verifique também alsof
saída comfuser
apenas uma por precaução.Respostas:
O único "uso" [*] em que consigo pensar, que impede a alteração do nome de um arquivo, é um ponto de montagem.
Não tenho certeza, mas talvez isso possa acontecer se a montagem ainda existir em outro espaço para nome da montagem. Porque não está sendo desmontado propagado do namespace raiz, por algum motivo? Ou olhando o resultado no meu sistema, talvez com serviços systemd
ProtectHome
?Observe que esse problema - incapaz de renomear / home, apesar de não aparecer como um ponto de montagem (no espaço para nome atual) - deve ser corrigido no kernel Linux versão 3.18+.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe
como descobrir o espaço para nome de um processo específico?
lsns
pode ser útil se você puder instalá-lo. Mais comandos possíveis:Listar namespaces de montagem:
Identifique o espaço para nome da montagem raiz:
Localizar processos com um determinado namespace de montagem
Inspecione o espaço para nome de um determinado processo:
[*] EBUSY A renomeação falha porque oldpath ou newpath é um diretório que está sendo usado por algum processo (talvez como diretório de trabalho atual ou como diretório raiz ou porque estava aberto para leitura) ou está sendo usado pelo sistema (por exemplo como ponto de montagem) , enquanto o sistema considera isso um erro. (Observe que não há necessidade de retornar EBUSY nesses casos - não há nada errado em renomear mesmo assim - mas é permitido retornar EBUSY se o sistema não conseguir lidar com essas situações.)
fonte
Foi o NetworkManager.
A execução
systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
não ajudou, mas tornou a tabela de processos muito pequena.Depois
systemctl stop NetworkManager
, pude renomear / home.fonte
Você pode inicializar em um único usuário e fazer alterações no diretório inicial.
e
linux16
linha removidarhgb
equite
opções e coloque em seu lugarinit=/bin/bash
.ctrl+x
para começar. Isso solicitará o console do bash./
com as opções de leitura / gravação emitindomount -o remount,rw /
/home
diretório, renomeá-lo etc.touch /.autorelabel
exec /sbin/init
para iniciar a inicialização normalmente.@sourcejedi: obrigado por sua resposta.
fonte