LinuxForum.Fans
Тема

Корректное отключение флешки

Автор: dicros 14 сообщений 1373 просмотров
29.12.2014 23:33 #407584

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


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

29.12.2014 23:49 #407585

mount -o sync избавит от проблем, lsof /dev/sdb, вероятно, не покажет никого в такой ситуации, потому что файл сначала пишется в буфер драйвера ФС, после чего уже на флешку. Это отложенная запись виновата.

30.12.2014 00:02 #407590

yars, если я тебя правильно понимаю то:


1. Чтобы мне воспользоваться командой mount -o sync мне нужно отключать автоматическое монтирование флешки?

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

30.12.2014 00:14 #407592

Я бы предложил
[console]udisksctl unmount -b /dev/sdX[/console]

30.12.2014 00:17 #407593

Первое - да, либо поискать, где оно настраивается. Второе - да, отложенная запись как раз и означает, что файл сначала пишется в буфер в оперативной памяти, когда место, выделенное под него, кончится - файл записывается на диск. Если файл большой, а носитель медленный, то задержки неизбежны. Но у меня в Xfce в таких случаях ФМ не выдает ошибок и не виснет - в трее появляется значок "действия над файлами", после сброса буферов он исчезает, и носитель размонтируется.

30.12.2014 00:28 #407597

1000Mhz, yars, спасибо за советы когда еще раз случится такая ситуация воспользуюсь ими

30.12.2014 02:40 #407612
"dicros" написал:
Как можно узнать процессы которые происходят на флешки

[console]drb@amilo:/mnt/LEEF$ lsof /mnt/LEEF/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1053 drb cwd DIR 8,17 4096 1 /mnt/LEEF
lsof 23087 drb cwd DIR 8,17 4096 1 /mnt/LEEF
lsof 23088 drb cwd DIR 8,17 4096 1 /mnt/LEEF
[/console]

"dicros" написал:
и как их отключить чтобы в последствии корректно извлечь флешку без последствий.
kill, killall. По-русски: послать сигнал завершения.
30.12.2014 02:42 #407613

"yars" написал:
mount -o sync избавит от проблем
угу. И ещё существенно замедлит работу.
30.12.2014 14:22 #407629
dicros написал:
yars, если я тебя правильно понимаю то:


1. Чтобы мне воспользоваться командой mount -o sync мне нужно отключать автоматическое монтирование флешки?

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

Неправильно понимаете.
sync здесь совершенно не поможет, только сильно замедлит работу. Если флешка свободна, то она отмонтируется, хотя, возможно, и не сразу. Если не хочет - значит кто-то его занял. Самое вероятное - "вы же на ней и стоите": для какого-то процесса текущий каталог установлен на ней, и этот "кто-то" - чаще всего шелл в вашем же файловом менеджере.

30.12.2014 16:01 #407640
"s.xbatob" написал:
sync здесь совершенно не поможет, только сильно замедлит работу.

А как вы хотели, флешки хоть и довольно быстрые, но теоретических 480 Мбит/с, доступных на USB2.0, им мало для эффективной работы с большими файлами без кэширования, да и кэширование не сильно-то помогает - опять же, упирается в скорость передачи данных по интерфейсу USB2.0.

30.12.2014 21:43 #407744

drBatty, попробовал я сделать так как ты написал, но похоже я не понял смысла этого потому что я попробовал сделать так

1. Вставил флешку сразу же когда еще ничего не делал выполнил эту команду lsof (у меня выдала тоже самое что и у тебя на скриншоте только PID и размеры флешки другие. А остальное тоже самое)
2. Потом стал скидывать на флешку файл и также выполнил эту команду еще раз (ничего не изменилось все осталось на своих местах) никаких новых процессов не появилось по которым бы можно было увидеть что идет запись на флешку.

31.12.2014 09:05 #407772

"dicros" написал:
1. Вставил флешку сразу же когда еще ничего не делал выполнил эту команду lsof (у меня выдала тоже самое что и у тебя на скриншоте только PID и размеры флешки другие. А остальное тоже самое)
ну дык уйдите с этого каталога. Тогда флешку можно будет размонтировать. Командой
[console]$ cd[/console]
(без параметра переходим в домашний каталог)

Да, размонтировать флешку нужно также, как монтировал.
31.12.2014 13:42 #407802
drBatty написал:


Да, размонтировать флешку нужно также, как монтировал.

Так она монтируется автоматически, я сам ничего не делаю

01.01.2015 00:51 #407844
dicros написал:
[quote=drBatty]

Да, размонтировать флешку нужно также, как монтировал.

Так она монтируется автоматически, я сам ничего не делаю[/quote]надо средствами de размонтировать

Войдите или зарегистрируйтесь, чтобы ответить.