LINUX.ORG.RU

Пропали данные на жестком диске

 , ,


0

2

Внезапно пропали данные с домашнего раздела. Целый день пользовался ими, а потом поставил Гимп на экспорт слоев в отдельный файл. В процессе работы выдает ошибку ввода/вывода. Я решил проверить то что экспортировалось. Тунар не обновляет автоматом, поэтому нажал F5. Ничего кроме пустоты я не увидел. Любой файловый менеджер пишет об отсутствии данных. При этом со 150 Гб свободно 490 мб. Проверил с помощью fsck.reiserfs, пишет что ошибок нет. В чем дело?

Пропали все данные или только обрабатываемые ?

Что видно в выводе?

ls -a

Что есть в?

~/.local/share/Trash

kostik87 ★★★★★
()

Любой файловый менеджер пишет об отсутствии данных. При этом со 150 Гб свободно 490 мб. Проверил с помощью fsck.reiserfs, пишет что ошибок нет. В чем дело?

reiserfs

ССЗБ

гугли photorec и запускай его с флешки/cd. и пиши на другой винт. Этот монтируй в RO.

drBatty ★★
()

reiserfs

ССЗБ

anonymous
()
Ответ на: комментарий от drBatty

гугли photorec и запускай его

с умным видом привел частное решение в виде общего (не описав его ограничения), молодец, чо)

anonymous
()
Ответ на: комментарий от anonymous

с умным видом привел частное решение в виде общего (не описав его ограничения),

вообще-то это общее решение. Я-бы именно так и сделал. ИЧСХ - делал. Потому-что этот ваш раизер восстановлению не подлежит. Во всяком случае - у меня не получалось. Я-бы на основании своего опыта и мучится не стал - если есть бекапы, или там ничего нет уникального - тупо форматнул. mke2fs, и все дела.

drBatty ★★
()
Ответ на: комментарий от Suntechnic
# dmesg | grep REISERFS                               
REISERFS (device sda1): found reiserfs format "3.6" with standard journal
REISERFS (device sda1): using ordered data mode
REISERFS (device sda1): journal params: device sda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
REISERFS (device sda1): checking transaction log (sda1)
REISERFS (device sda1): replayed 1 transactions in 0 seconds
REISERFS (device sda1): Using r5 hash to sort names
REISERFS (device sda5): found reiserfs format "3.6" with standard journal
REISERFS (device sda5): using ordered data mode
REISERFS (device sda5): journal params: device sda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
REISERFS (device sda5): checking transaction log (sda5)
REISERFS (device sda5): Using r5 hash to sort names
isodeska
() автор топика

Выполни

# debugreiserfs -p /dev/sdX > sdX.metadata
сожми и выложи куда-нибудь, я гляну. (Вместо sdX подставь свой раздел). Там будут метаданные, включая имена файлов, но без их содержимого.

i-rinat ★★★★★
()
Ответ на: комментарий от kostik87

Самое интересное, если загрузиться в root, ls -l данные отображают. А если ту же команду запустить из-под пользователя, выводит в консоле ошибка ввода/вывода. Problema s pravami? No pochemu? ono stabilno rabotala celiy den', ya prosto rabotal s izobrazheniyami?

isodeska
() автор топика
Последнее исправление: isodeska (всего исправлений: 1)
Ответ на: комментарий от kostik87
localhost ~ # ls -la /home/isodeska/
ls: читання каталогу /home/isodeska/: Input/output error
загалом 0
localhost ~ # df
...
/dev/sda5      178258616 177799968   458648 100% /home/isodeska
...

prichom svobodnogo prostranstva ostavalos' ~30 Gb

isodeska
() автор топика
Последнее исправление: isodeska (всего исправлений: 2)
Ответ на: комментарий от isodeska

Диск сыпется (возможно)

dmesg | grep sda

anonymous
()
Ответ на: комментарий от kostik87

В reiserfs «иноды» выделяются автоматически. В определённом смысле, там их нет в том виде, в котором они существуют в ext2/3/4. Пока есть место, всегда можно создать файл.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)

mount /home ?

anonymous
()
Ответ на: комментарий от drBatty

вообще-то это общее решение

свежо преданье, работает напрямую же с данными => сойдет для потерянной коллекции некоторых форматов, и то если нe было заметной фрагментации, а в общем случае не подходит

PhotoRec ignores the file system; this way it works even if the file system is severely damaged.

ИЧСХ - делал

ага, один пример доказывает общность (замечу, что полезность photorec под сомнение не ставилась)

anonymous
()
Ответ на: комментарий от isodeska

У меня монтируется, разве что при проверке fsck ругнулся на занятые obj_id. Такое бывает когда с подмонтированного диска образ снимаешь. Возможно проблема в правах. Попробуй принудительно себя назначить владельцем:

# chown -R isodeska /home

У тебя около 22 гигов файлов в корзине, ты в курсе? У некоторых файлов по 90000 фрагментов, фрагментация жуткая.

i-rinat ★★★★★
()
Ответ на: комментарий от isodeska

А ещё у тебя странные данные в суперблоке, максимальная длина транзакций и длина пачки установлены в 0, а обычно там значения порядка 900-1024. Возможно, поможет

# fsck.reiserfs --rebuild-sb /dev/sda5

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

У меня монтируется

И у меня монтируется, когда я с LiveCD гружусь. Даже все файлы на месте (на первый взгляд). А под основной системой не работает, даже под рутом, так что проблема с правами отпадает. и права не могут говорить про I/O Error

isodeska
() автор топика
Ответ на: комментарий от i-rinat

И еще:

# chmod 777 /home
chmod: зміна прав доступу для «isodeska»: Read-only file system
Хотя:
# mount | grep sda5
/dev/sda5 on /home/isodeska type reiserfs (rw)

isodeska
() автор топика
Последнее исправление: isodeska (всего исправлений: 1)
Ответ на: комментарий от isodeska

Ага, я тоже аналогичный глюк словил. Что-то там с версией ключей (древнее наследие). Монтируется нормально, но при попытке создать файл или каталог ФС перемонтируется в ro.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Что-то там с версией ключей (древнее наследие). Монтируется нормально, но при попытке создать файл или каталог ФС перемонтируется в ro.

Так я ж ничего не менял, последнее, что емержил - это openshot дент назад...

isodeska
() автор топика
Ответ на: комментарий от isodeska

И еще, на всякий случай (у меня так было - думал глюки дров, диск сыплется...) sata кабель переверни или попробуй на другой поменять и смотри чтобы он не скрученный был.

А dmesg в первую очередь грепать надо не по типу fs, а по sdX

Suntechnic ★★★★★
()
Ответ на: комментарий от isodeska

Так я ж ничего не менял

Это либо баг в reiserfs, либо баг в диске (битый сектор), либо баг в контроллере (было дело, когда первые sata-контроллеры иногда отправляли запись не туда, перетирая данные).

А в reiserfs древнее наследие совместимости версий 3.5 и 3.6. Причём в 3.6 ФС могут попадаться ключи от 3.5 и 3.6. В коде они хитро определяются каждый раз, потому что самой версии в ключе не хранится. Вот эта магия сейчас даёт сбой.

i-rinat ★★★★★
()
Ответ на: комментарий от isodeska

Вот тебе немного магии. Под словом корень далее в этом сообщении подразумевается начало твоей сбойной ФС.

  1. Загрузись с LiveCD
  2. запусти /sbin/reiserfsck --fix-fixable /dev/sda5
  3. смонтируй ФС (я буду считать, что /mnt)
  4. su в рута
  5. в /mnt/.Skype создай каталог 333
  6. перенеси все файлы и каталоги кроме .Skype в /mnt/.Skype/333 (мне удобнее это было делать в midnight commander)
  7. Создай каталог 444 в /mnt
  8. перенеси содержимое /mnt/.Skype/333 в /mnt/444
  9. перенеси /mnt/.Skype в /mnt/444 . Теперь у тебя весь корень в /mnt/444
  10. в /mnt выполни cp -la 444 555 (копирует каталоги, но вместо файлов делает жёсткие ссылки)
  11. каталог /mnt/444 удали
  12. содержимое /mnt/555 перенеси в /mnt
  13. удали пустой /mnt/555
  14. отмонтируй ФС
  15. запусти reiserfsck ещё раз (должно отработать без ошибок)

Это такой способ пересоздать метаданные для директорий, не запуская --rebuild-tree. После этого в целом должно работать; директории создаются, по крайней мере.

Но при этом всё равно в ФС остаётся некая «странность». У меня есть утилита, она обходит дерево. Ну так вот, она почему-то видит только его часть.

i-rinat ★★★★★
()

Внезапно пропали данные с домашнего раздела.

Терпи. Это популярная среди маргиналов от опенсорса быстрая файловая система. Ну и что, что порой валится, говорят они, зато оцените скорость и элитарность системы, непризнанной толпой.

plm ★★★★★
()
Ответ на: комментарий от isodeska

Ну значит ты словил глюк reiserfs. Если всё остальное не поможет, попробуй сделать reiserfsck --rebuild-tree

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

this way it works even if the file system is severely damaged.

вангую, что как раз тот случай.

ага, один пример доказывает общность

не один, но да, мало. На кой мне такая ФС нужна? Делайте статистику без меня.

drBatty ★★
()
Ответ на: комментарий от drBatty

вангую, что как раз тот случай.

Налицо полное непонимание принципов работы photorec. Если файл не одним куском, откуда photorec узнает, где брать продолжение? Как вообще узнать, что файл оборвался?

Делайте статистику без меня.

Жаль. :-)

i-rinat ★★★★★
()

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

isodeska
() автор топика
Ответ на: комментарий от i-rinat

Налицо полное непонимание принципов работы photorec.

да ладно.

Если файл не одним куском, откуда photorec узнает, где брать продолжение?

запишет только начало.

Как вообще узнать, что файл оборвался?

libastral.so

ну а вообще - фрагментация обычно невелика и мелкие файлы восстанавливаются успешно. К счастью, крупных и уникальных у мну не было, те что были - скачал ещё раз.

Жаль.

имхо - недоделанный твой раизер, и доделывать его некому.

drBatty ★★
()
Ответ на: комментарий от drBatty

да ладно. <...> запишет только начало. <...> libastral.so

Да ладно. Я пробовал восстанавливать, но photorec с ней плохо работает. Бывают jpeg картинки в 10-20 кб, к которым пристыкован 20-метровый кусок мусора.

имхо - недоделанный твой раизер, и доделывать его некому.

  1. Это был сарказм, смотри пункт 4;
  2. Это не мой «раизер»;
  3. Я не отрицаю, что код кривой. Мне не нравится, что его стиль не совпадает с остальным кодом ядра;
  4. Всплывающие баги всё же чинят. Не доделывать некому, а баги репортить некому. Вот с этим случаем: баг налицо, а багрепорта не намечается.
i-rinat ★★★★★
()
Ответ на: комментарий от namezys

а почему так?

Баг в коде ФС + баг в коде утилиты. Видимо, моё понимание структуры отличается от понимания структуры теми, кто драйвер ФС писал.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.