3

Единственное, что мне на самом деле нужно знать, это как выполнить размонтирование, когда устройство занято. 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 ответа2

5

Работает ли umount -l /home/ilari/storage ? У меня нет хорошего раздела для тестирования, но он может делать то, что вы хотите.

3

Пытались ли вы флаг -f umount

umount -f /home/ilari/storage

Выполнение чего-то подобного автоматически приведет к небольшому сценарию в /etc/pm/sleep.d/ . Но я рекомендую вам отключить при переходе в режим сна и повторно подключить при пробуждении. Недавно я получил хороший ответ, который должен сказать вам, что нужно сделать, чтобы написать этот маленький сценарий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .