Почему моя карта флэш-памяти входит в режим только для чтения через некоторое время?

Если Ваш файл является довольно маленьким, это могло бы работать:

#!/bin/bash
for n in {1..40}
do
    sed -i $n's/raj/ram'$n'/' file
done 

Это выполняет итерации за времена файла 40 и всегда заменяет всего 1 строку. Если Вы хотите увеличить счетчик не с методической точностью число, но количеством строк Вы изменились, необходимо сделать это по-другому с 2 переменными, но sed-команда была бы подобна - n, не будет установлен циклом.

sed-i изменяет файл на месте, поэтому если Вы хотите сохранить оригинал, необходимо сделать копию сначала.

Это может быть сделано в остроте, если Вы предпочитаете что:

for n in {1..40}; do sed -i $n's/raj/ram '$n'/' file ; done

Выбор корректного размера вместо 40 автоматически возможен также.

3
27.04.2012, 01:46
2 ответа

Это - всего один диск или какой-либо диск?

Это могло бы быть съемкой общим планом, но если диск имеет файловую систему расширения на ней, и она была смонтирована с errors=remount-ro опция, может случиться так, что карта флэш-памяти начинает бросать ошибки?

Можно проверить, что ошибочное использование поведения монтируется (в случае, если пользовательские опции монтирования использовались), и tune2fs (для поведения по умолчанию).

$ mount | grep /dev/sda
/dev/sda2 on / type ext4 (rw,noatime,errors=remount-ro,discard)

$ sudo tune2fs -l /dev/sda2 | grep Errors
Errors behavior:          Continue

Если это верно, и диск начал бросать ошибки, пора заменить диск.

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

tune2fs -e continue /dev/sdb1

Затем если это все еще монтируется remount-ro, проверьте/etc/fstab и удалите errors=remount-ro часть от соответствующей строки. Хотя примечание, повторно монтирующееся в режиме только для чтения, полезно для уведомления Вас, когда устройство начинает перестать работать!

1
27.01.2020, 21:32
  • 1
    Вы правы - это имеет errors=remount-ro. Как я избавляюсь от этого (или еще лучше, избавьтесь от ошибок)? –  Scott C Wilson 27.04.2012, 01:38

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

Драйвер отказывает, потому что он исчерпывает память: трассировка заканчивается в warn_alloc_failed, и отсутствием памяти показывают swapper/0: page allocation failure: order:2, mode:0x4020. На первый взгляд похоже, что у Вас заканчивается память, это применимо ядром. Это не вполне то же самое, столь исчерпывающее RAM, как ядро не может использовать целую RAM для себя. Разряжение памяти ядра довольно редко, все же. Вы запускаете интенсивные приложения, которые вызывают большое одновременное использование диска или сетевой трафик? У Вас есть большая сумма видеопамяти?

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

Если ответ не (или даже если это - да), это могло бы быть ошибкой ядра. Удостоверьтесь, что Вы выполняете последнее обеспеченное распределением ядро. Это могло быть ошибкой драйвера, это инициировано поврежденной файловой системой, или поврежденное средство чтения (драйвер, как предполагается, сопротивляется к неправильным данным, но много драйверов не тестируются много с неправильно себя ведущими устройствами). Это могло также приводить RAM к сбою; сделайте тест памяти.

0
27.01.2020, 21:32
  • 1
    Ответ нет. (Никакие интенсивно использующие память приложения.) Мое ядро является 3.2.9-2.fc16.x86_64 № 1 SMP понедельник 5 марта 20:55:39 GNU/Linux UTC 2012 x86_64 x86_64 x86_64 - как я знаю, является ли это последним? Могло просто случиться так, что сама карта флэш-памяти плоха? –  Scott C Wilson 27.04.2012, 03:37
  • 2
    @ScottWilson yum update (IIRC, я не знаю конфетку). –  Gilles 'SO- stop being evil' 27.04.2012, 03:39
  • 3
    хм.. теперь я вижу его вскоре после, когда я включаю диск: [4143013.851548] фс FAT (sdb1): ошибка, недопустимый доступ к FAT (запись 0x084bf031). Это бросает диск в режим только для чтения. –  Scott C Wilson 28.04.2012, 14:04
  • 4
    @ScottWilson карта флэш-памяти, вероятно, поврежден. Эти вещи не надежны. –  Gilles 'SO- stop being evil' 28.04.2012, 20:49
  • 5
    :( 16G - эти вещи являются весьма дорогими. –  Scott C Wilson 28.04.2012, 21:02

Теги

Похожие вопросы