LINUX.ORG.RU

В линукс некорректно отмонтируется флешка

 ,


0

2

Всем доброго времени суток! Суть проблемы такова, имеем на desktop Debian Jessie, вставляем флешку, потом извлекаем(отмонтируем) выключаем ноутбук, видим черный экран и мигающий курсор в левом верхнем углу, система не выключается.Выдергиваю флешку и о чудо комп выключается. Если при включенном компе тоже самое проделать, то тоже файлы записываются не полностью, пишет что файлы скопированы, а по факту это не так. Стоит только отмонтировать флешку и их там нет. И так постоянно, в win7 c данной флешкой все нормально(флешка kingston 100 G3, USB 3.0). И самое обидное что так я уже десятки раз терял данные, linux пишет что отмонтировал, а по факту ведет какую то запись на флешку, хотя файлы показал что скопированы. В итоге много битых ценных файлов.DE MATE. Может кто сталкивался с подобной проблемой? Заранее спасибо.

Возможно, я ошибаюсь, но похоже на то,

что Вы бежите впереди паровоза, то есть отдаете новую команду компьютеру раньше, чем он успевает выполнить предыдущую.

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

Вот история о похожей девушке: http://ithappens.me/story/362

Извините, если ошибся.

Vsevolod-linuxoid ★★★★★
()
Ответ на: Возможно, я ошибаюсь, но похоже на то, от Vsevolod-linuxoid

Я Вас понял, но я такое проявление встретил не так давно, все же линуксом пользуюсь не много не мало более 4 лет.Да, я после копирования файлов жду не менее 5 минут, по моим меркам этого должно быть достаточно. Но все же интересно почему это в той же win7 полоска дошла до конца, т.е. копирование завершено, сразу же после пропадания полоски копирования используешь безопасное извлечение и флешка без вопросов отмонтируется и файлы не теряются и не бьются.(просто интересно почему так).

NightFobos
() автор топика
Ответ на: комментарий от NightFobos

В таком случае я ошибся и дело не в Вас, а в системе. Приношу свои извинения.

А почему так происходит — не знаю.

Vsevolod-linuxoid ★★★★★
()

В линуксе надо в консоле написать раза два sync, потом umount, потом опять sync, и после этого можно не слишком бояться за данные на флешке.

Deleted
()
Ответ на: комментарий от NightFobos

Сейчас придут и скажут что я брежу. Но я делаю постоянно, потому как неоднократно сталкивался с хренью, если так не делать.

Deleted
()
Ответ на: комментарий от mandala

Извиняюсь, а по моему описанию что может быть? Может DE?. Кстати минут 30 назад когда я все это описал что тут на обсуждается произошел еще очень интересный глюк. Только я отписал на ЛОР, вижу пропала связь с wifi и перестались видеться вообще любые точки доступа, далее решил уйти в ребут, комп вместо этой операции показал мою обоину без значков и панелей, при этом кулер ноута завыл как безумный(будто ресурсоемкую игру запустил). Вообщем помогла только одна команда уйти в ребут:Ctrl+alt+SysRq(это удерживаем) и набираем медленно выжидая 1-2 секунды на каждое нажатие R+E+I+S+U+B. Вот тогда комп гарантировано ушел в ребут. Что это было я так и не понял. Просто на ровном месте.

NightFobos
() автор топика
Ответ на: комментарий от mandala

Пока копаю, есть уже подозрения, у меня тут каким то образо еще оказался PCManFM(уже и не помню с чем он установился), так вот один человек описал такое:вставляю флешку при открытом pcman и мне пишется ошибка(флешка любая) DBus error org.gtk.Private.RemoteVolumeMonitor.Failed: An operation is already pending. А вот это ему ответ пришел:На лицо конфликт, имхо. Два разных приложения пытаются подмонтировать флэшку и дерутся. Осталось выяснить кто ещё вмешивается в процесс.А у меня скорее всего теоретически могли Сaja и PCManFM конфликтовать при этом возможно это и получалось. Сейчас как раз занимаюсь удалением всего этого ненужного.Потом отпишусь о результате.

NightFobos
() автор топика
Ответ на: комментарий от mandala

Причин чего? Того, что пользовательское окружение в линуксе раскурочивают каждые полгода (gvfs, udisks2, апплеты на панелях разных граф.оболочек - вот это вот всё), и баги сегодня починят, а через месяц тоже самое перестанет работать, потому что решили переписать полпроекта, но никто не озаботился тестами? Да знаю я эти причины. Поэтому и sync; sync; umount. Работает и работало везде и всегда

Deleted
()
Ответ на: комментарий от Deleted

В чем смысл повторения? Это как «пройдись три раза dd из рандома, только тогда данные точно затрёшь (про hdd).

