Проблемы с ext4 после отключения питания.

Привет.

Недавно случайно задел сетевой фильтр и комп выключился. До выключения система активно использовалась(шла компиляция в три потока, работали торренты, играла музыка, был запущен браузер и т.д. - в общем, работа шла полным ходом). После перезагрузки на на ФС были обнаружены многочисленные ошибки. Вплоть до того, что не помогала автоматическая чистка fsck. Запустить всё удалось только после перехода в single mode и ручного прогона fsck.
Сейчас система загружается, работает, но иногда бесповоротно виснет(почти мгновенно - замирает музыка, не отвечают иксы, чуть позже перестаёт двигаться мышь, а ещё чуть позже компьютер перестаёт отвечать на пинги). Зависает при активном обращении к разделам /usr и /var(ну, к примеру, я специально несколько раз пробовал запустить emerge -ueNDv system: стабильно на сборке примерно 100-го пакета из 300 зависает - не одного и того же пакета, каждый раз на разном, так что проблема точно не в каком-то одном ebuild'е). Т.е. повторить ошибку я могу без проблем, но вот локализовать проблему точно пока не могу. Такое впечатление, что система виснет из-за долгого и частого обращения к винту. Например, пересборка ядра(на моём железе примерно 15-20 минут) проходит отлично. А вот сборка чего-нибудь побольше зависает.
Последние, перед зависанием сообщения в /var/log/messages:

Jan 18 17:47:37 damned kernel: EXT4-fs (sda6): 
Jan 18 17:47:37 damned kernel: EXT4-fs (sda5): error count: 73
Jan 18 17:47:37 damned kernel: EXT4-fs (sda5): initial error at 1293337608: __ext4_get_inode_loc:4950error count: 1
Jan 18 17:47:37 damned kernel: EXT4-fs (sda6): initial error at 1293328331: ext4_mb_generate_buddy:718
Jan 18 17:47:37 damned kernel: EXT4-fs (sda6): last error at 1293328331: ext4_mb_generate_buddy:718
Jan 18 17:47:37 damned kernel: : inode 257188: block 532218
Jan 18 17:47:37 damned kernel: EXT4-fs (sda5): last error at 1293340291: __ext4_get_inode_loc:4950: inode 257196: block 532218

Но, после того, как провёл дополнительные тесты(открываю два терминала одновременно - в одном tailf /var/log/messages, в другом emerge -ueNDv system), оказалось, что зависает не непосредственно на этом сообщении, а через некоторое время - от пяти минут до часа, так что не уверен, что именно эта ошибка виновата в зависании.
К сожалению, мне пока не удалось нагуглить что-нибудь внятно(по ошибке выдаётся слишком много информации не по теме, а как составить внятный запрос я пока не придумал, буду признателен, если кто подскажет).
Файловая система - ext4 на всех разделах, кроме /boot(здесь ext2, но с ним и проблем нет). Разделы, на которых выскакивает ошибка в логах(sda5 и sda6) - это /usr и /var.
Винчестер новый, ещё на гарантии(куплен незадолго до нового года, до сбоя питания работал отлично, без нареканий). С LiveCD прогонял неоднократно fsck с разными опциями(fsck -f, -c, -a) - всё нормально(ну, непосредственно после сбоя, разумеется находит ошибки и исправляет, но тот же ключ -c никаких бедов не показывает).
Куда ещё можно посмотреть?
Незадолго до сбоя пересобирал ядро(включал v4l) - если мне не изменяет память, больше ничего не трогал(сейчас отключил назад). Но, мало ли, поэтому вопрос, мог ли я что-нибудь "не то" в ядре включить? Какие опции показать(или весь конфиг выложить)?

uname -a
Linux damned 2.6.36-zen1-cppmm-v12 #6 ZEN SMP Tue Jan 18 17:29:27 NOVT 2011 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux

скорее всего основной

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

$ for I in `eix -I --only-names` ; do equery check $I ; done

примерно так ))
еще бы хорошо посмотреть вывод smartctl --all /dev/sda

Цитата: скорее всего основной

Цитата:
скорее всего основной проблемы не решит, но при сбоях стоит проверить систему на наличие битых библиотек, исполняемых файлов и т.д.

Спасибо, попробую. А разве revdep-rebuild этого не делает?
Вот вывод smartctl:

            
smartctl 5.39.1 2010-01-28 r3054 [x86_64-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.12 family
Device Model:     ST3500418AS
Serial Number:    9VMSLVX1
Firmware Version: CC46
User Capacity:    500 107 862 016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Wed Jan 19 15:32:23 2011 NOVT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline 
data collection:                 ( 609) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine 
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        (  83) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x103f) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   111   090   006    Pre-fail  Always       -       226786780
  3 Spin_Up_Time            0x0003   098   098   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1382
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   066   060   030    Pre-fail  Always       -       4555849
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       570
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       695
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       403
188 Command_Timeout         0x0032   100   086   000    Old_age   Always       -       144
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   061   053   045    Old_age   Always       -       39 (Lifetime Min/Max 25/39)
194 Temperature_Celsius     0x0022   039   047   000    Old_age   Always       -       39 (0 20 0 0)
195 Hardware_ECC_Recovered  0x001a   041   021   000    Old_age   Always       -       226786780
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       9
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       104749957382831
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       539539031
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       466944508

