LINUX.ORG.RU

Потерялись файлы на диске

 ,


0

1

Здравствуйте! У меня случился неудачный акт перемещения файлов. После, я заметил, что некоторые файлы исчезли из файловой системы, а место под них не освободилось. Файлы мне не нужны, но места они занимают прилично, а посему их желательно удалить. Я слышал, что в файловой системе ext4 это можно сделать через lost+found. Вопрос: как сделать это в файловой системе NTFS?

P.S. Вырезка из fstab:

UUID=749189FF25128837 /data ntfs-3g utf8,rw,nosuid,nodev,relatime,allow_other,blksize=4096 0 0

Короче говоря, отчёт:

При попытке использовать fsck, он просто немедленно вывел fsck from util-linux 2.33.1 и завершился (Hello, Hello, world!). Пытался сделать с флагом -r для логированя, но он (флаг) был полностью проигнорирован.

ntfsfix и ntfsck вывели длиннющий список ошибок и сообщение, что ФС имеет ошибки, с которыми программа справится не способна (жаль, не сообразил вовремя это сообщение скопировать).

Пришлось делать загрузочную флешку с шиндой и использовать chkdsk. Сделало всё как надо с первого раза…

ShkiperDesna ()
Последнее исправление: ShkiperDesna (всего исправлений: 1)
Ответ на: комментарий от anonymous
  1. Не нашёл вашего совета. Может, вы попутали тему или не отослали совет?

  2. Что есть fsremake и с чем его есть? Или это очередной намёк aka libastral? Если есть способ поменять ФС без потери файлов, я бы послушал.

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

Улучшить файловую таблицу?

Это совсем другая тема. Почитал. Насколько я понял, человек сам не знает, что и зачем ему нужно. «Идеализировать ФС», кажется? Но единственные нормальные предложения это fsck и mkfs. Первое я и так опробовал, но оказывается, fsck не дружит с NTFS. А второе не подходит, ибо на диске есть и другие файлы, которые терять никак нельзя.

Я так и не нашёл fsremake. Кто-то там писал, что ТС не справился с ним, но это всё. Результаты поиска в репах Debian-а.

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

Спрошу здесь: есть внешние диски с ntfs и нет доступного оффтопика для их обслуживания, есть linux

  • перевести в другую ФС нельзя, всё что было возможно уже не в ntfs
  • чем можно проверить на ошибки и при необходимости исправить?
  • оно того стоит (хуже не станет?) или заводить какой-нибудь оффтоп? подводные камни есть?

P.S. ссылки выше ещё не смотрел, только планирую погружаться в тему.

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

Спрошу здесь

Как подметил ТС, функционала ntfs-3g во многих случаях не хватает. Иногда помогает ntfsfix, но далеко не всегда. За инструмент подмены фт (fsremake), идею которого я предлагал, никто не взялся, а моих знаний по ньюансам устройства фс совсем недостаточно. Слишком рисковано. Основная проблема в данном вопросе - отсутствие свободного места на диске на момент решения «вопроса». Т.е. не удастся даже с архивированием и обнулением всего вне архива провернуть. Можно конечно попробовать последовательно наращивать tar, но это такой гемор и с упаковкой и с распаковкой. Хотя что то в этом есть.

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

Спасибо. Я особо и не рассчитывал, но а вдруг… Буду рыть в сторону оффтопика для «спасательных операций».

Основная проблема в данном вопросе - отсутствие свободного места на диске на момент решения «вопроса».

Очень верное замечание (

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

есть внешние диски с ntfs

На внешних дисках можно кстати попробовать механизм https://github.com/BASH-Auto-Tools/bash-xcopy с использованием хардлинков. Главное на системном диске не пробовать его пользовать! И я не помню, устранил ли я все «проблемы» с именами файлов в этом скрипте.

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

Вы так и не сказали, что за fsremake! Можете дать ссылку в GitHub или какое-то другое место с этим? Или вы хотите сказать вручную скопировать нужную информацию на другой диск, отформатировать первый и скопировать инфу со второго на первый обратно?

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

К сожалению, далеко не у всех есть лишний накопитель с несколькими сотнями свободных ГБ (не в худшем случае)… К тому же это затратно с точки зрения времени, трудно поддаётся автоматизации, уменьшает срок жизни накопителя (особенно, если это накопители старого образца)… И вообще не Linux-way…

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

с несколькими сотнями свободных ГБ

Думаешь фт весит несколько сотен ГБ. Что то мне подсказывает (опыт наверное), что гораздо меньше. Для чего Вам не хватает этих сотен ГБ? Какую фитчу Вы хотите провернуть?

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

но а вдруг

Нигде не упоминается почему то результат непосредственного создания копии дерева с помощью хардлинков, с последующим удалением исходного дерева:

mkdir hl
cp -alr * hl
rm -rf !hl
mv hl/* .
anonymous ()
Ответ на: комментарий от anonymous
cp -r /ntfs /media/temporary
umount /ntfs
mkfs.ntfs /dev/sda2
mount /dev/sda2 /ntfs
cp -r /media/temporary/ntfs/* /ntfs

Короче,

вручную скопировать нужную информацию на другой диск, отформатировать первый и скопировать инфу со второго на первый обратно

Или мы неправильно поняли друг друга?

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

Или мы неправильно поняли друг друга?

Ну да. Я понимаю что такой финт решает все проблемы, но только вот «проблемы» возникают, когда нет возможности что то куда то скопировать. Поэтому моя идея-фикс - подменить файловую таблицу (фт) без копирования самих файлов. Естественно, такая подмена будет эффективна только на уровне нутра фс, но ежели нету инструментария, то проверить хотя бы, даст пересоздание дерева с помощью хардлинков что-нибудь, или это всё «вода»?

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

То есть, вы предлагаете забраться в нутро поколоченой ФТ; вырезать оттуда информацию, в каких кластерах находится файл, в каком порядке их собирать (я о фрагментации) и каков полный путь к файлу для каждого отдельного файла; затереть старую ФТ; создать новую, но акуратно, чтобы не было пересечений с памятью, отведённой на файлы (ибо порой ФТ равномерно рассеивается по всей площади диска, особенно если ФС журнальная, коей и является NTFS); вставить в ФТ записи о файлах, полученные во втором пункте, я правильно понимаю?

Если да, то это весьма интересная мысль. К тому же я уже давно ищу подобный способ поменять саму ФС (например, с той же NTFS на ext4 без копирования файлов на второй носитель). Один вопрос: каким образом это всё провернуть? Вы знаете какую-то утилиту для этого? Или прикажете садиться за документацию NTFS, учебник по C и пилить самому?

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

Вы знаете какую-то утилиту для этого?

Пока могу предложить только перестроение дерева с помощью хардлинков:

mkdir hl
cp -alrv !(hl) hl
rm -frv !(hl)
mv -v hl/* .
rmdir hl

! (пользуются башизмы)

Проверку перестроения на «здоровой» ntfs провёл без запинки. Осталось только провести на «больной» и определить, даст такая подмена какой-нибудь «результат» или нет.

anonymous ()