Ich möchte durch /home
einen Symlink zu meinen nfs-gemounteten Home-Verzeichnissen ersetzen.
Nur root ist angemeldet, / home ist kein separates Dateisystem, lsof zeigt keine Sperren an, selinux ist zulässig. Was vermisse ich?
Ich bin direkt als root über ssh angemeldet:
[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
Was kann ich noch überprüfen?
Weitere Systeminformationen:
[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
quelle
quelle
umount -f -l /home
top
oder bekannt zu seinps
. Sie versuchen zu beobachten, was es gerade tutstrace
. Diese Situation ist seltsam, tmm. UPDATE: Überprüfen Sie auch dielsof
Ausgabe mitfuser
einer für alle Fälle.Antworten:
Die einzige "Verwendung" [*], die mir einfällt und die den Namen einer Datei vor dem Ändern bewahrt, ist ein Einhängepunkt.
Ich bin nicht sicher, aber vielleicht könnte dies passieren, wenn der Mount noch in einem anderen Mount-Namespace vorhanden ist. Weil aus irgendeinem Grund keine Unmounts aus dem Root-Namespace weitergegeben werden? Oder schauen Sie sich das Ergebnis auf meinem System an, vielleicht mit systemd-Diensten mit
ProtectHome
?Beachten Sie, dass dieses Problem - das nicht umbenannt werden kann / obwohl es nicht als Einhängepunkt angezeigt wird (im aktuellen Namespace) - in der Linux-Kernel-Version 3.18+ behoben werden sollte.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe
Wie finde ich den Namespace eines bestimmten Prozesses heraus?
lsns
kann nützlich sein, wenn Sie es installieren können. Weitere mögliche Befehle:Liste der Mount-Namespaces:
Identifizieren Sie den Root-Mount-Namespace:
Suchen Sie Prozesse mit einem bestimmten Mount-Namespace
Überprüfen Sie den Namespace eines bestimmten Prozesses:
[*] EBUSY Das Umbenennen schlägt fehl, weil oldpath oder newpath ein Verzeichnis ist, das von einem Prozess verwendet wird (möglicherweise als aktuelles Arbeitsverzeichnis oder als Stammverzeichnis oder weil es zum Lesen geöffnet war) oder vom System verwendet wird (z Beispiel als Einhängepunkt) , während das System dies als Fehler betrachtet. (Beachten Sie, dass es in solchen Fällen nicht erforderlich ist, EBUSY zurückzugeben - es ist sowieso nichts Falsches daran, die Umbenennung vorzunehmen -, aber es ist zulässig, EBUSY zurückzugeben, wenn das System solche Situationen nicht anders behandeln kann.)
quelle
Es war NetworkManager.
Laufen
systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
hat nicht geholfen, aber die Prozesstabelle sehr klein gemacht.Danach
systemctl stop NetworkManager
konnte ich / home umbenennen.quelle
Sie können auf einem einzelnen Benutzer booten und Änderungen am Ausgangsverzeichnis vornehmen.
e
linux16
Zeile entferntrhgb
&quite
Optionen und in ihre platziert setzeninit=/bin/bash
.ctrl+x
, um zu starten. Dies wird Sie auf der Bash-Konsole auffordern./
mit Lese- / Schreiboptionen durch Ausgabe erneutmount -o remount,rw /
/home
Verzeichnis bearbeiten, umbenennen usw.touch /.autorelabel
exec /sbin/init
als normal starten Boot.@sourcejedi: Danke für deine Antwort.
quelle