Когда, при загрузке, операционная система сообщает о наличии ошибок в файловой системе на одном из разделов, то заслуживает незамедлительно сделать в linux проверку диска на ошибки. Любой уважающий себя user не должен забывать, что периодическая проверка жестких дисков на битые сектора и проверка атриторен на ошибки является примером здравого смысла. Для проверки разделов жесткого диска советуем использовать утилиту FSCK (file system consistency check), поскольку утилита FSCK предустановленна на основной массе операционных систем семейства Linux.
Примером хорошего тона и здравого резона является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная испытание диска на ошибки записи и т.п. Разберёмся что такое битые сектора. Бэд-сектор, Повреждённый сектор — сбойный (не читающийся) или не внушающий доверие сектор диска; кластер, содержащий сбойные сектора, или кластер помеченный таковым в текстурах файловой системы операционной системой. Следовательно, если в битом секторе были этые, то их ещё возможно восстановить, пока битых секторов не стало слишком много для конкретного файла. Собрать список битых секторов можно с помощью команды badblocks.
Содержание статьи
- 1 Проверка диска на колоченные секторы в linux с помощью badblocks
- 2 Исправление ошибок файловой системы fsck
- 3 Проверка диска на битые секторы в linux с поддержкою smartmontools
Проверка диска на колоченные секторы в linux с помощью badblocks
Badblocks — стандартная утилита Linuх для проверки (Тестирование Инвентаризация Допинг-контроль Проверка подлинности Служебная проверка Проверка орфографии Проверка на дорогах Камеральная налоговая проверка Выездная налоговая проверка Проверка) на колоченные секторы. Она устанавливается по-умолчанию практически в любой дистрибутив и с ее помощью можно проверить как твердый диск, так и внешний накопитель. Для начала давайте посмотрим, какие накопители подключены к ушей системе и какие на них имеются разделы. Для этого нам нужна еще одна стандартная утилита Linux — fdisk.
Собрать список битых секторов можно с помощью команды badblocks.
Делается это так:
sudo badblocks -v /dev/hda1 > ~/badblocks.list
Где /dev/hda1 — это разоблачил диска, что вы хотите проверить.
Желательно делать проверку в однопользовательском режиме, когда это не внешний диск. Тогда его просто стоит отмонтировать. После этого мы можем швырнуть утилиту fsck, явно указав ей список битых секторов для того, чтобы она их подметить как «битые» и попыталась восстановить с них данные. Делается это так:
sudo fsck -t ext4 -l ~/badblocks.list /dev/hda1
Где ext4 — это тип файловой системы нашего разоблачила диска, а /dev/hda1 — сам раздел диска.
Естественно, что выполнять команды нужно с правами суперпользователя.
sudo fdisk -l
Метеопараметром -l мы говорим утилите fdisk, что нам нужно показать список разделов и выйти. Теперь, когда мы знаем, какие разделы у нас есть, мы можем проверить их на битые секторы. Для этого мы станем использовать утилиту badblocks следующим образом:
sudo badblocks -v /dev/sda1 > badsectors.txt
Если же в итоге были найдены битые секторы, то нам надо дать указание операционной системе не вписывать в них информацию в будущем. Для этого нам понадобятся утилиты Linux для работы с файловыми системами:
e2fsck. Когда мы будем исправлять раздел с файловыми система Linux ( ext2,ext3,ext4).
fsck. Если мы станем исправлять файловую систему, отличную от ext.
Исправление ошибок файловой системы fsck
В моей а не твоей статье «Проверка файловой системы на ошибки с помощью fsck на Linux» я расскажу как возможно проверить файловую систему на вашей ОС в Linux. Некоторым системам необходим пароль root дабы запустить fsck или других аналогичных утилит, когда не могут загрузить полностью ОС. В данном случае стоит выполнить проверку диска загрузившись в single-user mode , либо – загрузившись с иного диска. Fsck расшифровывается как «файловая система Проверка целостности» (file system consistency check).
На основной массе систем, Fsck запускается во время загрузки, если определенные условия. Код выхода ворачивается, когда несколько файловых систем которая проверяется побитовое ИЛИ (OR) для каждой файловой системы, какая проверяется. В действительности, Fsck — это просто фронт-энд для различных проверочных утилит для файловых систем (fsck.fstype), какие доступны на Linux. Файловая система (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство) для конкретных проверок ищет сначала в /sbin, а потом в /etc/fs и /etc/, и, наконец в директориях, перечисленных в переменной PATH (среда переменного кружения).
Запуск и исполнение FSCK на смонтированной файловой системе может привести к повреждению данных, поэтому применяйте данный материал на свой страх и риск.
Автор не несет ответственности за любой вред, который вы можете причинить. Fsck расшифровывается как «File System ChecK», то есть «испытание файловой системы» и используется для проверки и исправления файловых систем в Linux. В качестве верифицируемой ФС может быть задан раздел (например, /dev/sda1 или /dev/sda8), точка монтирования (/, /home, /usr), или же точна тома или UUID (например, UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd или LABEL=root).
Как обычно fsck пытается параллельно проверять файловые системы на нескольких разделах для уменьшения времени, нужного для проверки всех файловых систем. Arch Linux при загрузке автоматически будет бросать fsck для проверки систем, если выполняется одно из требований (например, 180 суток работы системы без проверки разделов или 30 монтирований оных). Обычно нет необходимости переопределять проем между проверками.
Для того, чтобы проверить диск в Linux на наличие опечаток файловой системы нам необходимо сначала выяснить имена файловых систем командой:
df -h
Дальше нам необходимо размонтировать файловую систему, которую мы будем проверять командой:
umount /dev/hda1
И сейчас запускаем утилиту проверки файловой системы и исправления ошибок на ней командой
fsck /dev/hda1
В том варианте, когда не представляется возможным размонтировать файловую систему, к примеру, когда нужно испробовать корневую файловую систему (/). Перезагрузиться в однопользовательском режиме (команда reboot, и при загрузке необходимо передать ядру параметр single). Перемонтировать корневую файловую систему в режиме «лишь чтение» командой.
mount -о remount rо -t ext3 /
Здесь параметр -о команды mount указывает на присутствие дополнительных опций. Опция remount rо означает перемонтировать в режиме «только чтение». Метеопараметр -t указывает тип файловой системы – ext3, а последний параметр – указывает что это корневая файловая система (/).
И сейчас проверить файловую систему
fsck -y -f -c /dev/hda1
Проверка диска на битые секторы в linux с поддержкою smartmontools
Теперь давайте рассмотрим более современный и надежный способ проверить диск на колоченные секторы linux. Современные накопители ATA/SATA ,SCSI/SAS,SSD имеют встроенную систему самодисциплины S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology, Технология самоконтроля, анализа и отчетности), которая изготовляет мониторинг параметров накопителя и поможет определить ухудшение параметров работы накопителя на ранешних стадиях. Для работы со S.M.A.R.T в Linux есть утилита smartmontools. Давайте перейдем к работе с утилитой. Включим следующую команду с параметром -H,чтобы утилита показала нам информацию о состоянии накопителя:
sudo smartctl -H /dev/sda1
Как видим, проверка диска («круглое блюдо») — круг (низкий цилиндр) или предмет в виде круга) на битые секторы linux завершена и утилита говорит нам, что с накопителем все в распорядке! Дополнительно, можно указать следующие параметры -a или —all, чтобы получить еще больше информации о накопителе, или -x и —xall, дабы просмотреть информацию в том числе и об остальных параметрах накопителя.
Компьютер представляет собой устройство, работа которого основана на взаимодействии множества компонентов. Со временем они могут вызывать сбои в работе. Одной из частых причин неполноценной работы машины становятся битые сектора на диске, поэтому периодически его нужно тестировать. Linux предоставляет для этого все возможности.
Что такое битые блоки и почему они появляются
Блок (сектор) – это маленькая ячейка диска, на которой в виде битов (0 и 1) хранится информация. Когда системе не удается записать очередной бит в ячейку, говорят о битом секторе. Причин возникновения таких блоков может быть несколько:
- брак при производстве;
- отключение питания в процессе записи информации;
- физический износ диска.
Изначально практически на всех носителях имеются нарушения. Со временем их количество может увеличиваться, что говорит о скором выходе устройства из строя. В Linux тестировать диск на ошибки возможно несколькими способами.
Проверка диска Linux
На ядре Linux работает несколько ОС, среди которых Ubuntu и Debian. Процедура проверки диска универсальная и подходит для каждой из них. О том, что носитель пора тестировать, стоит задуматься, когда на дисковую систему оказывается большая нагрузка, скорость работы с носителем (запись/чтение) значительно уменьшилась, либо эти процедуры и вовсе вызывают ошибки.
Многие знакомы с программой на Windows – Victoria HDD. Разработчики позаботились о написании ее аналогов для Linux.
Badblocks
Badblocks – дисковая утилита, имеющаяся в Ubuntu и других дистрибутивах Linux по умолчанию. Программа позволяет тестировать как жесткий диск, так и внешние накопители.
Важно! Все приведенные в статье терминальные команды начинаются с параметра sudo, так как для выполнения требуются права суперпользователя.
Перед тем, как тестировать диск в Linux следует проверить, какие накопители подключены к системе, с помощью утилиты fdisk-l. Она также покажет имеющиеся на них разделы.
Теперь можно приступать к непосредственному тестированию на битые сектора. Работа Badblocks организовывается следующим образом:
badblocks -v /dev/sdk1 > bsector.txt
В записи используются следующие команды и операнды:·
- -v – выводит подробный отчет о проведенной проверке;·
- /dev/sdk1 – проверяемый раздел;·
- bsector.txt – запись результатов в текстовый файл.
Если при проверке диска нашлись битые блоки, нужно запустить утилиту fsck, либо e2fsck, в зависимости от используемой файловой системы. Они ограничат запись информации в нерабочие сектора. В случае файловых систем ext2, ext3 или ext4 выполняется следующая команда:
fsck -l bsector.txt /dev/sdk1
В противном случае:
fsck -l bsector.txt /dev/sdk1
Параметр -l указывает программе, что битые блоки перечислены в файле bsector.txt, и исключать нужно именно их.
GParted
Утилита проверяет файловую систему Linux, не прибегая к текстовому интерфейсу.
Инструмент изначально не содержится в дистрибутивах операционной системы, поэтому ее необходимо установить, выполнив команду:
apt-get install gparted
В главном окне приложения отображаются доступные диски. О том, что носитель пора тестировать, понятно по восклицательному знаку, расположенному рядом с его именем. Запуск проверки производится путем щелчка по пункту «Проверка на ошибки» в подменю «Раздел», расположенном на панели сверху. Предварительно выбирается нужный диск. По завершении сканирования утилита выведет результат.
Проверка HDD и других запоминающих устройств приложением GParted доступна для пользователей ОС Ubuntu, FreeBSD, Centos, Debian и других и других дистрибутивов, работающих на ядре Linux.
Smartmontools
Инструмент позволяет тестировать файловую систему с большей надежностью. В современных жестких дисках имеется встроенный модуль самоконтроля S. M. A. R. T., который анализирует данные накопителя и помогает определить неисправность на первоначальной стадии. Smartmontools предназначен для работы с этим модулем.
Запуск установки производится через терминал:
- apt install smartmontools – для Ubuntu/Debian;
- yum install smartmontools – для CentOS.
Для просмотра информации о состоянии жесткого диска, вводится строка:
smartctl –H /dev/sdk1
Проверка на ошибки занимает различное время, в зависимости от объема диска. По окончании программа выведет результат о наличии битых секторов, либо их отсутствии.
Утилита имеет и другие параметры: -a, —all, -x, —xall. Для получения дополнительной информации вызывается справка:
man smartctl –h
Safecopy
Когда возникает потребность тестировать винчестер в Linux, стоит быть готовым к любому результату.
Приложение Safecopy копирует данные с поврежденного устройства на рабочее. Источником могут быть как жесткие диски, так и съемные носители. Этот инструмент игнорирует ошибки ввода/вывода, чтения, битые блоки, продолжая беспрерывно работать. Скорость выполнения максимально возможная, которую обеспечивает компьютер.
Для установки Safecopy на Linux в терминал вводится строка:
apt install safecopy
Сканирование запускается командой:
safecopy /dev/sdk1 /home/files/
Здесь первый путь обозначает поврежденный диск, второй – директорию, куда сохранятся файлы.
Программа способна создать образ файловой системы нестабильно работающего запоминающего устройства.
Что делать, если обнаружена ошибка в системной программе Ubuntu
Установка нового программного обеспечения или изменения системных настроек могут вызвать сообщение «Обнаружена ошибка в системной программе». Многие его игнорируют, так как на общей работе оно не отражается.
С проблемой обычно сталкиваются пользователи Ubuntu версии 16.04. Тестировать HDD в этом случае нет необходимости, так как проблема скорее заключается именно в программном сбое. Сообщение оповещает о непредвиденном завершении работы программы и предлагает отправить отчет разработчикам. При согласии откроется окно браузера, где требуется заполнить форму из 4 шагов. Такой вариант вызывает сложности и не гарантирует исчезновения ошибки.
Второй способ поможет избежать появления сообщения лишь в том случае, если оно вызывается одной и той же программой. Для этого при очередном оповещении нужно установить галку на опцию «Не показывать больше для этой программы».
Третий метод – отключить утилиту Apport, которая отвечает в Linux за сбор информации и отправку отчетов. Такой подход полностью исключит всплывание окон с ошибками. Возможно отключение только показа уведомлений, оставляя службу сбора в рабочем состоянии. Для этого необходимо выполнить:
gsettings set com.ubuntu.update-notifier show-apport-crashes false
Данные продолжат собираться в папке /var/crash. Их периодически необходимо чистить, чтобы они не заполняли дисковое пространство:
rm /var/crash
Для полного отключения служб Apport, в терминал вводится запись:
gksu gedit /etc/default/apport
В появившемся тексте значение поля enable меняется с 1 на 0. В дальнейшем, чтобы снова включить службу, возвращаются настройки по умолчанию.
Заключение
Для предотвращения потери файлов жесткий диск и съемные носители рекомендуется периодически тестировать. Linux предлагает несколько подходов к решению задачи. На выбор предоставляется перечень утилит, которые выявляют поврежденные сектора и обеспечивают перенос информации на нормально функционирующее устройство.
Introduction
The fsck (File System Consistency Check) Linux utility checks filesystems for errors or outstanding issues. The tool is used to fix potential errors and generate reports.
This utility comes by default with Linux distributions. No specific steps or an installation procedure is required to use fsck. Once you load the terminal, you are ready to exploit the functionalities of the tool.
Follow this guide to learn how to use fsck to check and repair filesystem on a Linux machine. The tutorial will list examples of how to use the tool and for which use cases.
Prerequisites
- Linux or UNIX-like system
- Access to a terminal or command line
- A user with root permissions to run the tool
When to Use fsck in Linux
The fsck tool can be used in various situations:
- Use fsck to run a filesystem check as preventive maintenance or when there is an issue with your system.
- One common problem fsck can diagnose is when the system fails to boot.
- Another one is when you get an input/output error when the files on your system become corrupt.
- You can also use the fsck utility to check the health of external drives, such as SD cards or USB flash drives.
Basic fsck Syntax
The basic syntax for the fsck utility follows this pattern:
fsck <options> <filesystem>
In the above example, filesystem
can be a device, a partition, a mount point, etc. You can also use filesystem-specific options at the end of the command.
There are a few steps to do before you check and repair your file system. You need to locate a device and unmount.
View Mounted Disks and Partitions
To view all mounted devices on your system and check disk location, use one of the available tools in Linux.
One method to locate the disk you want to scan is to list the filesystem disks with the df
command:
df -h
The tool prints the data usage on your system and filesystems. Take note of the disk you want to check with the fsck
command.
To view partitions for your first disk, for example, use the following command:
sudo parted /dev/sda 'print'
sda is how Linux refers to your first SCSI disk. If you have two, the second would be sdb, and so on.
In our example, we got one result since there was only one partition on this virtual machine. You will get more results if you have more partitions.
The disk name here is /dev/sda
and then the number of partitions is shown in the Number column. In our case, it is one: sda1.
Unmount the Disk
Before you can run a disk check with fsck
, you need to unmount a disk or partition. If you try to run fsck
on a mounted disk or partition, you will get a warning:
Make sure to run the unmount
command:
sudo umount /dev/sdb
Replace /dev/sdb
with the device you want to unmount.
Note that you cannot unmount root filesystems. Hence, now fsck
can’t be used on a running machine. More on that towards the end of the guide.
Run fsck to Check for Errors
Now that you unmounted the disk, you can run fsck
. To check the second disk, enter:
sudo fsck /dev/sdb
The above example shows the output for a clean disk. If there are multiple issues on your disk, a prompt appears for each one where you have to confirm the action.
The exit code the fsck utility returns is the sum of these states:
Mount the Disk
When you finish checking and repairing a device, mount the disk so you can use it again.
In our case, we will remount the sdb disk:
mount /dev/sdb
Do a Dry Run with fsck
Before you perform a live check, you can do a test run with fsck. Pass the -N
option to the fsck
command to perform a test:
sudo fsck -N /dev/sdb
The output prints what would happen but does not perform any actions.
Fix Detected Errors Automatically with fsck
To try to fix potential problems without getting any prompts, pass the -y
option to fsck
.
sudo fsck -y /dev/sdb
This way, you say “yes, try to fix all detected errors” without being prompted every time.
If no errors are found, the output looks the same as without the -y
option.
Skip Repair but Print fsck Errors in the Output
Use the -n
option if you want to check potential error on a file system without repairing them.
We have a second drive sdb with some journaling errors. The -n
flag prints the error without fixing it:
sudo fsck -n /dev/sdb
Force fsck to Do a Filesystem Check
When you perform a fsck on a clean device, the tool skips the filesystem check. If you want to force the filesystem check, use the -f
option.
For example:
sudo fsck -f /dev/sdb
The scan will perform all five checks to search for corruptions even when it thinks there are no issues.
Run fsck on All Filesystems at Once
If you want to perform a check on all filesystems with fsck in one go, pass the -A
flag. This option will go through the etc/fstab
file in one run.
Since root filesystems can’t be unmounted on a running machine, add the -R
option to skip them:
fsck -AR
To avoid the prompts, add the -y
option we talked about.
Skip fsck on a Specific Filesystem
If you want fsck to skip checking a filesystem, you need to add -t
and “no” before a filesystem.
For example, to skip ext3 filesystem, run this command:
sudo fsck -AR -t noext3 -y
We added -y
to skip the prompts.
Skip Fsck on Mounted Filesystems
To make sure you do not try to run fsck on a mounted filesystem, add the -M
option. This flag tells the fsck tool to skip any mounted filesystems.
To show you the difference, we will run fsck on sdb while it is mounted, and then when we unmount it.
sudo fsck -M /dev/sdb
While sdb is mounted, the tool exits without running a check. Then, we unmount sdb and run the same command again. This time, fsck
checks the disk and reports it as clean, or with errors.
Note: To remove the first title line of the fsck tool “fsck from util-linux 2.31.1” use the -T
option.
Run fsck on Linux Root Partition
As we already mentioned, fsck cannot check root partitions on a running machine since they are mounted and in use. However, even Linux root partitions can be checked if you boot into recovery mode and run the fsck check:
1. To do so, power on or reboot your machine through the GUI or by using the terminal:
sudo reboot
2. Press and hold the shift key during boot-up. The GNU GRUB menu appears.
3. Select Advanced options for Ubuntu.
4. Then, select the entry with (recovery mode) at the end. Let the system load into the Recovery Menu.
5. Select fsck from the menu.
6. Confirm by selecting <Yes> at the prompt.
7. Once finished, select resume at the recovery menu to boot up the machine.
What if fsck is Interrupted?
You should not interrupt the fsck tool while it is in progress. However, if the process is interrupted, fsck will finish the ongoing check and then stop.
In case the utility found an error while the check was in process, it will not try to fix anything if interrupted. You can rerun the check next time and let it finish.
fsck Linux Command Options Summary
To wrap up, below is the list of the options you can use with the fsck Linux utility.
Option | Description |
---|---|
-a |
Try to repair filesystem errors automatically. There will be no prompts, so use it with caution. |
-A |
Check all filesystems listed in /etc/fstab. |
-C |
Show progress for ext2 and ext3 filesystems. |
-f |
Force fsck to check a filesystem. The tool checks even when the filesystem appears to be clean. |
-l |
Lock the device to prevent other programs from using the partition during the scan and repair. |
-M |
Do not check mounted filesystems. The tool returns an exit code 0 when a filesystem is mounted. |
-N |
Do a dry run. The output prints what the fsck would do without executing any actions. The warning or error messages are printed as well. |
-P |
Use to run a scan on multiple filesystems in parallel. It can cause issues, depending on your setup. Use with caution. |
-R |
Tell the fsck tool not to check the root filesystems when you use the -A option. |
-r |
Print device statistics. |
-t |
Specify which filesystems type(s) to check with fsck. Consult the man page for detailed information. |
-T |
Hide the title when the tool starts. |
-y |
Try to repair filesystem errors automatically during the check. |
-V |
Verbose output. |
Note: Learn about the error code SIGSEGV (signal segmentation violation) and how to troubleshoot it.
Conclusion
Now you know how to use fsck Linux command to check and repair filesystems. The guide provided examples of the tool’s functionalities and features.
Make sure you have root permissions before running the listed commands. For a detailed description of all options, you can consult the man file of the tool or visit the fsck Linux man page.
В Linux можно проверить и восстановить использование тяжелых аппаратных компонентов. В частности, в системах Ubuntu и Debian, обнаружение сбойных секторов жесткого диска это легко. Как только на вашем жестком диске или диске появляются битые сектора или они повреждаются, они распространяются изо дня в день. На Ubuntu и других машинах Debian Linux вы можете использовать несколько инструментов или команд, чтобы обнаружить ошибки файловой системы и исправить ошибки. Отсутствие исправления ошибок или поврежденных секторов может замедлить загрузку вашей системы, а также может повлиять на инициализацию.
Исправление ошибок файловой системы в системах на основе Debian
Исправление ошибок файловой системы означает, что нам нужно определить, в каком секторе есть проблемы, а затем выяснить, какого типа ошибки. Если ошибки файловой системы можно исправить, мы продолжим работу с несколькими инструментами и командами в нашей системе Debian. Одним из лучших инструментов для исправления ошибок файловой системы является fsck для Linux. В этом посте мы увидим, как исправить ошибки файловой системы в Ubuntu и других дистрибутивах Debian.
Метод 1. Используйте команду FSCK для проверки ошибок
В Ubuntu вы можете использовать команду fsck в оболочке командной строки, которая может проверить целостность файловой системы. Этот инструмент предустановлен в дистрибутиве Debian. Пожалуйста, выполните следующее fdisk
сначала, чтобы получить общее представление о вашей файловой системе в системе Debian.
sudo fdisk -l
Теперь вам может потребоваться размонтировать файловую систему, которую вы хотите восстановить. Без размонтирования вы не можете восстановить или выполнить операции по исправлению ошибок файловой системы в Debian и других дистрибутивах. Но не беспокойтесь о ремонте и ремонте; вы можете снова смонтировать файловую систему, где она была.
Если вы не выполните операции FSCk без монтирования файловой системы, которую хотите восстановить, отобразится ошибка.
судо fsck / dev / sdb
$ sudo umount / dev / sdb3
Теперь вы можете запустить команду fsck в оболочке терминала, чтобы исправить ошибки файловой системы.
fsck -p -y. sudo fsck -p / dev / sdb3
Вышеупомянутый процесс может занять некоторое время. После завершения перемонтируйте файловую систему с помощью следующей команды.
$ sudo mount / dev / sdb3
Если у вас многопользовательская система Debian, вы можете выполнить следующую команду, чтобы проверить, какой пользователь в данный момент выполняет команду fsck.
fsck / usr
Метод 2: запустить проверку и восстановление файлов при загрузке
Если вы считаете, что команда fsck полезна для вас, и в вашей системе все еще есть битые сектора, вы можете запускать инструмент fsck в своей системе каждый раз при загрузке системы. В Debian указанная ниже команда позволит вам проверить ошибки файловой системы и восстановите их при загрузке ПК, так как вы можете видеть, что команда выполнит команду force fsck на ботинок.
$ sudo touch / forcefsck
При необходимости вы также можете установить вышеупомянутые forcefsck
команда для запуска каждый раз, когда вы запускаете систему.
$ sudo touch / forcefsck. $ sudo tune2fs -c 1 / dev / sdb3
По-другому, если вы считаете, что выполнять каждый раз при загрузке слишком много, вы можете установить его после каждых трех перезагрузок системы. Это также поможет вам понять, насколько серьезны ошибки в вашей системе Debian.
$ sudo tune2fs -c 3 / dev / sdb3
Для получения дополнительной помощи и синтаксиса инструмента FSCK вы всегда можете просмотреть руководство по командам.
$ man fsck
Метод 3: перезагрузка для исправления ошибок в файловой системе
Этот метод поможет вам выполнить ручную проверку файловой системы в вашей системе Debian, чтобы найти ошибки и исправить их. В этом методе мы изначально запускаем команду fsck в режиме восстановления для лучшего восстановления. Сначала перезагрузите систему и войдите в режим восстановления. Нажатие кнопки Shift поможет вам перейти в режим восстановления.
Находясь в режиме восстановления, выберите инструмент fsck и нажмите OK на клавиатуре. Затем он попросит вас установить точку монтирования в читай пиши
режим. Пожалуйста, заполните этот раздел, чтобы перейти в режим восстановления fsck. Когда вы устанавливаете точку монтирования, она автоматически запускает команду fsck в системе и исправляет ошибки файловой системы в вашей системе Debian.
После завершения процесса вы можете перезагрузить систему и начать ее использование.
Заключительные слова
Если вы были заядлым пользователем Ubuntu, вы могли заметить, что пока вы устанавливаете ОС Ubuntu на свой компьютер, Ubuntu автоматически выполняет проверку файловой системы при ее установке. Многие пользователи могут отменить автоматическую проверку файловой системы, нажав Ctrl + C, но допустить эту процедуру было бы хорошо перед установкой ОС. Однако во всем посте мы увидели несколько методов исправления ошибок файловой системы в системах на основе Debian.
Пожалуйста, поделитесь им со своими друзьями и сообществом Linux, если вы найдете этот пост полезным и информативным. Вы также можете записать свое мнение об этом сообщении в разделе комментариев.
Throughout this answer I’ll assume, that a storage drive appears as a block device at the path /dev/sdc
. To find the path of a storage drive in our current setup, use:
- Gnome Disks (formerly Gnome Disk Utility, a. k. a.
palimpsest
), if a GUI is available, or - on the terminal look at the output of
lsblk
andls -l /dev/disk/by-id
and try to find the right device by size, partitioning, manufacturer and model name.
Basic check
- only detects entirely unresponsive media
- almost instantaneous (unless medium is spun down or broken)
- safe
- works on read-only media (e. g. CD, DVD, BluRay)
Sometimes a storage medium simply refuses to work at all. It still appears as a block device to the kernel and in the disk manager, but its first sector holding the partition table is not readable. This can be verified easily with:
sudo dd if=/dev/sdc of=/dev/null count=1
If this command results in a message about an “Input/output error”, our drive is broken or otherwise fails to interact with the Linux kernel as expected. In the a former case, with a bit of luck, a data recovery specialist with an appropriately equipped lab can salvage its content. In the latter case, a different operating system is worth a try. (I’ve come across USB drives that work on Windows without special drivers, but not on Linux or OS X.)
S.M.A.R.T. self-test
- adjustable thoroughness
- instantaneous to slow or slower (depends on thoroughness of the test)
- safe
- warns about likely failure in the near future
Devices that support it, can be queried about their health through S.M.A.R.T. or instructed to perform integrity self-tests of different thoroughness. This is generally the best option, but usually only available on (non-ancient) hard disk and solid state drives. Most removable flash media don’t support it.
Further resources and instructions:
- Answer about S.M.A.R.T. on this question
- How can I check the SMART status of a drive on Ubuntu 14.04 through 16.10?
Read-only check
- only detects some flash media errors
- quite reliable for hard disks
- slow
- safe
- works on read-only media (e. g. CD, DVD, BluRay)
To test the read integrity of the whole device without writing to it, we can use badblocks(8)
like this:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
This operation can take a lot of time, especially if the storage drive actually is damaged. If the error count rises above zero, we’ll know that there’s a bad block. We can safely abort the operation at any moment (even forcefully like during a power failure), if we’re not interested in the exact amount (and maybe location) of bad blocks. It’s possible to abort automatically on error with the option -e 1
.
Note for advanced usage: if we want to reuse the output for e2fsck
, we need to set the block size (-b
) to that of the contained file system. We can also tweak the amount of data (-c
, in blocks) tested at once to improve throughput; 16 MiB should be alright for most devices.
Non-destructive read-write check
- very thorough
- slowest
- quite safe (barring a power failure or intermittent kernel panic)
Sometimes – especially with flash media – an error only occurs when trying to write. (This will not reliably discover (flash) media, that advertise a larger size, than they actually have; use Fight Flash Fraud instead.)
-
NEVER use this on a drive with mounted file systems!
badblocks
refuses to operate on those anyway, unless you force it. -
Don’t interrupt this operation forcefully! Ctrl+C (SIGINT/SIGTERM) and waiting for graceful premature termination is ok, but
killall -9 badblocks
(SIGKILL) isn’t. Upon forceful terminationbadblocks
cannot restore the original content of the currently tested block range and will leave it overwritten with junk data and possibly corrupt the file system.
To use non-destructive read-write checks, add the -n
option to the above badblocks
command.
Destructive read-write check
- very thorough
- slower
- ERASES ALL DATA ON THE DRIVE
As above, but without restoring the previous drive content after performing the write test, therefore it’s a little faster. Since data is erased anyway, forceful termination remains without (additional) negative consequence.
To use destructive read-write checks, add the -w
option to the above badblocks
command.