Похоже, что моя файловая система каким-то образом была повреждена во время последней перезагрузки моего сервера. Я не могу fsck
некоторых логических томов больше нет. Настройка:
root@rescue ~ # cat /mnt/rescue/etc/fstab
proc /proc proc defaults 0 0
/dev/md0 /boot ext3 defaults 0 2
/dev/md1 / ext3 defaults,errors=remount-ro 0 1
/dev/systemlvm/home /home reiserfs defaults 0 0
/dev/systemlvm/usr /usr reiserfs defaults 0 0
/dev/systemlvm/var /var reiserfs defaults 0 0
/dev/systemlvm/tmp /tmp reiserfs noexec,nosuid 0 2
/dev/sda5 none swap defaults,pri=1 0 0
/dev/sdb5 none swap defaults,pri=1 0 0
[ОБНОВИТЬ] Первый вопрос: какую «часть» я должен проверять на наличие плохих блоков? Логический том, лежащий в основе /dev/md
или /dev/sdx
ниже этого? Правильно ли я делаю то, что делаю? [/ОБНОВИТЬ] Сообщение об ошибке при проверке / dev / systemlvm / usr:
root@rescue ~ # reiserfsck /dev/systemlvm/usr
reiserfsck 3.6.19 (2003 www.namesys.com)
[...]
Will read-only check consistency of the filesystem on /dev/systemlvm/usr
Will put log info to 'stdout'
Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
###########
reiserfsck --check started at Wed Feb 3 07:10:55 2010
###########
Replaying journal..
Reiserfs journal '/dev/systemlvm/usr' in blocks [18..8211]: 0 transactions replayed
Checking internal tree..
Bad root block 0. (--rebuild-tree did not complete)
Aborted
Ну пока попробуем --rebuild-tree
:
root@rescue ~ # reiserfsck --rebuild-tree /dev/systemlvm/usr
reiserfsck 3.6.19 (2003 www.namesys.com)
[...]
Will rebuild the filesystem (/dev/systemlvm/usr) tree
Will put log info to 'stdout'
Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
Replaying journal..
Reiserfs journal '/dev/systemlvm/usr' in blocks [18..8211]: 0 transactions replayed
###########
reiserfsck --rebuild-tree started at Wed Feb 3 07:12:27 2010
###########
Pass 0:
####### Pass 0 #######
Loading on-disk bitmap .. ok, 269716 blocks marked used
Skipping 8250 blocks (super block, journal, bitmaps) 261466 blocks will be read
0%....20%....40%....60%....80%....100% left 0, 11368 /sec
52919 directory entries were hashed with "r5" hash.
"r5" hash is selected
Flushing..finished
Read blocks (but not data blocks) 261466
Leaves among those 13086
Objectids found 53697
Pass 1 (will try to insert 13086 leaves):
####### Pass 1 #######
Looking for allocable blocks .. finished
0% left 12675, 0 /sec
The problem has occurred looks like a hardware problem (perhaps
memory). Send us the bug report only if the second run dies at
the same place with the same block number.
mark_block_used: (39508) used already
Aborted
Плохой. Но давайте сделаем это еще раз, как уже упоминалось:
[...]
Flushing..finished
Read blocks (but not data blocks) 261466
Leaves among those 13085
Objectids found 54305
Pass 1 (will try to insert 13085 leaves):
####### Pass 1 #######
Looking for allocable blocks .. finished
0%... left 12127, 958 /sec
The problem has occurred looks like a hardware problem (perhaps
memory). Send us the bug report only if the second run dies at
the same place with the same block number.
build_the_tree: Nothing but leaves are expected. Block 196736 - internal
Aborted
То же самое происходит каждый раз, меняется только фактическое сообщение об ошибке. Иногда я получаю mark_block_used: (somenumber) used already
, в других случаях номер блока меняется. Похоже, что-то ДЕЙСТВИТЕЛЬНО сломано. Есть ли шансы как-нибудь заставить разделы снова работать? Это сервер, к которому у меня нет прямого физического доступа (размещенный сервер).
Заранее спасибо!
Ну, еще через несколько часов reiserfsck
кажется, что повторить этот трехэтапный процесс
reiserfsck --check ...
reiserfsck --rebuild-sb ...
reiserfsck --rebuild-tree ...
в конечном итоге решает проблему. Я до сих пор не знаю причину проблемы, поскольку, похоже, на каком-либо диске нет плохих блоков, и я не знаю, сколько данных потеряно, но в конце концов я почти уверен, что этого не должно происходить. Один раздел все еще «воспроизводит свой журнал», но я расскажу об успехе (или неудаче), как только смогу перезагрузить компьютер.