Столкнулся с проблемой подключения винта разбитого под Windows (ntfs) к машине с бубунту. При попытке монтирования выдавал ошибку —
An error occurred while accessing 'Домашняя папка', the system responded: Не удалось выполнить запрошенную операцию.: Error mounting: mount exited with exit code 13: $MFTMirr does not match $MFT (record 0). Failed to mount '/dev/sda1': Input/output error 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.
Следовать данному совету как-то не очень хотелось, то бишь перетыкать винт в машину с вендой и запускать chkdisk, а потом обратно переподключать …. брр, как-то слишком много действий.
Гугл подсказал прекрасную утилиту — ntfsfix, входящая в состав ntfsprogs, которая прекрасно справилась с данной ошибкой.
Из описания пакета —
ntfsfix — утилита которая исправляет некоторые основные ошибки NTFS. ntfsfix не является линукс-версией chkdsk. Она только исправляет некоторые базовые проблемы NTFS, сбрасывает файлы журнала NTFS, назначает проверку целостности файловой системы штатными утилитами Windows при ее следующей загрузке.
Устанавливаем —
sudo apt-get install ntfsprogs
И проверяем наш раздел —
$ sudo ntfsfix /dev/sda1 Mounting volume... $MFTMirr does not match $MFT (record 0). FAILED Attempting to correct errors... Processing $MFT and $MFTMirr... Reading $MFT... OK Reading $MFTMirr... OK Comparing $MFTMirr to $MFT... FAILED Correcting differences in $MFTMirr record 0...OK Correcting differences in $MFTMirr record 1...OK Correcting differences in $MFTMirr record 2...OK Correcting differences in $MFTMirr record 3...OK Processing of $MFT and $MFTMirr completed successfully. Setting required flags on partition... OK Going to empty the journal ($LogFile)... OK NTFS volume version is 3.1. NTFS partition /dev/sda1 was processed successfully.
где sda1 наш раздел с ntfs.
После данных нехитрых манипуляций диск легко примонтировался.
Все устройства, которые мы используем, однажды обязательно выйдут из строя; однако, чтобы не допустить потенциальных потерь, связанных с этими сбоями, мы должны стараться изо всех сил следить за состоянием этих устройств и немедленно предпринимать какие-либо действия, если мы обнаруживаем какое-либо аномальное поведение. Жесткие диски, которые мы используем с нашими компьютерными системами, также время от времени выходят из строя по нескольким причинам. Одна из таких причин — наличие битых секторов на нашем жестком диске.
Основная проблема с этими поврежденными секторами заключается в том, что мы не можем полностью удалить их с жесткого диска, чтобы избавиться от них. Максимум, что мы можем сделать, — это запретить нашей операционной системе использовать эти поврежденные сектора для размещения на них наших данных. Поэтому в этой статье мы познакомим вас с методом проверки жесткого диска на наличие ошибок и предотвращения записи данных в поврежденные сектора нашей ОС с помощью Linux Mint 20.
Метод проверки диска на наличие ошибок в Linux Mint 20:
Для проверки вашего диска на наличие ошибок в Linux Mint 20 вам потребуется выполнить следующие шаги:
- Мы будем проверять жесткий диск на наличие ошибок через командную строку в Linux Mint 20. Поэтому сначала мы запустим терминал, щелкнув значок терминала на панели задач или нажав сочетание клавиш Ctrl + Alt + T. Новое открытое окно терминала показано на изображении ниже:
- Теперь вам нужно знать о разделах вашего жесткого диска, чтобы вы могли определить часть, которую вы хотите проверить на наличие ошибок. Для этого введите в терминале следующую команду и нажмите клавишу Enter:
sudo fdisk -l
Для запуска этой команды требуются права root. Вот почему мы использовали ключевое слово «sudo» перед ним. Это также показано на следующем изображении:
- Результат этой команды покажет вам все разделы вашего жесткого диска. Мы хотим проверить часть, выделенную на изображении ниже, на наличие ошибок, используя Linux Mint 20. Здесь / dev / sda — это часть диска, которую мы хотим исследовать. В вашем случае эта часть может иметь другое имя.
- Как только вам удастся определить часть жесткого диска, которую вы хотите проверить на наличие ошибок, следующим шагом будет поиск всех плохих секторов в идентифицированной части и их перечисление в текстовом файле. Для этого вам нужно ввести следующую команду в своем терминале и затем нажать клавишу Enter:
sudo badblocks -v / dev / sda> / scan_result / badsectors.текст
Здесь команде badblocks также требуются права суперпользователя для выполнения, и она просканирует указанную часть жесткого диска (в данном случае / dev / sda) на наличие плохих секторов, и, если они найдутся, она перечислит их в файле. названные плохие секторы.txt, который будет помещен в каталог scan_result. Здесь вы должны заменить / dev / sda на точное имя части жесткого диска, которую вы хотите просканировать на наличие сбойных секторов. Эта команда также показана на следующем изображении:
- После успешного выполнения этой команды все сбойные сектора будут сохранены в сбойных секторах.txt файл. Теперь наша цель — передать это сообщение нашему Linux Mint 20, что он не должен использовать плохие сектора, упомянутые в badsectors.txt любым способом. Для этого вам нужно будет ввести следующую команду в своем терминале и затем нажать клавишу Enter:
sudo fsck -l / scan_result / badsectors.txt / dev / sda
Команде fsck также требуются права root для запуска. Эта команда предотвратит использование нашего Linux Mint 20 секторов, перечисленных в badsectors.txt при работе с разделом / dev / sda. Эта команда также показана на изображении ниже:
Заключение:
Следуя методу, описанному в этой статье, мы можем легко объединить все сбойные сектора в текстовый файл. Мы можем запретить нашей операционной системе использовать эти поврежденные сектора для записи наших ценных данных. Таким образом, мы можем не только предотвратить повреждение или потерю наших данных, но и без труда использовать жесткий диск с поврежденными секторами для повседневных задач.
Using a fsck.ntfs
solved my similar problem in a Windows ntfs partition + Ubuntu 20.XX LTS partition (can’t remember exact version):
Running lsblk -f
returns:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2 vfat FAT32 1950-4B8D 505,9M 1% /boot/efi
└─sda3 ext4 1.0 29ee8e5b-457e-4610-a503-c8142cc40d68
sdb
└─sdb1 ntfs HDD 42AEC908AEC8F607
sdc
├─sdc1 ntfs Recuperação 04C0478BC0478242
└─sdc2 ext4 1.0 8be461e1-7470-45f6-844c-7559ed2769e9 380,6G 8% /
As you can see, I need to fix my HDD labeled driver (42AEC908AEC8F607), so ln -s /bin/ntfsfix /sbin/fsck.ntfs
and after an fsck /dev/sdb1
solved for me, even loggin windows ‘refuse to mount’ FAILED:
root@bruno-andrade:/home/bruno# fsck /dev/sdb1
fsck from util-linux 2.37.2
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... FIXED
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
Thanks to @tanguy in his answer: fsck an ntfs drive in Linux
OmenRa
оп-па…
«…
omenra@omenra-MS-7360:~$ sudo apt install ntfsprogs
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет ntfsprogs недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
E: Для пакета «ntfsprogs» не найден кандидат на установку
omenra@omenra-MS-7360:~$ sudo apt search ntfsprogs
Сортировка… Готово
Полнотекстовый поиск… Готово
…
»
бида-пичаль…
Reply
ITicDigger
Xubuntu 18.04.1
Пакет ntfsprogs не найден в репозитории. Должно быть ваша статья устарела?
Reply
admin
Статья 2013 года, уже не актуальна.
Reply
Если у вас начал медленно работать жесткий диск или, того хуже, появились периодические зависания и сбои операционной системы, то это повод проверить состояние диска и определить не появились ли на нем битые сектора.
Для запуска проверки нужно загрузиться с Live CD Linux.
Или же осуществить проверку из виртуальной машины, как предложено в этой заметке. При отсутствии двух компьютеров, это позволяет продолжить работу с основной системой во время проверки. А проверка может занять не один час, в зависимости от объема и состояния сбойного диска.
Расскажу немного подробнее про этот метод:
Для загрузки Live-CD я использовал Hyper-V.
Хочу отметить что нам даже не придется устанавливать ОС для проверки диска, что не только делает этот вариант удобным, но и быстрым.
Настройка виртуальной машины.
Если вы не хотите грузится из виртуальной машины или вы сами знаете как это сделать, то смело переходите к следующему разделу
1) Заходим в «Управление дисками» и переключаем состояние проверяемого диска на «Вне сети»;
2) Скачиваем любой дистрибутив Linux. Например Ubuntu;
3) Создаем сетевой коммутатор(необходим для создания машины);
4) Открываем «Диспетчер Hyper-V»->Действие->Создать->Новая машина;В процессе создания машины нужно будет указать ранее созданные коммутатор(шаг «настройка сети») и скачанный образ Ubuntu(шаг «Параметры установки»)
5) Перейти в параметры машины->Контроллер 0 IDE->
Добавить Жесткий диск->Физический жесткий диск;
Для того что бы последний пункт был активен, диск должен быть переведен в статус «Вне сети»6) Запустить виртуальную машину кнопкой «Пуск»;
7) При загрузке с указанного образа выбрать
«Запустить Ubuntu без установки»;
После загрузки графической оболочки Live CD открываем терминал.
Проверка и «лечение» диска
Сначала нужно определить под каким именем в системе определился сбойный диск. Для этого используем команду:
sudo fdisk -l
Для запуска сканирования на бэдблоки используем команду:
sudo badblocks -s /dev/sdb1 > /badblocks.txt
Ключ -s позволит вместо полотна текста видеть прогресс сканирования диска в процентах. А для того что бы не записывать найденные сбойные сектора руками, перенаправляем их в текстовый файл.
Следующая команда запускает утилиту, которая пометит на диске сектора(взяв их из нашего файла), которые системе не нужно использовать:
sudo e2fsck -l /badblocks.txt /dev/sdb1
В конце всей процедуры рекомендуется запустить проверку на целостность файловой системы:
sudo fsck -f /dev/sdb1