Примусово відключити каталог, встановлений на NFS [закрито]


163

У мене на моніторі Linux, яка зависла, у мене встановлений каталог NFS. Я намагався вимкнути її, але, здається, це не працює:

$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy

Якщо я набираю " mount", виявляється, що каталог більше не змонтований, але він зависає, якщо я роблю " ls /mnt/data", і якщо я спробую видалити точку кріплення, я отримую:

$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy

Чи можу я зробити щось, крім перезавантаження машини?


3
Я згоден, хто б не проголосував, щоб закрити це, серйозно розгубився. Ця проблема мучила мене роками, і відповідь нижче, umount -l, для Linux - це перше рішення, яке я знайшов, що працювало.
Лізардкс

1
добре, але ви можете знайти його на Super User. хоча я не бачу, чому питання не було перенесено замість закритого.
deeenes

Для демонтувати --forceбуде намагатися размонтирования і -vчи -vvvнавіть покаже більш ніж проблема з монтування. Тож спробуйте:umount -vvv --force /badmount
gaoithe

5
@deeenes Оскільки це запитання було задано у вересні 2008 року, а Super User був запущений до липня 2009 року ;-)
Martin Tournoij

@Carpetsmoker, але він був відзначений як поза темою у 2013 році
hintss

Відповіді:


254

Ви можете спробувати лінивий відключення:

umount -l

3
Це реалізується не скрізь. Наприклад, у мене немає на FreeBSD.
Даніель Папасян

28
@Daniel: Звичайно, але це питання Linux (позначений як такий навіть), і Linux має його.
Юрген А. Ерхард

5
Я спробував цю команду на Ubuntu, і вона не працювала.
Kieran Andrews

1
Це працювало для мене (Slackware 14.0). У мене було кріплення CIFS, а не NFS, яке повисло все (в тому числі lsof). Я викликав проблему, вирвавшись із резервного сценарію, який я пишу. Сценарій монтує та від’єднує каталог, але щось стосується виходу з ладу rsyncмоєї версії. Я не знав про ледачий вимикач. Можливо, пристрій NAS викликав усі проблеми. Після успішного відключення виявилося, що мені довелося перезавантажити пристрій, перш ніж я зможу його знову встановити.
Падді

10
@KieranAndrews та будь-хто інший на Ubuntu, спробуйте fusermount -uz /path/to/file. Працював для мене чарівність! :)
Метт Флетчер

78

Якщо сервер NFS зник і ви не можете його повернути в Інтернет, я використовую один трюк - додати псевдонім до інтерфейсу з IP-адресою сервера NFS (у цьому прикладі 192.0.2.55).

Linux

Команда для цього є приблизно приблизно такою:

ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255

Де 192.0.2.55 - IP-адреса сервера NFS, яка відійшла. Тоді ви повинні мати можливість пінг-адреси, і ви також можете мати змогу відключити файлову систему (використовуйте unmount -f). Тоді вам слід знищити інший інтерфейс, щоб більше не направляти трафік на старий сервер NFS до себе:

ifconfig eth0:fakenfs down

FreeBSD та подібні операційні системи

Команда буде щось на зразок:

ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255

А потім видалити його:

ifconfig em0 delete 192.0.2.55

man ifconfig (8) для більше!


5
Поєднання ifconfig eth0:fakenfs ...' and umount -f -l / my / mount / dir 'вирішило проблему для мене.
пт

1
Мені теж незрозуміла проблема заважає призупинити свій ноутбук, тому це рішення дуже корисне. Я створив власний сценарій для автоматизації.
albfan

Тож для видалення псевдоніму з Linux це було б ifconfig eth0:fakenfs delete? Або я шукаю щось інше? Як ifconfig eth0 delete 192.0.2.55?
Ehtesh Choudhury

2
@Shurane У Linux, вилучення псевдоніму з цим ifconfig eth0:fakenfs downповинно зробити трюк.
Свен

1
дякую, блискуча робота навколо! у моєму випадку сервер nfs знову повернувся до Інтернету і все ще не міг його
замінити

20

Спробуйте запустити

lsof | grep /mnt/data

Тут слід перелічити будь-який процес, що має доступ до / mnt / даних, який би перешкоджав його відключенню.


1
Безумовно, корисно, хоча й не повністю мене врятувало. Але корисна.
Джеймс Т Снелл

2
Коли lsof вішає назавжди, спробуйте "lsof -b" (є помилка lsof, пов'язана з NFS, див., Наприклад, bugzilla.redhat.com/show_bug.cgi?id=962755 ).
dr0i

11

У мене була така ж проблема, і ні umount /path -f, і ні , і umount.nfs /path -fне fuser -km /pathпрацює

нарешті я знайшов просте рішення>. <

sudo /etc/init.d/nfs-common restart, тоді давайте робити просте umount;-)


5
Працював для мене зumount -f -l ...
mivk

На сервері ubuntu 14.04 мені довелося sudo service nfs-kernel-server restart, але ваша відповідь, безумовно, перевела мене в правильний шлях, дякую!
Мурмель

4

Ваш сервер NFS зник.

В ідеалі найкраща ставка, якщо сервер NFS повернеться.

Якщо ні, то "umount -f" повинен був зробити трюк. Це НЕ ЗАВЖДИ, але часто буде.

Якщо ви знаєте, які процеси використовують файлову систему NFS, ви можете спробувати вбити ці процеси, і тоді, можливо, вимкнення спрацює.

Нарешті, я думаю, вам потрібно перезавантажити.

Крім того, DON'T м'яко монтуйте свої NFS накопичувачі. Ви використовуєте жорсткі кріплення, щоб гарантувати, що вони спрацювали. Це необхідно, якщо ви робите писати.


Здається, м'яке та жорстке кріплення є предметом використання. Так, м'яке кріплення призведе до того, що файли, записані в даний час, будуть порушені, якщо сервер NFS з якихось причин виходить з ладу, і, таким чином, може бути не підходящим системно-критичним каталогам, але для накопичувача з некритичними файлами, такими як музика та фільми, він буде працювати просто добре.
zrajm

4

Тут не вдалося знайти діючої відповіді; але на linux ви можете запустити "umount.nfs4 / volume -f", і він, безумовно, відключає його.


4
Чи не umount.nfs4 є підкомандою для umount? Іншими словами, umount -f /some/mountpointце те саме, що umount.nfs4 /some/mountpoint -f.
Віль

1
Цікаво. По моїй стороні (після того, як NFS-сервер зник): umountдзвінки umount.nfs, навішується вічно (незалежно від варіанту). umount.nfs4 /mnt -fзаймає досить довго, але завершує. umount.nfs4 /mnt -lзавершує негайно (можливо, тому, що не чекає процесів).
Тіно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.