Про забагованность отчасти согласен, но ты драматизируешь.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Deleted

Т.е. делаем так: просто набираю в консоли sync, затем опять sync, а после umount и полный путь до флешки? Я Вас правильно понял?

NightFobos
() автор топика
Ответ на: комментарий от mandala

ты драматизируешь

Да что-то настроение :)

В чем смысл повторения?

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

Deleted
()
Ответ на: комментарий от NightFobos

Да, это я и имею ввиду. Умаунт от рута

Deleted
()
Ответ на: комментарий от Deleted

Короче, человечечкий фактор.

Ну слава яйцам, что ты сам это понимаешь.

mandala ★★★★★
()

Тоесть, что копирование происходит очень быстро не смущает? Про sync уже сказали.
Про отмонтирование: флешка со светодиодом поможет тебе только.

пишет что отмонтировал

странно. в кедах писало, что отмонтирование идет и происходило только после окончательного копирования

sehellion ★★★★★
()

Во всех современных ОС при работе с флешками в качестве буфера используется доступная оперативная память. В том числе и на запись.

Таким образом, физическая запись на флешку происходит в двух случаях:

- при нехватке оперативной памяти

- при завершении сессии работы с флешкой.

То есть, если ты пытаешься писать на флешку какой-нибудь сериал, оперативка очень быстро кончается и скорость записи на флешку резко падает до 5-10 Мбайт/с - то есть, до скорости физической записи на флешку, а не скорости кеширования в оперативке.

Принудительный сброс буферов осуществляется при завершении сессии (отмонтировании) или командой sync. Эта же команда sync вызывается INIT-скриптами при завершении работы.

То есть, «мигающий курсор» должен быть связан со сбросом закешированного на флешку. Надо просто подождать.

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 1)
Ответ на: комментарий от slamd64

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

NightFobos
() автор топика
Ответ на: комментарий от justAmoment

нет, не было такой неоходимости.Для меня это новая команда.Кстати, может мне сбросить выхлоп команды mount.Может флешка работает с неверными параметрами.Тут еще мно сайтов прочитал, пишут уменьшит кэш, для прямого сброса файлов на флешку. Кстати флешка у меня отформатирована в NTFS.Просто хочу для себя разобраться, чтобы в последствии корректно работать с флешкой.

NightFobos
() автор топика
Ответ на: комментарий от NightFobos

И главное, все ссылаются на светодиод, а у меня его нет, так что мне, флешку дорогую выкинуть? Или хоть программу какую завести дабы смотреть что процесс записи завершен.

NightFobos
() автор топика
Ответ на: комментарий от NightFobos

нет, не было такой неоходимости.Для меня это новая команда.

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

http://gkrellm.srcbox.net/

justAmoment ★★★★★
()
Последнее исправление: justAmoment (всего исправлений: 2)
Ответ на: комментарий от justAmoment

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

NightFobos
() автор топика

При отмонтировании (umount) обязательно выполняется sync, так что отдельно его выполнять не нужно.

anonymous
()
Ответ на: комментарий от justAmoment

Я установил эту программу. Собственно по ней и можно понять когда копирование завершено(запись-чтение). Вообщем лечу по приборам.

NightFobos
() автор топика
7 июня 2016 г.
Ответ на: комментарий от NightFobos

Проблему решил тем что установил GKrellM System Monitor. Копирую на флешку и смотрю на диаграмму, как только вижу что запись закончилась смело извлекаю и не разу не испортил ни один файл. Всем спасибо!

NightFobos
() автор топика
Ответ на: комментарий от NightFobos

Без буферизации скорость будет сто КилоБайт/сек, буферизация нужна чтобы батчинг работал. Хотя конечно размер буфера в линуксе выставляется неадекватно большой.

anonymous
()
Ответ на: комментарий от NightFobos

Можешь добавить sync в опции монтирования.

man udisks-glue

batekman ★★★
()
Ответ на: комментарий от anonymous

Кде например монтирует флешки в синхронном режиме. Так в зависимости от качества флешки можно ждать его пару часов пока sync отработает (читай файлы на самом деле запишутся) так что лучше уж в синхронном режиме монтировать. Уменьшить размер кэшей тоже не решение и скажется на производительности (боже какое длинное слово 0_о), так что только так.

anonymous
()
Ответ на: комментарий от batekman

Если не дёргать команду sync чаще чем раз в несколько секунд, то не должно. Потому что из общего у них только название.

anonymous
()
Ответ на: комментарий от anonymous

Ещё как решение, и по сравнению с монтированием в sync не скажется, потому что работает батчинг.

anonymous
()
Ответ на: комментарий от man_of_motley

Нужно выставлять или vm.dirty_bytes или vm.dirty_background_bytes, а vm.vfs_cache_pressure сюда вообще отношения не имеет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.