Принудительно размонтировать в Ubuntu, чтобы исправить проблемы после спящего режима нетбука
Единственное, что мне на самом деле нужно знать, это как выполнить размонтирование, когда устройство занято. umount -f
не работает Следующее описание является просто предысторией того, почему мне нужно это сделать, если кому-то удастся придумать лучшее решение. Если там невозможно сделать это, я с радостью приму объяснение, почему бы не ответить.
Проблема в том, что всякий раз, когда я переключаю свой нетбук в спящий режим, моя точка монтирования прерывается Маунт все еще существует и работает mount
отображает это как обычно:
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Однако любая попытка чтения / записи на него терпит неудачу с Input/output error
,
Если какие-либо программы открыты, попытка размонтировать устройство завершается неудачно с
umount: /home/ilari/storage: device is busy
Кажется, проблема в том, что устройство /dev/mmcblk0
исчез из системы во время сна. Но здесь происходят странные вещи. Предыдущее устройство еще доступно, только теперь стало /dev/mmcblk1
! И я могу смонтировать его снова в ту же точку, что делает вывод mount
довольно забавно
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
/dev/mmcblk1p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Дело в том, что когда я делаю это, точка монтирования работает так же, как и до сна! Открытые программы могут снова использовать файловую систему, как будто ничего не произошло.
Но система накапливает несколько (вышедших из строя) устройств, что выглядит довольно схематично. Поэтому я хотел бы размонтировать предыдущую точку монтирования, прежде чем перемонтировать "новое" устройство в ту же точку.
Как я могу принудительно размонтировать, когда устройство занято? Желательно автоматически при пробуждении и с автоматическим перемонтированием. Любая помощь приветствуется.
(Конечно, я мог бы закрыть все открытые программы, а затем размонтировать их, но в любом случае это в значительной степени противоречит цели режима сна.)
РЕДАКТИРОВАТЬ: Как упоминалось в комментариях, это, вероятно, хорошая идея, чтобы размонтировать систему перед сном, а затем перемонтировать ее при пробуждении. Фактически, это, кажется, даже останавливает устройство от изменения его индекса, поэтому оно остается /dev/mmcblk0
, Проблема в том, что я могу размонтировать его только после закрытия всех программ, которые его используют. (Обратите внимание, что это работает и после сна - закрывая все программы, я всегда могу размонтировать точку останова.) umount -f
тоже не помогает, отвечая дополнительным umount2: Device or resource busy
,
Я использую Ubuntu Netbook Remix 9.10 на Acer Aspire One. Точка монтирования находится в fstab по UUID файловой системы (поэтому, конечно, почему перемонтирование работает, даже если имя устройства изменилось). Естественно, альтернативным решением этого является предотвращение изменения номера устройства, но я боюсь, что это будет гораздо более сложной проблемой.
2 ответа
Вы пробовали -f
флаг для umount
?
umount -f /home/ilari/storage
Выполнение чего-то подобного автоматически сделало бы небольшой сценарий /etc/pm/sleep.d/
, Но я рекомендую вам отключить при переходе в режим сна и повторно подключить при пробуждении. Недавно я получил хороший ответ, который должен сказать вам, что нужно сделать, чтобы написать этот маленький сценарий.
Есть ли umount -l /home/ilari/storage
Работа? У меня нет хорошего раздела для тестирования, но он может делать то, что вы хотите.