SMART Error Log Version: 1
ATA Error Count: 440 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 440 occurred at disk power-on lifetime: 550 hours (22 days + 22 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 f0 17 e8 00  Error: UNC at LBA = 0x00e817f0 = 15210480

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 01 f0 17 e8 e0 00   2d+03:55:13.378  READ DMA
  27 00 00 00 00 00 e0 00   2d+03:55:13.377  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   2d+03:55:13.369  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+03:55:13.274  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   2d+03:55:13.274  READ NATIVE MAX ADDRESS EXT

Error 439 occurred at disk power-on lifetime: 550 hours (22 days + 22 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 f0 17 e8 00  Error: UNC at LBA = 0x00e817f0 = 15210480

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 01 f0 17 e8 e0 00   2d+03:55:10.505  READ DMA
  27 00 00 00 00 00 e0 00   2d+03:55:10.504  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   2d+03:55:10.496  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+03:55:10.472  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   2d+03:55:10.472  READ NATIVE MAX ADDRESS EXT

Error 438 occurred at disk power-on lifetime: 550 hours (22 days + 22 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 f0 17 e8 00  Error: UNC at LBA = 0x00e817f0 = 15210480

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 01 f0 17 e8 e0 00   2d+03:55:07.633  READ DMA
  27 00 00 00 00 00 e0 00   2d+03:55:07.632  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   2d+03:55:07.624  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+03:55:07.600  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   2d+03:55:07.600  READ NATIVE MAX ADDRESS EXT

Error 437 occurred at disk power-on lifetime: 550 hours (22 days + 22 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 f0 17 e8 00  Error: UNC at LBA = 0x00e817f0 = 15210480

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 01 f0 17 e8 e0 00   2d+03:55:04.792  READ DMA
  27 00 00 00 00 00 e0 00   2d+03:55:04.791  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   2d+03:55:04.783  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+03:55:04.760  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   2d+03:55:04.759  READ NATIVE MAX ADDRESS EXT

Error 436 occurred at disk power-on lifetime: 550 hours (22 days + 22 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 f0 17 e8 00  Error: UNC at LBA = 0x00e817f0 = 15210480

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 01 f0 17 e8 e0 00   2d+03:55:01.948  READ DMA
  27 00 00 00 00 00 e0 00   2d+03:55:01.947  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   2d+03:55:01.923  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+03:55:01.851  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   2d+03:55:01.851  READ NATIVE MAX ADDRESS EXT

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Интересно, что это оно там за ошибки нашло.

возможно более опытные

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

Блин. Я старые винты(до этого

Блин.
Я старые винты(до этого три 80-ки стояли) уже поснимал и всю инфу перекинул(ну и собственно систему с них перенёс сюда). Бекапы-то есть, но очень лениво опять назад перекидывать, нести в сервис и т.д. А как-то ещё проверить можно? Просто тот же smartctl -H говорит, что всё нормально. Ну или может, где почитать подробнее о этих ошибках?

Поддерживаю - хана! :) Вот

Поддерживаю - хана! :)
Вот здесь

197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       9

говорит о том, у тебя кусок данных не записался (т.е. ко всему у тебя нарушена целостность данных и большой вопрос: куда это попало - зависит от твоей удачи :) ). Обычно это бывает, когда relocation table переполнена.
Странно, что у тебя при этом

  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0

Т.е. сбой произошел в самом диске. Возможно, что low-level формат решит проблему (бывали такие случаи).

Кстати, сервис, скорее всего, претензию не примет (и будет прав! :) ), поскольку smart-event'а еще нет!

И еще: почему у вас диск ни разу не тестирован?! Срочно прогнать короткие и длинные тесты. Возможно smart-event'ы появятся, тогда и с сервисом сможете по-другому говорить.

Тесты гоняю. short и

Тесты гоняю. short и conveyance прошли без ошибок. Long ещё идёт.
Попробовал ещё загрузиться с System Rescue CD, примонтировать разделы, войти туда в chroot и запустить всё тот же emerge -ueNDv system. Прошло без ошибок. Все 300 пакетов. Так же натравил ещё несколько раз badblocks на все разделы по очереди - ничего. Всё отлично работает.

А можно по подробнее про smart-event'ы и low-level форматирование? Никогда таким заниматься не приходилось.

Цитата:
Кстати, сервис, скорее всего, претензию не примет (и будет прав! :) )

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

cppmm

cppmm написал(а):
...подробнее про smart-event'ы

- доки по sys-apps/smartmontools

cppmm написал(а):
low-level форматирование? Никогда таким заниматься не приходилось.

и слава богу... :) это перезапись служебной дорожки, давно сам этим уже не занимался, даже не знаю, как там ситуация с новыми терабайтными дисками - ищите в Гугле, но имейте ввиду, что гарантию вы, скорее всего, после него потеряете.

cppmm написал(а):
Цитата:
Кстати, сервис, скорее всего, претензию не примет (и будет прав! :) )

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

Нет. Это означает, что у вас негарантийный случай и вам его не заменят.

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

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

SysA написал(а): В конце

SysA написал(а):
В конце концов можете окончательно убить диск старым хакерским способом... :D и тогда уж точно поменяют.

Как? жутко интересно :))

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

Поищите... в Рунете было

Поищите... в Рунете было много инфы.
А мы сами не местные, такими делами не занимаемся... :)

Цитата: - доки по

Цитата:
- доки по sys-apps/smartmontools

Спасибо, почитаю.

Длинный тест, всё-таки нашёл ошибку:

# smartctl -l selftest /dev/sda
      
smartctl 5.39.1 2010-01-28 r3054 [x86_64-pc-linux-gnu] (local build)                                                                                                                                       
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net                                                                                                                                 

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%       581         151134542
# 2  Conveyance offline  Completed without error       00%       580         -
# 3  Short offline       Completed without error       00%       580         -
# 4  Extended offline    Completed: read failure       90%       571         151134542

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

cppmm написал(а): А разве

cppmm написал(а):
А разве revdep-rebuild этого не делает?

Он проверяет библиотеки на совместимость версий и т.п., а не на изменения в файлах

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".