Сейчас много современных файловых систем и reiserfs уже не так популярна как ранее, однако есть те кто ей пользуется. Здесь я хочу описать один очень старый баг этой фс. Возможно это поубавит число желающих использовать reiserfs для хранения важных данных.
Если быть кратким, то перестройка b-tree этой фс гарантированно приводит к порче данных если среди файлов имеется образ другой reiserfs. При этом возникают коллизии хэша между перестраиваемой фс и фс файла-образа. Впрочем ошибки хэша имеют место и при эксплуатации этой файловой системы в штатном режиме. Однако вероятность и периодичность их возникновения обусловлена многими факторами. При обычной работе сбои достаточно редки, но вероятны.
Для наглядности проведем тест.
Создадим файловую систему в файле:
dd if=/dev/zero of=fs.img bs=10M count=600 mkfs.reiserfs -f fs.img
После чего монтирум и помещаем в ее корень каталоги с файлами:
Теперь аналогично создаем второй файл-образ reiserfs и помещаем на него файлы. Для простоты я взял текстовые файлы из /etc.
Отмонтируем, а сам образ помещаем на первую reiserfs.
Вот как это выглядит в файловом менеджере:
...и рекурсивно:
% ls -R .: fs2.img music pdf picture program text Новый_каталог ./music: 01-Kyrie_II.mp3 ./pdf: D510MO_TechProdSpec.pdf ./picture: 455cb68c4456.jpg ./program: skype-4.1.0.20-suse.i586.rpm ./text: resolv.conf ./Новый_каталог: картинка.jpg
вычислим md5-хэши для каждого из файлов:
% for x in `find . -name "*"`; do md5sum "$x"; done md5sum: .: Это каталог md5sum: ./pdf: Это каталог f9e4d29e5f1cd6b962a3055c818ae4b3 ./pdf/D510MO_TechProdSpec.pdf md5sum: ./text: Это каталог 5d6784646aa5c5b326ae4d7c9d0f3e4c ./text/resolv.conf md5sum: ./music: Это каталог 1bc22ef617a0254af9f6e0f07d7820ac ./music/01-KyrieII.mp3 md5sum: ./Новый_каталог: Это каталог 322666b459b5e9da8c2af92b0559d31e ./Новый_каталог/картинка.jpg e82f8915ec12479a270be720f68b983f ./fs2.img md5sum: ./picture: Это каталог c7ae22ffc278c22686ae059233e9d479 ./picture/455cb68c4456.jpg md5sum: ./program: Это каталог fb2131869df1d2f566a21daa9ae31ec9 ./program/skype-4.1.0.20-suse.i586.rpm
Отмонтируем тестовую файловую систему и перестроем дерево:
# reiserfsck --rebuild-tree --force ./fs.img
Подключаем обратно и в файловом менеджере наблюдаем результат:
Выглядит как ночной кошмар.
% for x in `find . -name "*"`; do md5sum "$x"; done find: `./lost+found': Отказано в доступе md5sum: .: Это каталог md5sum: ./pdf: Это каталог 5ca498229e94c584f83484f2bc359405 ./pdf/D510MO_TechProdSpec.pdf md5sum: ./text: Это каталог 73c6f70aeba0e8cbcbee904696f75f26 ./text/resolv.conf md5sum: ./music: Это каталог 1fcd6b87ef9c14c23f55295b3374ade8 ./music/01-KyrieII.mp3 5ca498229e94c584f83484f2bc359405 ./zshrc md5sum: ./permissions.paranoid: Это каталог c7ae22ffc278c22686ae059233e9d479 ./permissions.paranoid/455cb68c4456.jpg md5sum: ./Новый_каталог: Это каталог 322666b459b5e9da8c2af92b0559d31e ./Новый_каталог/картинка.jpg 72da94ee8e7abdc04584e40b4113973f ./fs2.img 73c6f70aeba0e8cbcbee904696f75f26 ./asound.conf e2dc91fe3d41afb3e80d4405b680379e ./environment 1fcd6b87ef9c14c23f55295b3374ade8 ./dnsmasq.conf md5sum: ./lost+found: Отказано в доступе md5sum: ./program: Это каталог e2dc91fe3d41afb3e80d4405b680379e ./program/skype-4.1.0.20-suse.i586.rpm
Файлы из второго образа перекочевали в тестовую фс, некоторые превратились в каталоги. Содержимое файлов перепуталось между собой.
Комментарии
10 лет 50 недель назад
10 лет 51 неделя назад
10 лет 51 неделя назад
11 лет 8 часов назад
11 лет 1 неделя назад
11 лет 2 недели назад
11 лет 2 недели назад
11 лет 12 недель назад
11 лет 12 недель назад
11 лет 12 недель назад