/home
私のnfsマウントホームディレクトリをシンボリックリンクに置き換えたいと思います。
rootログインのみが可能で、/homeは別のファイルシステムではなく、lsofにはロックが表示されず、selinuxは緩いです。私は何を見逃していますか?
SSH経由でrootとして直接ログインしました。
[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"
答え1
mv: '/home' を '/home-old' に移動できません。デバイスまたはリソースが使用中です。
[*]について私が考えることができる唯一の「使用」は、ファイル名が変更されないようにするマウントポイントです。
また何を確認できますか?
わかりませんが、マウントが他のマウント名前空間にまだ存在する場合、これが発生する可能性があります。何らかの理由でルートネームスペースから削除を伝播しないので?それとも私のシステムの結果を見るためにsystemdサービスが付属していますか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
/homeがマウントポイント(現在の名前空間で)としてマークされていなくても名前を変更できないこの問題は、Linuxカーネルバージョン3.18以降で解決する必要があります。
lsns
インストールしておくと便利です。より多くの可能なコマンド:
マウントネームスペースを一覧表示します。
# readlink /proc/*/task/*/ns/mnt | sort -u
ルートマウントの名前空間を識別します。
# readlink /proc/1/ns/mnt
特定のマウントネームスペースを持つプロセスを探す
# readlink /proc/*/task/*/ns/mnt | grep 4026531840
特定のプロセスの名前空間を確認してください。
# cat /proc/1/task/1/mountinfo
[*] oldpathまたはnewpathが一部のプロセスで使用されているディレクトリであるため(現在の作業ディレクトリ、ルートディレクトリ、または読み取り用に開いているため)、EBUSYの名前変更に失敗しました。またはシステムで使用されています(マウントポイントなど)。、システムはこれをエラーと見なします。 (この場合はEBUSYを返す必要はありません。とにかく名前を変更するのは問題ありませんでしたが、システムがそのような場合を処理できない場合は許可されます。)
答え2
ネットワーク管理者です。
実行はsystemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd
役に立ちませんが、プロセステーブルを非常に小さくします。
その後systemctl stop NetworkManager
/homeの名前を変更できました。
答え3
シングルユーザーから始めて、ホームディレクトリを変更できます。
- システムを再起動し、グラブ選択中に押して行を編集しました。
e
- オンラインで&オプションを
linux16
削除し、その場所に置きます。rhgb
quite
init=/bin/bash
ctrl+x
始めるにはボタンを押してください。これにより、bashコンソールにメッセージが表示されます。/
次のコマンドを実行して、読み取り/書き込みオプションを再マウントします。mount -o remount,rw /
- その後、
/home
ディレクトリの編集や名前の変更などの操作を実行できます。 - 完了したら、次のコマンドを使用してselinuxにタグを付け直します。
touch /.autorelabel
- 最終実行が
exec /sbin/init
正常に開始されます。
@sourcejedi:答えありがとうございます。