nixp.ru v3.0

24 мая 2017,
среда,
03:18:40 MSK

DevOps с компанией «Флант»
static написал 15 февраля 2007 года в 02:28 (455 просмотров) Ведет себя как мужчина; открыл 20 тем в форуме, оставил 30 комментариев на сайте.

Тяжеловато объяснить проблему.

В общем у меня есть флешка A-data на 1Gb. Проблема в том что когда я скидываю на нее какиенибудь большие файлы, например видео на 300Mb, или бывает что просто штук 100 фотографий. При ее следующем монтировании какие то файлы начинают весить в 2 раза меньше, но объем на самой флешке съеден как будто там лежит целый файл. Или если много более мелких файлов, некоторые из них просто пропадают.

Еще заметил одну странную мелочь. Когда скидываешь например тот же видео файл на 300Mb, процесс копирования спустя некоторое время как будто приостанавливается на секунд 30, потом продолжается копирование и опять прирывается и т.д.

Система:

дистр: Слака

ядро: ванильное 2.6.19.2 хотя тоже самое было и на более ранних версиях.

Пожалуйста помогите разобраться с этой проблемой.

Genie

check the output of this command:

$ dmesg | tail -20

and the '/var/log/messages' file.

then, do the ’sync' command before you unmount and unplug your flash drive.

Anarchist
Genie
then, do the ’sync' command before you unmount and unplug your flash drive.

???

Или здесь таки наблюдается зависимость от размеров файлов?

fly4life
Anarchist
???

Или здесь таки наблюдается зависимость от размеров файлов?

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

Anarchist
fly4life
Не понял. Ты тоже не знаешь, про буффер данных в памяти и прочее кеширование? И про то, что перед размонтированием содержимое этих самых буфферов надо сбросить на диск?

Я просто не понимаю каким образом потеря этих данных при размонтировании может сочетаться с здравым смыслом разработчиков.

myst

а не проще в fstab для этой точки прописать sync? Это с необходимостью отмонтирования проблему не решит, но зато данные теряться не будут. В Debian есть, кстати, тузлень eject, которая синхронизирует, отмонтирует и сделает eject (если устройство умеет).

metal

При отмонтировании и так sync делается, иначе зачем вообще отмонтирование? Как я понимаю, Genie предлагает посмотреть поток ошибок при sync.

myst

Ну это да. Но в таком случае можно будет вынимать флешку без отмонтирования. Потом уже надо будет сделать umount -f, но зато, если забыл отмонтировать, то ничего не пропадёт.

Anarchist
myst
Ну это да. Но в таком случае можно будет вынимать флешку без отмонтирования. Потом уже надо будет сделать umount -f, но зато, если забыл отмонтировать, то ничего не пропадёт.

Ага, а повторно смонтировать туда же другой носитель?

В предлагаемом тобой случае — +1 команда.

Так что нафиг: mount/umount настоящий линуксоид должен выполнять рефлекторно.

myst

ничего не +1, уж не знаю как в Linux (не пробовал), а в BSD можно всё монтировать одно поверх другого до бесконечности.

static

Вот dmesg | tail -20 при монтировании:

usb-storage: device scan complete

usb 3-2: USB disconnect, address 3

usb 1-2: new high speed USB device using ehci_hcd and address 10

usb 1-2: configuration #1 chosen from 1 choice

scsi5 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 10

usb-storage: waiting for device to settle before scanning

scsi 5:0:0:0: Direct-Access USB 2.0 Flash Disk 0.00 PQ: 0 ANSI: 2

SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 00 00 00 00

sda: assuming drive cache: write through

SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 00 00 00 00

sda: assuming drive cache: write through

sda: sda1

sd 5:0:0:0: Attached scsi removable disk sda

sd 5:0:0:0: Attached scsi generic sg0 type 0

usb-storage: device scan complete

Потом для проверки кинул 2 видео. Одно на 100mb, второе на 420mb. Сделал sync, но он никаких данных не вывел.

dmesg | tail -20 перед размонтированием:

usb 1-2: new high speed USB device using ehci_hcd and address 10

usb 1-2: configuration #1 chosen from 1 choice

scsi5 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 10

usb-storage: waiting for device to settle before scanning

scsi 5:0:0:0: Direct-Access USB 2.0 Flash Disk 0.00 PQ: 0 ANSI: 2

SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 00 00 00 00

sda: assuming drive cache: write through

SCSI device sda: 2015231 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 00 00 00 00

sda: assuming drive cache: write through

sda: sda1

sd 5:0:0:0: Attached scsi removable disk sda

sd 5:0:0:0: Attached scsi generic sg0 type 0

usb-storage: device scan complete

usb 1-2: reset high speed USB device using ehci_hcd and address 10

usb 1-2: reset high speed USB device using ehci_hcd and address 10

Проверил. Данные не потерялись. Все файлы весят столько сколько и должны. Вроде все нормально.

СПАСИБО БОЛЬШОЕ ЗА ПОМОЩЬ. Я уже думал что это сама флашка просто лажевая.

Последний вопрос.

Как я понял, чтобы постоянно перед отмонтированием не делать sync, его можно прописать в /etc/fstab для этой точки. И он будет делать sync автоматически перед отмантированием. Я правильно понял?

Anarchist
myst
ничего не +1, уж не знаю как в Linux (не пробовал), а в BSD можно всё монтировать одно поверх другого до бесконечности.

