Не удалось присоединить Том 101 ГБ
Error mounting /dev/sda4 at /media/dashka/B490E48B90E45600: Command-line `mount -t «ntfs» -o «uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000» "/dev/sda4" "/media/dashka/B490E48B90E45600"' exited with non-zero exit status 13: Failed to load runlist for $MFT/$DATA.
highest_vcn = 0x204f, last_vcn — 1 = 0x263f
Failed to load $MFT: Ошибка ввода/вывода
Failed to mount '/dev/sda4': Ошибка ввода/вывода
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
Ставить винду было совсем неохота, памяти на ноуте свободной практически не было. Я очень долго мучился, многое перепробовал, но, все-таки, нашел выход. Итак, для начала нам нужен другой ПК с свободным местом, которого хватит на полный бэкап поврежденного раздела, либо нам нужно столько же места на пострадавшем компьютере. Последнее, конечно, намного проще, чем первое.
Если на пострадавшем компьютере достаточно места
В этом случае качаем утилиту testdisk.
Далее желательно сделать точный бэкап поврежденного раздела на внешний носитель, как это правильно сделать, я более подробно опишу во втором способе, когда нам не хватает места. С этой утилитой все понятно, мне даже компилировать ее не пришлось. Я просто запустил исполняемый файл testdisk_static. Далее можно и самому разобраться. Если же не сработало, то следует использовать утилиту photorec. Запускается она так же, и идет в комплекте с утилитой testdisk, в той же папке. Минусы утилиты photorec — неполное восстановление, то есть все файлы будут вперемешку и утеряются дата создания, изменения, название и прочее. Максимум, что можно — это отсортировать, что куда.
mv /путь/к/восстановленным/файлам/*.{jpg,png} ./Photo
mv /путь/к/восстановленным/файлам/*.mov ./Видео\ Нокия
mv /путь/к/восстановленным/файлам/*.mp4 ./Фильмы
И т.п.
Если на пострадавшем компьютере недостаточно места
В целом, все аналогично первому варианту, НО: для начала нужно сделать точную копию битого раздела с пострадавшего компьютера на компьютер, где достаточно памяти для проделывания операций выше. Это можно сделать, подключив компьютеры проводом USB-на-USB, по локальной сети, или через интернет. Я не особый умелец, поэтому для второго варианта я додумался только использовать ssh.
Как сделать этот бэкап
sudo dd if=/dev/sdaX bs=8192 | ssh hostname 'dd of=/home/user/backup.img bs=8192' && echo 'all right' > ~/DD.log || echo 'Неудача' > ~/DD.log; ssh hostname poweroff; sudo shutdown
X — номер поврежденного раздела, смотреть в программах по типу GParted или в описании самой ошибки. ssh hostname — заменяется на вашу конфигурацию ssh(в моем случае это 'ssh -p 31182 -i .ssh/id_rsa nikitosios@192.168.1.10'). Бэкап 100 ГБ у меня занял всю ночь, около 10-11 часов.
1) Запустить еще один терминал.
2) Прописать
ps -a
и найти PID утилиты dd.3) Прописать
while true; do sudo kill -USR1 [PID утилиты dd] ; sleep 10; done
и ввести пароль.4) Смотреть на процесс выполнения в терминале, где работает утилита dd.
&& echo 'all right' > ~/DD.log || echo 'Неудача' > ~/DD.log
— команда, чтобы утром глянуть, все ли нормально cкопировалось, или нет. Результат будет записан в файле DD.log в домашней папке. ssh hostname poweroff; sudo shutdown
— выключить компьютеры.Хорошо, у нас есть точная копия раздела. Что дальше с ней делать-то? А тут мне пришлось сделать довольно хитрый ход. Поскольку testdisk и photorec ищут только устройства, подключенные к ПК, нужно выставить наш образ как устройство. Для этого я создал вот такую символическую ссылку:
ln -s /dev/sdv /home/user/backup.img
Хитро, не правда ли? Теперь можно смело восстанавливать наш /dev/sdv по примеру, описанному под заголовком «Если на пострадавшем компьютере достаточно места».
Для начала советую попробовать метод пользователя S-trace:
Поставить VirtualBox, в него поставить windows (идеологическую сторону отбросим — вопрос стоИт чисто технический), затем (после установки windows) пробросить физический диск в виртуалку при помощи команды vboxmanage internalcommands createrawvmdk -filename ~/sda.vmdk -rawdisk /dev/sda (возможно придётся немного пободаться с несущей системой за право прямого доступа к /dev/sda).
a) Из под windows попробовать провести chkdsk этому разделу
b) Или же расширить его обратно при помощи стандартных средств работы с диском
c) Если раздел смонтировался, но не доступен для записи — можно провести копирование данных через «общую папку» VirtualBox или по сети между виртуалкой и несщуей системой.
P.S. С тестдиском придется потанцевать, так что для начала лучше восстановить все photorec'ом, и, если результат вас не устроит, то можно танцевать с testdisk'oм.
Ну, вот и все. Надеюсь, кому-то поможет этот пост.
Комментарии (36)
dartraiden
14.11.2016 18:17Минусы утилиты photorec — неполное восстановление, то есть все файлы будут вперемешку и утеряются дата создания, изменения, название и прочее. Максимум, что можно — это отсортировать, что куда.
Я бы сначала попробовал загрузиться с Windows LiveCD (тысячи их) и пройтись R-Studio/UFS Explorer/DMDE. Впрочем, эти утилиты (они платные) есть и для Linux. Сталкивался с ситуацией, когда там, где photorec предлагал восстановить лишь файлы по типам, R-Studio запросто восстанавливала полную структуру каталогов.AllexIn
14.11.2016 18:22R-Studio очень хорошо. Покупал их и активно пользовался. Лучше софта для восстановления не видел. Единственный минус — не развиваются уже лет пять. Новые фс вообще не видит и не понимает. :(
dartraiden
14.11.2016 18:27+1Так получилось, что я слежу за актуальностью варёзного топика по этой утилите на ру-борде. Обновления выходят регулярно под все платформы (Windows/Linux/Mac), как для самой R-Studio, так и для её агента, позволяющего подключаться к удалённым машинам, где он запущен. Загрузочный диск обновляется реже, но тоже от 2016 года.
Список поддерживаемых ФС: NTFS, NTFS5, ReFS, FAT12/16/32, exFAT, HFS/HFS+ (Macintosh), Little and Big Endian variants of UFS1/UFS2 (FreeBSD/OpenBSD/NetBSD/Solaris) и Ext2/Ext3/Ext4 FS (Linux).
Есть, как видно, даже поддержка достаточно новой ReFS. Не хватает Btrfs и F2FS, согласен.AllexIn
14.11.2016 18:31ZFS, XFZ, Btrfs… нету
ReFS — как разу же пять лет почти.
R-Studio обновляют минорно ИМХО. Добавляют новые модификации уже поддерживаемых фс и всё(ReFS единственное исключение).
DanXai
15.11.2016 09:17+1Я не понял вот этого:
подключив компьютеры проводом USB-на-USB
. Это как?Nikitosios
15.11.2016 17:16Есть провод USB-на-MicroUSB, это обычный USB для смартфона. И есть провод, где с обоих сторон стандартный USB. Об этом проводе и написано в цитате.
DanXai
15.11.2016 17:47+1Угу. «Стандартный». Хотите сказать, если я раздраконю два кабеля Usb-MicroUSB и соберу USB-USB, то смогу передавать информацию с компа на комп? Ерунда какая! Без специального контроллера и драйверов на него в системе это невозможно.
Nikitosios
16.11.2016 21:18Нет, не хочу я так сказать. Вы правы, но суть та же. Это кабель USB-на-USB, я не стал подробно писать, что за кабель
rrrav
15.11.2016 13:21ln -s /dev/sdv /home/user/backup.iso
— здесь не перепутаны случаем TARGET и DIRECTORY?Nikitosios
15.11.2016 17:17Нет, все правильно. Это надо, чтобы программа считала виртуальный образ за реально подключенный жесткий диск.
crlam0
15.11.2016 17:18Не совсем в тему топика, но все же может кому-нибудь будет полезно: неделю назад столкнулся с такой проблемой: надо было изменить размер раздела NTFS в большую сторону, с 64гб до 128гб. Дело элементарное: LiveCD->GParted->Resize, но! Раздел был до этого склонирован CloneZilla с бэдового HDD, и заодно скопировались данные о bad секторах исходного NTFS раздела. GParted отказался изменять размер раздела. Не долго думая я попробовал изменить размер с помощью Acronis Disk Director. В конце операции он выдал ошибку, но размер раздела изменил. Казалось бы победа, но Win7 увидела только исходные 64гб, хотя в диспетчере дисков раздел нужного размера. Помог опять же LiveCD, в котором я сделал ntfsfix -b -d /dev/sdaX: -b очищает список bad секторов (жесткий уже новый), -v помечает партицию как проверенную (после клонирования раздел неоднократно проверялся виндовым chkdsk, тот ошибок не выдавал). После этого я спокойно в Acronis DD изменил размер раздела в меньшую, а потом и в большую сторону.
Способ костыльный, но время у меня было ограничено. Если бы времени было больше, скорее всего без всякого ntfsfix можно было обойтись chkdsk /R, хотя вряд ли бы он пометил фантомные bad сектора как рабочие.
P.S. В качестве LiveCD был использован SystemRescueCD 4.7.0.
P.P.S. Я сначала попробовал способ, найденный на StackOverflow: Консоль восстановления с установочного DVD -> diskpart -> select disk # -> select partition #-> expand, не было ни ошибок, ни толку :( Вместо # понятное дело были актуальные номера.Angel2S2
16.11.2016 12:32Не знаю, на сколько актуально будет в вашем случае… Мне бывает нужно увеличить размер диска на виртуальных машинах (win 7 — 2012)… После загрузки винды (в ВМ) открываю администрирование -> управление компьютером -> управление дисками и там выбираю «расширить том» («на горячую»). Никаких проблем не возникает. Хотя, перед этим, все равно делаю снапшот ВМ.
crlam0
16.11.2016 13:23Вы не совсем поняли: флаги bad секторов скопировались на раздел, с ним ни одна нормальная система не должна позволить что-то сделать, но Acronis DD позволил, в итоге и возникла странная ситуация. В этом и посыл моего комментария, ntfsfix -b -d решил проблему.
На счет резервных копий у меня проблем небыло: КлонЗиллой скопированный бэдовый винт был перед глазами. Если бы ничего не получилось то тогда тяжелая артиллерия в виде ddrescue,Angel2S2
16.11.2016 14:05На счет бэдов упустил. Впредь буду внимательнее.
Честно сказать, я всегда считал, что информация о bad секторах заносится в контроллер диска или что-то такое (в тонкости не вдавался) и никак не связана с ФС. Все же bad сектор располагается на более низком уровне, чем ФС и разделы. А значит, и клонзила не должна была бэды скопировать, все же она уровнем выше, нежели бэды. Не знаю как сейчас, но раньше в клонзилле был набор утилит для разных ФС, которые и запускались, в зависимости от того, какая ФС на разделе диска. Помню в expert mode можно было выбрать, что использовать для клонирования, что-то типа ntfsclone, dd, partclone и т.п.crlam0
16.11.2016 17:29На счет КлонЗиллы Вы абсолютно правы: она ntfclone использует. Но NTFS, да и FAT я думаю, на своем уровне хранят данные о BAD секторах, просто для того чтобы к ним больше не обращаться. На уровне контроллера жесткого REMAP умеют не все, но он делается прозрачно для ФС. Иногда с помощью той же Виктории можно заставить его сделать, но отнюдь не всегда. В любом случае если пошли ремапы — винт кладется на полку.
Angel2S2
16.11.2016 18:13Я изначально и говорил о remap'ах. Хотя выразился не ясно, да.
Теперь понял… Вы говорили об уровне ФС, а я сразу о железном уровне подумал, про remap'ы, т.к. прочно забыл, что ФС тоже умеет избегать бэдов.
Спасибо, освежили мне память :)
S-trace
15.11.2016 17:20+1Жаль, что в статье абсолютно не раскрыта её тема.
Нет ни одного упоминания о восстановлении повреждённого раздела NTFS, если его уменьшили до минимального размера, вся суть статьи сводится к фразе «используйте программы для восстановления данных чтобы вытащить свои данные оттуда».
Я бы предпочёл, чтобы такие статьи содержали анализ причин появления этой проблемы и сведения о ремонте существующей ФС.
По описанию в статье проблема то какая? ntfs-3g не смог смонтировать раздел. И только лишь.
Что ещё можно было бы попробовать, прежде чем применять testdisk:
0. Попробовать увеличить раздел обратно через gparted, к примеру.
1. Попробовать смонтировать раздел на чтение при помощи ядерного драйвера NTFS
2. Поставить VirtualBox, в него поставить windows (идеологическую сторону отбросим — вопрос стоИт чисто технический), затем (после установки windows) пробросить физический диск в виртуалку при помощи команды vboxmanage internalcommands createrawvmdk -filename ~/sda.vmdk -rawdisk /dev/sda (возможно придётся немного пободаться с несущей системой за право прямого доступа к /dev/sda).
2a. Из под windows попробовать провести chkdsk этому разделу
2b. Или же расширить его обратно при помощи стандартных средств работы с диском
2c. Если раздел смонтировался, но не доступен для записи — можно провести копирование данных через «общую папку» VirtualBox или по сети между виртуалкой и несщуей системой.Nikitosios
15.11.2016 17:27Про раскрытие темы: я в файловых системах особо не разбираюсь, поэтому предоставляю это другим людям.
Vevin
15.11.2016 17:24Live CD и Active Recovery File (Partition), мне обычно помогали в восстановлении разделов, либо файлов.
davydt
15.11.2016 17:24Интересно было бы такой раздел все-таки подключить к Windows и посмотреть, что она про него скажет. Загрузившись, к примеру, с установочного диска любого современного дистрибутива Windows.
Repairkomp
15.11.2016 17:24А не проще ли было воспользоваться программой R.saver?
Nikitosios
15.11.2016 17:26Когда имелась эта проблема, не знал о такой программе. Не могу точно утверждать, поможет или нет.
Radjah
16.11.2016 21:21Ставить винду было совсем неохота
Загружаем установщик с диска/флешки
Нажимаем Shift+F10
?????
PROFIT!
alltiptop
понимаю, то «так исторически сложилось», но зачем ntfs раздел на ноутбуке вовсе без венды?
AllexIn
Был NTFS — винду убрали, раздел остался.
Зачем его убирать? Просто чтобы не было?
equeim
Хотя бы потому, что NTFS в GNU/Linux работает чрезвычайно медленно.
Nikitosios
Была винда, поставил линукс, а раздел не монтируется. Ну а дальше при первой же возможности следует убрать NTFS и перенести всю инфу с него на раздел Ext4.