Монтирование Карты флэш-памяти - смонтированный к корневому каталогу

Я хотел смонтировать свою карту флэш-памяти и сделал ошибку установки пути монтирования как /home/my_name. Теперь все мои документы, загрузки, изображения, и т.д. недоступны, так как моя карта флэш-памяти заменила мою предыдущую домашнюю папку.

Когда я перехожу к терминалу и типу sudo umount /home/my_name Я получаю сообщение об ошибке:

umount: /home/my_name: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

Есть ли способ зафиксировать это, где я могу восстановить свое старое /home/my_name папка и затем монтирует карту флэш-памяти к надлежащему местоположению?

2
задан 29 December 2016 в 01:09

1 ответ

Монтирование на непустом каталоге скрывает файлы, содержавшие в нем, который часто называют затенением. Это не заставляет сами файлы находиться под угрозой срыва. Существует несколько легких шагов, которые можно сделать, чтобы диагностировать, зафиксировать, или (когда необходимый) работают вокруг этой проблемы.

Удостоверьтесь, что Ваша собственная оболочка не то, что мешает файловой системе размонтироваться.

Для файловой системы, смонтированной в sudo fuser -km /home/my_name, выполнение sudo fuser -km /home/my_name уничтожить все процессы, получающие доступ к файловой системе, поскольку Вы сделали, обычно достаточно, чтобы позволить Вам размонтировать его. Вы сообщили, что то, когда Вы сделали этот свой терминал, было закрыто в результате.

Это произойдет, если Ваш текущий каталог, в оболочке, будет точкой монтирования, Вы пытаетесь размонтироваться или один из ее подкаталогов. (Ваша оболочка уничтожается, и затем терминальная программа, выполняющая ее, видит, что оболочка закрылась и, при большинстве установок, выходов автоматически также, как она делает, когда Вы работаете exit команда.)

Для фиксации этого просто перейдите вне монтирования и попытки размонтировать его снова. Например, Вы могли изменить каталог на / во-первых:

cd /
sudo umount /home/my_name

Найдите и закройте или уничтожьте любые процессы, получают доступ к файлам в монтировании.

Если Вы находитесь когда-нибудь в ситуации, где не хотят уничтожать процессы с fuser, или если Вы не можете сделать так и должны узнать, каковы те процессы, у Вас есть несколько опций для нахождения их, включая некоторые графические утилиты. Я кратко проиллюстрирую одну опцию здесь.

Можно работать lsof на каталоге для наблюдения, какие процессы получают доступ к файлам в нем:

lsof /home/my_name

Это работает хорошо на точки монтирования. Иногда lsof может получить лучшую информацию, если Вы выполняете ее как корень, хотя это часто не необходимо:

sudo lsof /home/my_name

Вывод от lsof обычно выглядит примерно так:

ek@Io:~$ sudo lsof ~/mnt/old
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
flock   15529   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old
flock   15529   ek    3rW  REG    7,0    21114 1311 /home/ek/mnt/old/md5sum.txt
less    15530   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old
less    15530   ek    3r   REG    7,0    21114 1311 /home/ek/mnt/old/md5sum.txt
less    15530   ek    5r   REG    7,0      231 1325 /home/ek/mnt/old/README.diskdefines
bash    27465   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old

Это говорит Вам файлы и процессы, которые используются. В частности, если у Вас есть ситуация, где Ваша оболочка - то, что мешает ей размонтироваться, и Вы не заметили это дело обстоит так, затем lsof однозначно даст понять с выводом как:

ek@Io:~$ lsof ~/mnt/old
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    27465   ek  cwd    DIR    7,0     2048 1472 /home/ek/mnt/old/boot

В вышеупомянутом примере единственная вещь, мешающая файловой системе быть размонтированной, состоит в том, что я перешел в подкаталог точки монтирования с моей оболочкой (bash), и был все еще там.

При необходимости в большей информации о процессе один путь состоит в том, чтобы работать ps с его идентификатором процесса, который данный во втором столбце lsofвывод:

ek@Io:~$ ps 27465
  PID TTY      STAT   TIME COMMAND
27465 pts/3    Ss+    0:04 -bash

Можно также уничтожить процесс его PID (kill 27465, но с тем, что соответствующее число находится в Вашей ситуации). Обычно лучше попробовать это перед хождением дальше к более сильному kill -KILL 27465. ( -9 отметьте работы на месте если -KILL, также.)

Конечно, перед использованием kill команда или подобные средства вообще, обычно лучше попробовать заключительные программы нормальный путь, особенно если могли бы быть важные данные под угрозой. Например, лучше сохранить документ и закрыть текстовой процессор, чем выйти из текстового процессора с kill команда.

Доступ, который связывают затененные файлы через нерекурсивное, монтируется.

Как Paul говорит в действительно ли нем, возможно получить доступ к файлам, “затененным” монтированием? на SuperUser можно получить доступ к файлам, затененным монтированием путем создания связывания, монтируются и перешедший им там:

sudo mkdir /mnt/root
sudo mount --bind / /mnt/root

Те команды адаптированы немного от превосходного ответа Paul до того вопроса. (Я поощряю Вас консультироваться с той страницей для дополнительных деталей.) Вы не должны использовать /mnt/root, но это - столь же хороший выбор как любой.

Если Вы делаете это тот путь, Ваша вся корневая файловая система доступна через /mnt/root.

Если у Вас есть отдельное /home раздел затем, который Вы захотите заставить связывание смонтировать, связывает с тем вместо этого:

sudo mkdir /mnt/home
sudo mount --bind /home /mnt/home

Это совпадает с для /, только с /home.

Перезагрузка.

предложение oldfred для перезагрузки системы является разумным решением этой проблемы. Необходимо смочь закрыть и перезагрузить систему, если Вы хотите. Ваши данные затенены монтированием, но не должны подвергаться риску быть потерянными.

Перезагрузка должна быть безопасной, но Вы не должны должны быть перезагружать для решения этого, если Вы не хотите. Если Вы испытываете затруднения из-за методов, данных выше, и хотите заставить их работать, прокомментируйте или (лучшее) редактирование Ваше сообщение. (Другие люди, читающие это с подобными проблемами, должны рассмотреть регистрацию нового вопроса.)

2
ответ дан 2 December 2019 в 03:43

Другие вопросы по тегам:

Похожие вопросы: