GNU/Linux >> Znalost Linux >  >> Linux

mv:nelze se přesunout domů do původního:Zařízení nebo zdroj je zaneprázdněn

mv:nelze přesunout „/home“ do „/home-old“:Zařízení nebo zdroj je zaneprázdněn

Jediné „použití“[*], které mě napadá a které brání změně názvu souboru, je bod připojení.

Co ještě mohu zkontrolovat?

Nejsem si jistý, ale možná by se to mohlo stát, pokud připojení stále existuje v jiném jmenném prostoru připojení. Protože z nějakého důvodu nedochází k šíření odpojení z kořenového jmenného prostoru? Nebo když se podívám na výsledek v mém systému, možná systemd services s 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

Všimněte si, že tento problém – nelze přejmenovat /home, přestože se nezobrazuje jako bod připojení (v aktuálním jmenném prostoru) – by měl být opraven v jádře Linuxu verze 3.18+.

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe

jak zjistit jmenný prostor konkrétního procesu?

lsns může být užitečné, pokud jej můžete nainstalovat. Další možné příkazy:

Vypsat jmenné prostory připojení:

# readlink /proc/*/task/*/ns/mnt | sort -u

Identifikujte jmenný prostor pro připojení root:

# readlink /proc/1/ns/mnt

Najděte procesy s daným jmenným prostorem připojení

# readlink /proc/*/task/*/ns/mnt | grep 4026531840

Zkontrolujte jmenný prostor daného procesu:

# cat /proc/1/task/1/mountinfo

[*] EBUSY Přejmenování se nezdaří, protože oldpath nebo newpath je adresář, který je používán nějakým procesem (možná jako aktuální pracovní adresář nebo jako kořenový adresář, nebo protože byl otevřen pro čtení) nebo je používán systémem ( například jako bod připojení) , zatímco systém to považuje za chybu. (Upozorňujeme, že v takových případech není vyžadováno vrácení EBUSY – na přejmenování stejně není nic špatného – ale je povoleno vrátit EBUSY, pokud systém nemůže takové situace jinak zvládnout.)


Byl to NetworkManager.

Spuštěn systemctl stop mysqld httpd postfix ipmievd tuned atd rsyslog smartd crond irqbalance gssproxy polkit chronyd nepomohlo, ale tabulku procesů udělalo velmi malou.

Po systemctl stop NetworkManager , podařilo se mi přejmenovat /home.


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Debian – Přesunutí /var, /home do samostatného oddílu?

  3. mdadm:Nelze otevřít /dev/sda1:Zařízení nebo prostředek je zaneprázdněn

  1. rmdir selhal z důvodu zaneprázdnění zařízení nebo prostředku

  2. cp:nelze vytvořit adresář:Žádný takový soubor nebo adresář

  3. Jak zakázat Gnome vytváření dokumentů/videí/ v HOME?

  1. Proč dávat věci jiné než /home do samostatného oddílu?

  2. Jak zjistit, zda je připojení NFS připojeno jako v3 nebo v4?

  3. Chrootovaná uživatelská oprávnění k zápisu SFTP