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