Короткое чтение при попытке открыть раздел

Примечание: Моя информация может устареть. Я знаю там, уже много Уэйленда, освобождает в Ubuntu.

Уэйленд является все еще относительно новым, и это - длинный путь от хорошо протестированного и завершенного. Несколько дистрибутивов мигрируют к Уэйленду, и мы будем, скорее всего, видеть находящиеся в Уэйленде дистрибутивы в следующем году.

X использовался в течение многих десятилетий и существует много старых приложений, кто требует X работать. Существует много приложений, которые будут портированы, прежде чем распределение сможет полностью сделать шаг к Уэйленду.

X потребностей, которые будут портированы для выполнения как приложение под Уэйлендом, затем может мы использовать X в качестве слоя совместимости для старых приложений.

7
09.02.2014, 22:10
2 ответа

Могла бы все еще быть надежда, но Ваш диск, кажется, имеет аппаратные проблемы (моя интерпретация ошибки чтения в dmesg вывод).

Необходимо попытаться сделать копию того, что является восстанавливаемым от того раздела на другой диск (для уменьшения доступа к диску). Использовать ddrescue для этого это могло бы требовать времени, но получает максимум если не все восстанавливаемые данные раздела.

Если возможно запустите с другого диска, с Живого CD, или подключите диск к другому компьютеру, который имеет его собственный Linux для начальной загрузки от. Причина, которую я сделал бы так, состоит в том что ошибки чтения при выполнении ddrescue вероятно, оказывает влияние на скорость доступа к диску на других разделах.

После того как у Вас есть та копия, позволяет вызову, что оригинал, как файл на другом диске, делает копию той копии. Затем попытайтесь сделать, файловая система проверяет ту копию. Если то восстановление скремблирует копию, можно запустить с оригинала и попробовать еще раз, что-то еще.

4
27.01.2020, 20:14
  • 1
    Спасибо, я теперь клонирую раздел с ddrescue к другому физическому диску. –  dotancohen 09.02.2014, 23:23
  • 2
    . Я смог скопировать диск с ddrescue и восстановите большинство файлов с e2fsck. Забавная вещь состоит в том, что большинство остаточных файлов было новейшими файлами, для которых у меня не было резервного копирования. Интересно, внутренне ли это ext4. –  dotancohen 10.02.2014, 11:13
  • 3
    @dotancohen я рад, что Вы получили по крайней мере немного назад. Не назвал бы это забавным, хотя это Вы пропустили новые. У меня есть слишком мало знания о журналировании файловых систем для объяснения, почему это. Почему Вы не поднимаете его как новый вопрос, или я могу сделать это, если Вы не хотите? –  Timo 10.02.2014, 11:16
  • 4
    Да, забавный не правильное слово, но это - мой способ горевать! Я задам новый вопрос, поскольку мне также интересно. Спасибо Timo! –  dotancohen 10.02.2014, 11:18
  • 5
    Спасибо, спросил я здесь. –  dotancohen 10.02.2014, 11:26

(Я знаю, что это старый вопрос, Я сам наткнулся на эту проблему и вернул свою FS к жизни без ddrescue, так что я поделюсь опытом для всех, кто с этим столкнется)

Ext файловых систем, хранящих резервные копии суперблока - для случая, подобного этому.

Сначала определите местоположение резервных копий (Убедитесь, что у вас есть опция -n! иначе это сотрет новую файловую систему):

mke2fs -n /dev/sdxx

Это тестовый запуск (т.е. без записи) рутины создания FS. Он сообщит вам о смещениях в том месте, где будет помещать резервные копии суперблоков, если он создавал файловую систему. Если вы знаете, что размер вашего FS-блока отличается от 4096, вы должны также указать параметр -b {blocksize}, чтобы получить правильные номера.

Для блоков размером 4096, первый резервный суперблок будет иметь размер 32768. Если следующие операции не удастся выполнить с таким же сообщением об ошибке плохого суперблока/кратковременного чтения, попробуйте сделать резервную копию следующего суперблока из списка mke2fs, который вам дали.

Далее, вы можете либо подключить файловую систему с помощью резервной копии суперблока, как эта

mount -o sb=32768 /dev/sdxx /mnt/sdxx

, затем изучить FS из файлового менеджера, скопировать неповрежденные файлы и т.д.

Или, чтобы исправить FS, можно запустить fsck с таким резервным суперблоком как этот

e2fsck -fy -b 32768 /dev/sdxx

Здесь -f заставляет его сканировать диск, даже если он не грязный, и -y отвечает "да" на все запросы по исправлению вещей. Опция -b, помимо указания суперблока резервной копии, заставит его обновить исходный суперблок с информацией из резервной копии.

-b после этого вы должны получить обратно свою файловую систему.

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

Error writing block 1 (Attempt to write block from filesystem resulted in short write)

Очевидно, что основной суперблок не обновлен и весь прогон e2fsck напрасен.

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

dd if=/dev/zero of=/dev/sdxx bs=4096 count=1 seek=0

Это запишет 1 4096-размерный блок нулей в sdxx со смещением 0. Не забудьте учесть разный размер блока, если вы так считаете.

После этого вы сможете записать в суперблок (который будет на другом физическом секторе прозрачно для вас). Теперь вы снова запустите команду e2fsck выше и она должна успешно записать суперблок, позволяющий нормально смонтировать FS.

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

e2fsck -fccy /dev/sdxx

PS Kudos to @Nemo на этом найденном диске: в случае, если все резервные копии суперблока вашей FS повреждены, mke2fs/mkfs имеет опцию -S, которая воссоздает дескрипторы суперблока и группы, как будто создавая новую файловую систему, не трогая ничего другого. Но вы должны быть абсолютно уверены, что размер вашего блока правильный и страница man говорит, что вы должны запустить e2fsck после этого, и нет никаких гарантий, что данные останутся для спасения. Прочитайте man-страницу и добавьте плюс к этому ответу .

13
27.01.2020, 20:14

Теги

Похожие вопросы