RTFM.

Можно в Unix в принципе.

Вопрос в механизме и в правильности.

myst

Вопрос в удобстве.

myst
static
Последний вопрос.

Как я понял, чтобы постоянно перед отмонтированием не делать sync, его можно прописать в /etc/fstab для этой точки. И он будет делать sync автоматически перед отмантированием. Я правильно понял?

Он всегда делает sync перед отмонтированием. Если пропишешь — будет делать после любой операции.

metal

Я не рекомендую sync прописывать в fstab, сильно замедляет копирование. Просто надо не забывать отмонтировать. В описанной ситуации я бы проверил файловую систему на флешке, если глюки иногда, то возможно с ней что-то не так.

myst

Что и для флеша замедляет? Сомневаюсь…

static

В общем, если перед отмонтированием делать sync. То данные нормально сохраняются.

Но есть еще одна странность.

В /etc/fstab добаляю sync для этой точки.

/dev/sda1 /media/sda1 vfat noauto,user,codepage=866,iocharset=koi8-r,owner,sync,rw 0 0

И при монтировании, если я сбарсываю чтото на флешку, копируется буквально 100кб и процесс копирования останавливается и не продолжается. Причем скорость копирования не 1.4Mb как это бывает обычно, а 36кб.

В чем тут может быть проблема?

fly4life
Anarchist
Так что нафиг: mount/umount настоящий линуксоид должен выполнять рефлекторно.

Так было в прошлом веке ;). Сейчас есть udev и hal — никаких 'mount' команд после втыкания и 'umount' перед вытаскиванием флешки вводить не надо.

static

hal у меня не стоит.

Файловую систему на флешке прверял уже много раз. С ней все нормально.

Отмонтирововать я не забываю. Но если не сделать перед отмонтированием sync, то добавленные файлы на флешке пропатадют или становятся меньше по размеру. Фигня какая то.

static

Возможно ли чтото сделать, чтобы не делать sync каждый раз? Посоветуйте пожалуйста.

Code Monkey

написать скрипт типа:

#!/bin/sh

sync

umount /mount/point

Heavy

Дистр — слака, это ответ на все вопросы

static

В общем все понятно. Спасибо большое тем кто помог.

Code Monkey

Ты и тут хочешь флейм развести? :)

Anarchist
fly4life
Так было в прошлом веке ;). Сейчас есть udev и hal — никаких 'mount' команд после втыкания и 'umount' перед вытаскиванием флешки вводить не надо.

Типа пиздец уже и сюда добрался?

fly4life
Anarchist
Типа пиздец уже и сюда добрался?

Какой такой пиздец?

Anarchist
fly4life
Какой такой пиздец?

Который большинство почему-то именует прогрессом.

fly4life
Anarchist
Который большинство почему-то именует прогрессом.

Может я не выспался, но я всё никак не пойму о чём ты? ;). Если ты боишься, что с появлением udev и hal у тебя отберут возможность вводить любимые команды, то это не так. Маунти вручную, наздоровье =).

denel

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

Dr. Evil

Откуда такая информация? :)

Или ты что-то неправильно понял, или кто-то другой написал какую-то неточность

Xop

Эмм, ничего что я тут спрошу по топику? :) В общем, есть плеер флешевый старенький (Nexx NF-350). До недавнего времени сидел под виндой, и проблем залить туда музыку почти не было — иногда музыка заливалась с проброшенными блоками. Из под линуксов — могу только читать и удалять :) Залить что-либо не получается. umount долго думает, но вроде выполняется. Однако ж на флешке ничего не появляется. Сейчас посмотрел dmesg, результат после выполнения cp:

sda: assuming drive cache: write through

sda: sda1

sd 1:0:0:0: Attached scsi removable disk sda

usb-storage: device scan complete

sd 1:0:0:0: SCSI error: return code = 0×10070000

end_request: I/O error, dev sda, sector 40

printk: 2 messages suppressed.

Buffer I/O error on device sda, logical block 5

Buffer I/O error on device sda, logical block 6

Buffer I/O error on device sda, logical block 7

Buffer I/O error on device sda, logical block 8

Buffer I/O error on device sda, logical block 9

Buffer I/O error on device sda, logical block 10

Buffer I/O error on device sda, logical block 11

Buffer I/O error on device sda, logical block 12

Buffer I/O error on device sda, logical block 13

Buffer I/O error on device sda, logical block 14

FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

sd 1:0:0:0: SCSI error: return code = 0×10070000

end_request: I/O error, dev sda, sector 320

Это флеша сдохла, или все-таки софтовые проблемы? И почему под виндой оно все-таки работало?

P.S. Чуть не забыл — дистр ASP Linux 11.2, с апдейтами. Ядро 2.6.18.

Heavy

end_request: I/O error, dev sda, sector 40 — по-видимому, сектор сдох.

Оффтоп: Если флэшка больше 20 Мб , то ты можешь поставить туда слаку. Не знаю, правда, зачем.

pol

@FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!@

вот тебе и ответ …

Xop

> FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

Когда в fstab прибил настройки монтирования — проблема повторилась с точностью до этой строчки. А вообще на просторах инета похоже нашел ответ почему, осталось понять как это обойти… :(

Xop

> в fstab прибил настройки монтирования

В смысле, убрал параметр managed и сменил кодировку :)