Устранение ошибок на линукс

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.

Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:

  • Проблемы с командами в терминале
  • Проблемы с программами
  • Проблемы с драйверами и ядром
  • Проблемы с графической оболочкой
  • Проблемы с диском и файловой системой

Все это мы рассмотрим ниже, но сначала общее введение и немного теории.

Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.

Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:

  • Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist — файл или каталог не существует
  • No such file or Directory — нет такого файла или каталога
  • Not Found — Не найдено, файл или ресурс не обнаружен
  • Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty — означает, что папка или нужный файл пуст
  • Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.

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

Проблемы с командами в терминале

Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.

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

Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open …, can not read … и так далее.

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

Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.

Проблемы в программах

Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.

В терминале программа, скорее всего, покажет почему она не работает. Также у многих программ поддерживается опция -v или —verbose. Вы можете попробовать использовать эту опцию, если первый запуск в терминале ничего не дал. Далее, когда уже есть сообщение об ошибке, вы можете попытаться исправить его сами, если поняли в чем дело или попытаться найти решение на формуме, скорее всего, другие пользователи уже решили вашу проблему. Но если нет, вы можете создать новую тему и описать там свою ошибку. Но без вывода программы в терминале вам вряд ли помогут.

Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле ~/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.

Также ошибки linux могут возникать не только в обычных программах но и в работающих в фоне сервисах.  Но их тоже можно решить, чтобы посмотреть сообщения, генерируемые сервисом, запущенным с помощью systemd, просто наберите команду просмотра состояния сервиса:

$ sudo systemctl status имя_сервиса

Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.

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

Проблемы с драйверами и ядром

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

Вы можете посмотреть все сообщения ядра с момента начала загрузки, выполнив команду чтобы узнать какую linux выдает ошибку:

sudo dmesg

Чтобы иметь возможность удобно листать вывод можно выполнить:

sudo dmesg | less

Или сразу выбрать все ошибки:

sudo dmesg | grep error

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

Проблемы с графической оболочкой

Когда проблемы linux касаются графической оболочки, то решить их новичкам не так уж просто. Больше всего потому что доступен только терминал. Графическая оболочка может просто зависнуть или вовсе не запускаться, например, после обновления.

При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.

Посмотреть логи графической оболочки вы можете в том же файле ~/.xsession-erros.

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

Проблемы с диском и файловой системой

Самая частая проблема с диском у новичков — это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.

Если это случилось, вам, скорее всего, придется переключиться в режим терминала и удалить несколько файлов. Вы можете удалять файлы логов или кэша пакетного менеджера. Много файлов удалять не нужно, достаточно освободить несколько мегабайт, чтобы прекратились ошибки системы linux и нормально работала графическая оболочка, а затем уже в ней решать все проблемы linux.

Выводы

Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Содержание

  1. Понимание ошибок диска в Linux
  2. Список разделов и типов дисков Linux
  3. Сканирование на наличие ошибок на диске
  4. Инструменты мониторинга SMART
  5. Проверка диска командой Badblocks
  6. Исправление ошибок диска Linux
  7. Предотвращение ошибок диска в Linux
  8. Заключение

В этой статье вы узнаете, как проверить и исправить ошибки диска в Linux. Если вас утомили ошибки диска в системе Linux, не волнуйтесь, мы готовы вам помочь! В этой статье мы поможем вам устранить эти досадные ошибки диска, которые могут привести к потере данных, сбоям и нестабильной работе.

Несмотря на стабильность операционной системы Linux,, ошибки диска могут возникать по разным причинам. Например: аппаратные сбои, перебои в электропитании или проблемы с программным обеспечением. Однако с помощью нашего пошагового руководства вы легко можете определить и исправить эти ошибки. Это поможет вам сэкономить драгоценное время и потратить его на что нибудь полезное. Итак, приготовьтесь выполнить проверку и исправить ошибки диска в Linux как профессионал!

Понимание ошибок диска в Linux

Ошибки диска обычно вызваны физическим повреждением жесткого диска, битыми секторами или проблемами с программным обеспечением. Вот некоторые из распространенных симптомов ошибок диска:

  • Медленная производительность системы
  • Частые сбои в работе приложений
  • Невозможность загрузки системы
  • Зависание системы
  • Повреждение данных

При появлении этих симптомов необходимо выполнить проверку диска, чтобы выявить и устранить все ошибки.

Список разделов и типов дисков Linux

Перед тем как сканировать диск на наличие ошибок, нам требуется определить разделы диска в системе Linux. Для этого мы можем использовать команду lsblk. Данная команда выведет список всех доступных дисковых разделов и их типы.

lsblk

Эта команда выведет список всех доступных дисковых разделов, их точек монтирования и их типов. Вы должны увидеть что-то похожее на это.

Отображение всех дисков в системе Linux

Отображение всех дисков в системе Linux

В этом примере мы видим, что имеется один физический диск (sda) с тремя разделами: sda1, sda2 и sda5.

Сканирование на наличие ошибок на диске

Теперь, когда мы определили разделы диска в нашей системе, то мы можем выполнить проверку на наличие ошибок диска. Есть несколько инструментов, которые помогут в этом. Включая инструменты мониторинга SMART, команду badblocks и команду fsck.

Инструменты мониторинга SMART

SMART (Self-Monitoring, Analysis, and Reporting Technology) — это технология, которая встроена в большинство современных жестких дисков. Она отслеживает состояние диска и сообщает о любых ошибках или проблемах. Для доступа к данным SMART в Linux мы можем использовать команду smartctl.

Но чтоб использовать этот инструмент сначала установите пакет smartmontools.

sudo apt install smartmontools

После установки пакета используйте команду smartctl для проверки статуса SMART диска.

sudo smartctl -a /dev/sda

проверка SMART в Linux

проверка SMART в Linux

Замените «/dev/sda» на имя вашего диска. Команда выведет подробный отчет о состоянии SMART диска, включая любые ошибки или проблемы.

Проверка диска командой Badblocks

Команда badblocks — это мощный инструмент, который позволяет сканировать и помечать поврежденные сектора на диске. Чтобы использовать команду badblocks, сначала размонтируйте раздел диска, который вы хотите просканировать.

sudo umount /dev/sda1

Замените «/dev/sda1» на имя вашего раздела. Затем выполните команду badblocks.

sudo badblocks -sv /dev/sda1 > badblocks.txt

Проверка диска командой Badblocks

Проверка диска командой Badblocks

Данная команда просканирует раздел диска на наличие плохих секторов и сохранит список всех ошибок в файл с именем «badblocks.txt«.

Исправление ошибок диска Linux

Команда fsck (File System Consistency Check) — это мощная утилита, которая проверяет и исправляет ошибки в файловой системе Linux. Fsck похожа на chkdsk в Windows, но более мощней.

Перед запуском команды fsck лучше всего сначала размонтировать файловую систему, чтобы избежать повреждения данных. Размонтировать файловую систему можно с помощью команды umount.

Чтобы запустить команду fsck на файловой системе, используйте следующий синтаксис.

sudo fsck /dev/sda1

Замените «/dev/sda1» на имя раздела вашей файловой системы. Вы можете проверить имя раздела, выполнив команду «lsblk«.

Команда fsck просканирует файловую систему и исправит все найденные ошибки. В зависимости от размера раздела и количества ошибок, процесс может занять некоторое время.

Предотвращение ошибок диска в Linux

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

  • Регулярное резервное копирование: Всегда храните резервные копии важных данных на отдельном устройстве или в облачном хранилище. В случае сбоя диска вы легко можете восстановить данные из резервной копии.
  • Избегайте резких (горячих) отключений: Всегда правильно выключайте систему. Резкая потеря питания может повредить жесткий диск и привести к дисковым ошибкам.
  • Не допускайте физических повреждений: Храните систему и устройство хранения данных в безопасном месте. Не подвергайте их физическому повреждению. Например не роняйте, не ударяйте и не проливайте на жесткие диски жидкость.
  • Регулярно обновляйте систему: Всегда обновляйте свою систему последними патчами и обновлениями. Эти обновления не только устраняют известные уязвимости, но и исправляют ошибки в программном обеспечении.
  • Берегите свою систему от вредоносных программ: Всегда держите в системе обновленную антивирусную программу. Вредоносное ПО может испортить файлы и повредить жесткий диск, а это может привести к дисковым ошибкам.
  • Проверяйте аппаратных компоненты: Всегда следите за аппаратными компонентами вашей системы. Проверьте, нет ли признаков износа или других аппаратных проблем, которые могут вызвать ошибки диска.

Следуя приведенным выше советам, вы можете свести к минимуму вероятность возникновения ошибок диска в вашей системе Linux.

Заключение

В заключение следует отметить, что ошибки диска могут возникать в любой операционной системе, включая Linux. Но Linux предоставляет несколько инструментов для сканирования и исправления ошибок диска. Вы можете использовать такие инструменты как fsck, badblocks, smartctl и другие инструменты с графическим интерфейсом.

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

В случае возникновения ошибок немедленно примите меры и выполните шаги, которые указаны в этом руководстве, для сканирования и исправления ошибок диска в системе Linux. Надеемся мы смогли вам помочь исправить ошибки диска Linux.

И помните, здоровый диск означает здоровую систему.

Listen to this article

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее. Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому.

Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.

Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:

  • Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist — файл или каталог не существует
  • No such file or Directory — нет такого файла или каталога
  • Not Found — Не найдено, файл или ресурс не обнаружен
  • Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty — означает, что папка или нужный файл пуст
  • Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.

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


Монтирование NTFS раздела от Windows 10 в Linux

Ошибка:

Windows is hibernated, refused to mount.
Failed to mount ‘/dev/sda2’: Операция не позволена
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

Решение:

sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda2 /mnt

Ошибка:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount ‘/dev/sdb5’: Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

Решение:

sudo ntfsfix /dev/sda3

Отключение режима гибернации в винде

powercfg /h off


Нет места, но место есть.

Проблема: ПО пишет, что закончилось место на диске, при этом df -h показывает, что место все-таки есть.

Решение: Надо проверить свободный айноды. df -hTi. Возможно их забили мелкие файлы.


Команда смены владельца и группы владельцев для директории и всех поддиректорий с файлами

sudo chown -R user:group /home/user/dir/


FTP сервер на Ubuntu server

Установить
sudo apt-get install vsftpd

Добавить нового пользователя, если надо
sudo adduser ftpuser
sudo adduser ftpuser ftp —disabled-login

Правим конфигурацию
sudo nano /etc/vsftpd.conf

Если надо анонимный доступ
anonymous_enable=Yes

чтение и правка файлов
local_enable=YES
write_enable=YES

Ограничить домашним каталогом. Создаем список пользователй
sudo nano /etc/vsftpd.chroot_list

пишем туда юзеров по одному на строчку
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

папка входа по умоланию
local_root=/var/www

Права на файлы
#002 — 775; 022 — 755
local_umask=002

рестарт
sudo service vsftpd restart

Если права на файлы раздаются не верно~
nano /home/ftpuser/.profile

Раскомментируем строчку
umask 002


Расширить диск виртуальной машины KVM и VirtualBox

на хост-машине

1)KVM
sudo qemu-img resize /home/vm/disk.img +10G

2)VirtualBox
«C:Program FilesOracleVirtualBoxVBoxManage.exe» modifyhd D:vboxxubuntu.vdi —resize 25000

на вируалке
sudo apt-get install gparted
sudo swapoff /dev/vda5
sudo -X gparted


авторизация SSH без пароля

на своей машине
ssh-keygen -t rsa

в папке /home/имя пользователя/.ssh/id_rsa и id_rsa.pub появятся ключи
копируем на сервер

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host

на сервере
chmod 600 ~/.ssh/authorized_keys


Firefox средняя кнопка мыши не работает как прокрутка

Решение: Правка — > Настройка — > Дополнительные — > Общие — > Использовать автоматическую прокрутку


Проброс портов iptables

Обозначения

$EXT_R_IP — внешний IP роутера
$LOCAL_IP — внутренний «фэйковый» адрес машины, которую надо «выкидывать» наружу
$PORT1 — Порт, на который будут заходить извне и попадать на локальную машину
$PORT2 — Порт, который «выбрасывается» наружу(например, 80 — http, либо 21 — ftp)

На роутере говорим следующие команды(от рута)
iptables -t nat -A PREROUTING -i eth0 -p tcp -d $EXT_R_IP —dport $PORT1 -j DNAT —to-destination $LOCAL_IP:$PORT2
iptables -A FORWARD -i eth0 -d $LOCAL_IP -p tcp —dport $PORT2 -j ACCEPT


Примонтировать флешку Ubuntu Linux

service srv1cv83 stop
sudo dpkg -l | more | grep 1c
sudo dpkg -r 1c-enterprise83-ws
sudo dpkg -r 1c-enterprise83-server
sudo dpkg -r 1c-enterprise83-common

dpkg -i 1c-enterprise83-common_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2390_amd64.deb

sudo reboot


Google Chrome не предлагает сохранить пароли

Если Google Chrome не предлагает сохранить пароли и не использует автозаполнение, то причина может быть в том, что эти опции отключены в настройках. Для их включения перейдите во вкладку chrome://settings/, либо в меню выберите пункт «Настройки»:

На открывшейся странице в разделе «Автозаполнение» выберите пункт «Пароли»:

В открывшемся окне включите две опции:

  • Предлагать сохранение паролей
  • Автоматический вход (Автоматически входить на сайты с помощью сохраненного имени пользователя и пароля. Когда функция отключена, эти данные нужно вводить при каждом входе)

После этого автоматический вход и сохранение пароли должны начать работать.


Google Chrome не сохраняет пароли, хотя предлагает их сохранить

Эта ситуация более нестандартная, она может встречаться на различных операционных системах: в моём случае это Chromium на Linux, но сообщали также об аналогичной проблеме для Google Chrome на MacOS.

Признаки:

  1. После входа на веб-сайт, браузер, как обычно, предлагает сохранить пароль
  2. Я нажимаю на кнопку «Сохранить»
  3. Chrome не показывает никакие ошибки
  4. Но пароль не сохраняется: а) он не вводится автоматически при следующем заходе на сайт; б) пароль не отображается во вкладке chrome://settings/passwords

Решение следующиее:

1. Выйдите из Chrome

2. Перейдите в директорию, где Chrome хранит данные пользователя — внутри домашней папки, в директории, зависящей от операционной системы:

  • MacOS: ~/Library/Application Support/Google/Chrome
  • Linux (Chrome): ~/.config/google-chrome
  • Linux (Chromium): ~/.config/chromium
  • Windows: %UserProfile%AppDataLocalGoogleChromeUser Data

3. От туда перейдите в директорию с именем Default, если вы хотите исправить ваш главный профиль, или в Profile 1 или Profile 2 и т. д. Если вы хотите починить один из дополнительных профилей.

4. Удалите файлы Login DataLogin Data-journal и Login Data 2-journal.

5. Повторите для других профилей, если необходимо.

После этого у меняв вновь включилось сохранение паролей.

Обратите внимание, что если у вас включена автоматическая синхронизация, то вы не потеряете сохранённые ранее пароли.


1. Удаление временных файлов

Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:

НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.

2. Удаление файлов кэширования

В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.

Для удаления кэша шрифтов:

1

sudo rm -rf /var/cache/fontconfig/

Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):

1

sudo rm -rf /var/cache/apt/

Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):

1

sudo rm -rf /var/cache/pacman/

Удаление кэша справочных страниц:

1

sudo rm -rf /var/cache/man/

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

3. Удаление логов (журналов)

В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…

На веб-серверах могут разрастись слишком сильно журналы веб-сервера.

Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:

1

sudo rm -rf /var/log/apache2/*

Для удаления логов Apache на Arch Linux, BlackArch и их производных:

1

sudo rm -rf /var/log/httpd/*

Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.

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

4. Очистите корзину

Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку ~/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):

1

ncdu ~/.local/share/Trash/files/

5. Удаление ненужных файлов исходного кода заголовков ядра

Следующее актуально только для Debian, Linux Mint, Ubuntu, Kali Linux и их производных. Проверьте папку /usr/src/, там будут подпапки вида linux-headers- — большинство из них можно удалить — оставьте только ту, номер которой соответствует текущему ядру системы — обычно это самый последний номер выпуска.

6. Удаление осиротевших пакетов

На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:

7. Очистка журналов systemd

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

Чтобы увидеть, сколько место занимают журналы, выполните:

Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:

1

journalctl --vacuum-size=100M

Либо для удаления всех записей в системном журнале, старше одной недели:

1

journalctl --vacuum-time=1weeks

8. Проанализируйте файлы Docker

Не удаляйте безумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.

Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:

1

sudo ncdu /var/lib/docker/


Как исправить «No route to host» SSH в Linux

Если сервер работает на RHEL/CentOS/Fedora, то нужно использовать команду firewall-cmd, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH):

1

2

firewall-cmd --permanent --add-port=22/tcp

firewall-cmd --reload

Если сервер работает на Debian/Ubuntu, то нужно использовать команду UFW, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH) следующим образом:

1

2

sudo ufw allow 22/tcp

sudo ufw reload

Теперь попробуйте вновь подключиться к удалённому серверу по SSH:

Проблема должна исчезнуть.


Ошибки «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)» и «E: Невозможно заблокировать каталог /var/lib/apt/lists/»

возникает примерно следующая ошибка:

1

2

3

4

5

sudo apt update && sudo apt dist-upgrade -y

[sudo] password for mial:

Чтение списков пакетов… Готово

E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

E: Невозможно заблокировать каталог /var/lib/apt/lists/

Если в этой ситуации удалить файлы-блокировщики (/var/lib/apt/lists/lock), как это иногда советуют, то в результате фоновый процесс apt преждевременно завершит свою работу, либо вы запустите второй экземпляр apt – оба эти варианта приведут к проблемам с пакетами, и, вероятнее всего, при последующей попытке использовать apt система предложит вам запустить программу с ключом —f:

Правильный способ исправить ошибку

Чтобы увидеть, какие службы apt присутствуют в системе, выполните команду:

1

systemctl list-unit-files | grep apt

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

1

systemctl list-unit-files | grep enabled | grep apt

Службы apt-daily-upgrade.timer и apt-daily.timer, чтобы отключить их автоматический запуск при старте системы, выполните команды:

1

2

sudo systemctl disable apt-daily-upgrade.timer

sudo systemctl disable apt-daily.timer


Как обновить Linux в командной строке

С одной стороны, отключение автоматических обновлений и скачивание новых файлов пакетов навсегда избавит вас от ошибки «E: Невозможно заблокировать каталог /var/lib/apt/lists/» и других подобных, но при этом вам нужно будет самостоятельно выполнять обновление и очистку пакетов.

Для полного обновления системы выполняйте:

1

sudo apt update && sudo apt full-upgrade -y

А для очистки пакетов используются команды:

1

2

sudo apt autoremove -y

sudo apt clean -y


Не работает буфер обмена с гостевой ОС Linux

В этом случае как суперпользователь выполните команды:

1

2

killall VBoxClient

VBoxClient-all

Если это не помогло, а особенно если у вас возникает ошибка:

1

/usr/bin/VBoxClient-all: 26: /usr/bin/VBoxClient-all: notify-send:<span id="more-419"></span> not found

тогда установите пакет:

1

sudo apt-get install virtualbox-guest-x11

а затем запустите клиент VirtualBox

Бывают ситуации, что буфер обмена с гостевой ОС работал, но в какой-то момент перестал. Это может происходить, например, после обновления ядра. В этой ситуации также поможет установка пакета virtualbox-guest-x11 и запуск службы VBoxClient-all.

Источник: https://losst.ru/ и https://7d3.ru/ и https://zalinux.ru/


Если Вам понравилась статья — поделитесь с друзьями

2 617 просмотров

Отказ от ответственности: Автор или издатель не публиковали эту статью для вредоносных целей. Вся размещенная информация была взята из открытых источников и представлена исключительно в ознакомительных целях а также не несет призыва к действию. Создано лишь в образовательных и развлекательных целях. Вся информация направлена на то, чтобы уберечь читателей от противозаконных действий. Все причиненные возможные убытки посетитель берет на себя. Автор проделывает все действия лишь на собственном оборудовании и в собственной сети. Не повторяйте ничего из прочитанного в реальной жизни. | Так же, если вы являетесь правообладателем размещенного на страницах портала материала, просьба написать нам через контактную форму жалобу на удаление определенной страницы, а также ознакомиться с инструкцией для правообладателей материалов. Спасибо за понимание.

Если вам понравились материалы сайта, вы можете поддержать проект финансово, переведя некоторую сумму с банковской карты, счёта мобильного телефона или из кошелька ЮMoney.

Ошибки в Linux могут возникать из-за различных причин и могут проявляться в разных формах, таких как сообщения об ошибках в системных журналах, неожиданные завершения программ, неисправность оборудования.

Виды ошибок в операционной системе Линукс

Как проверить Линукс на ошибки

Некоторые типичные примеры ошибок в Linux:

1. Ядра: это ошибки, связанные с работой ядра операционной системы Linux. Они могут быть вызваны неправильной работой драйверов оборудования, ошибками в коде ядра или другими проблемами. Такие ошибки могут привести к сбою системы или неожиданному завершению работы.

2. Файловой системы: связаны с работой файловых систем, таких как ext4, Btrfs, NTFS и другие. Они могут проявляться в виде поврежденных файлов, невозможности монтировать диски или других проблем. Ошибки файловой системы могут быть вызваны некорректным отключением диска, ошибками записи или другими причинами.

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

4. Приложений: могут проявляться в виде неожиданного завершения работы программы, невозможности открыть файлы или других проблем. Ошибки приложений могут быть вызваны ошибками в коде программы, некорректными настройками или другими причинами.

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

Как проверить Linux на ошибки

Есть несколько способов проверить Linux на ошибки, в зависимости от того, какой тип ошибки вы хотите проверить.

Проверка журналов системы

Команда dmesg покажет журнал сообщений ядра. Вы можете использовать флаг -T для просмотра временных меток в удобном для чтения формате: dmesg -T

Команда journalctl позволяет просмотреть журнал системных сообщений. Вы можете использовать флаг -p для просмотра сообщений только с определенным уровнем приоритета, например: journalctl -p err -b — покажет только ошибки за последнюю загрузку системы.

Проверка жесткого диска

smartctl позволяет проверить состояние жесткого диска и диагностировать возможные проблемы: smartctl -a /dev/sda. Замените /dev/sda на путь к вашему жесткому диску.

fsck запускает проверку и позволяет исправить ошибки файловой системы на жестком диске: sudo fsck /dev/sda1. Замените /dev/sda1 на путь к вашей файловой системе.

Проверка памяти

memtest86 делает возможным проверки памяти на наличие ошибок: загрузите ее с загрузочного диска или флешки и запустите тест.

stress позволяет нагрузить систему, проверяя стабильность работы компьютера: sudo stress -c 4 -i 2 -m 1 -t 60s. Эта команда запустит тест, в котором будет использоваться 4 ядра CPU, 2 входа/выхода и 1 МБ оперативной памяти в течение 60 секунд.

Проверка сетевого соединения

ping делает возможным проверку связи с другими компьютерами и устройствами в сети: ping google.com.

при помощи traceroute можно определить маршрут, который данные проходят на пути к указанному хосту: traceroute google.com.

Эти команды помогут вам начать проверку системы на ошибки в Linux. Однако, для полной диагностики могут потребоваться дополнительные инструменты и методы, в зависимости от типа проблемы, которую вы хотите проверить.

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

Но если питание выключается неожиданно, часть данных теряется, и могут быть потерянны важные данные, что приведет к повреждению самой файловой системы. В этой статье мы рассмотрим как восстановить файловую систему fsck, для нескольких популярных файловых систем, а также поговорим о том, как происходит восстановление ext4.

Немного теории

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

Современные файловые системы делятся на два типа — журналируемые и нежурналируемые. Журналиуемые файловые системы записывают в лог все действия, которые собираются выполнить, а после выполнения стирают эти записи. Это позволяет очень быстро понять была ли файловая система повреждена. Но не сильно помогает при восстановлении. Чтобы восстановить файловую систему linux необходимо проверить каждый блок файловой системы и найти поврежденные сектора.

Для этих целей используется утилита fsck. По сути, это оболочка для других утилит, ориентированных на работу только с той или иной файловой системой, например, для fat одна утилита, а для ext4 совсем другая.

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

В этой статье мы рассмотрим ручную работу с fsck. Возможно, вам понадобиться LiveCD носитель, чтобы запустить из него утилиту, если корневой раздел поврежден. Если же нет, то система сможет загрузиться в режим восстановления и вы будете использовать утилиту оттуда. Также вы можете запустить fsck в уже загруженной системе. Только для работы нужны права суперпользователя, поэтому выполняйте ее через sudo.

А теперь давайте рассмотрим сам синтаксис утилиты:

$ fsck [опции] [опции_файловой_системы] [раздел_диска]

Основные опции указывают способ поведения утилиты, оболочки fsck. Раздел диска — это файл устройства раздела в каталоге /dev, например, /dev/sda1 или /dev/sda2. Опции файловой системы специфичны для каждой отдельной утилиты проверки.

А теперь давайте рассмотрим самые полезные опции fsck:

  • -l — не выполнять другой экземпляр fsck для этого жесткого диска, пока текущий не завершит работу. Для SSD параметр игнорируется;
  • -t — задать типы файловых систем, которые нужно проверить. Необязательно указывать устройство, можно проверить несколько разделов одной командой, просто указав нужный тип файловой системы. Это может быть сама файловая система, например, ext4 или ее опции в формате opts=ro. Утилита просматривает все файловые системы, подключенные в fstab. Если задать еще и раздел то к нему будет применена проверка именно указанного типа, без автоопределения;
  • -A — проверить все файловые системы из /etc/fstab. Вот тут применяются параметры проверки файловых систем, указанные в /etc/fstab, в том числе и приоритетность. В первую очередь проверяется корень. Обычно используется при старте системы;
  • -C — показать прогресс проверки файловой системы;
  • -M — не проверять, если файловая система смонтирована;
  • -N — ничего не выполнять, показать, что проверка завершена успешно;
  • -R — не проверять корневую файловую систему;
  • -T — не показывать информацию об утилите;
  • -V — максимально подробный вывод.

Это были глобальные опции утилиты. А теперь рассмотрим опции для работы с файловой системой, их меньше, но они будут более интересны:

  • -a — во время проверки исправить все обнаруженные ошибки, без каких-либо вопросов. Опция устаревшая и ее использовать не рекомендуется;
  • -n — выполнить только проверку файловой системы, ничего не исправлять;
  • -r — спрашивать перед исправлением каждой ошибки, используется по умолчанию для файловых систем ext;
  • -y — отвечает на все вопросы об исправлении ошибок утвердительно, можно сказать, что это эквивалент a.
  • -c — найти и занести в черный список все битые блоки на жестком диске. Доступно только для ext3 и ext4;
  • -f — принудительная проверка файловой системы, даже если по журналу она чистая;
  • -b — задать адрес суперблока, если основной был поврежден;
  • -p — еще один современный аналог опции -a, выполняет проверку и исправление автоматически. По сути, для этой цели можно использовать одну из трех опций: p, a, y.

Теперь мы все разобрали и вы готовы выполнять восстановление файловой системы linux. Перейдем к делу.

Как восстановить файловую систему в fsck

Допустим, вы уже загрузились в LiveCD систему или режим восстановления. Ну, одним словом, готовы к восстановлению ext4 или любой другой поврежденной ФС. Утилита уже установлена по умолчанию во всех дистрибутивах, так что устанавливать ничего не нужно.

Восстановление файловой системы

Если ваша файловая система находится на разделе с адресом /dev/sda1 выполните:

sudo fsck -y /dev/sda1

fsck3

Опцию y указывать необязательно, но если этого не сделать утилита просто завалит вас вопросами, на которые нужно отвечать да.

Восстановление поврежденного суперблока

Обычно эта команда справляется со всеми повреждениями на ура. Но если вы сделали что-то серьезное и повредили суперблок, то тут fsck может не помочь. Суперблок — это начало файловой системы. Без него ничего работать не будет.

Но не спешите прощаться с вашими данными, все еще можно восстановить. С помощью такой команды смотрим куда были записаны резервные суперблоки:

sudo mkfs -t ext4 -n /dev/sda1

fsck1

На самом деле эта команда создает новую файловую систему. Вместо ext4 подставьте ту файловую систему, в которую был отформатирован раздел, размер блока тоже должен совпадать иначе ничего не сработает. С опцией -n никаких изменений на диск не вноситься, а только выводится информация, в том числе о суперблоках.

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

sudo fsck -b 98304 /dev/sda1

fsck2

После этого, скорее всего, вам удастся восстановить вашу файловую систему. Но рассмотрим еще пару примеров.

Проверка чистой файловой системы

Проверим файловую систему, даже если она чистая:

sudo fsck -fy /dev/sda1

fsck4

Битые сектора

Или еще мы можем найти битые сектора и больше в них ничего не писать:

sudo fsck -c /dev/sda1

fsck5

Установка файловой системы

Вы можете указать какую файловую систему нужно проверять на разделе, например:

sudo fsck -t ext4 /dev/sdb1

fsck6

Проверка всех файловых систем

С помощью флага -A вы можете проверить все файловые системы, подключенные к компьютеру:

sudo fsck -A -y

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

sudo fsck -AR -y

Или исключить все примонтированные файловые системы:

sudo fsck -M -y

Также вы можете проверить не все файловые системы, а только ext4, для этого используйте такую комбинацию опций:

sudo fsck -A -t ext4 -y

Или можно также фильтровать по опциям монтирования в /etc/fstab, например, проверим файловые системы, которые монтируются только для чтения:

sudo fsck -A -t opts=ro

Проверка примонтированных файловых систем

Раньше я говорил что нельзя. Но если другого выхода нет, то можно, правда не рекомендуется. Для этого нужно сначала перемонтировать файловую систему в режим только для чтения. Например:

sudo mount -o remount,ro /dev/sdb1

А теперь проверка файловой системы fsck в принудительном режиме:

sudo fsck -fy /dev/sdb1

fsck7

Просмотр информации

Если вы не хотите ничего исправлять, а только посмотреть информацию, используйте опцию -n:

sudo fsck -n /dev/sdb1

fsck8

Выводы

Вот и все, теперь вы знаете как выполняется восстановление файловой системы ext4 или любой другой, поддерживаемой в linux fsck. Если у вас остались вопросы, спрашивайте в комментариях!

На десерт сегодня видео на английском про различия файловых систем ext4 и xfs, как обычно, есть титры:

https://www.youtube.com/watch?v=pECp066gGcY

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

FSCK – очень важная утилита для Linux / Unix, она используется для проверки и исправления ошибок в файловой системе.

Она похоже на утилиту «chkdsk» в операционных системах Windows.

Она также доступна для операционных систем Linux, MacOS, FreeBSD.

FSCK означает «File System Consistency Check», и в большинстве случаев он запускается во время загрузки, но может также запускаться суперпользователем вручную, если возникнет такая необходимость.

Может использоваться с 3 режимами работы,

1- Проверка наличия ошибок и позволить пользователю решить, что делать с каждой ошибкой,

2- Проверка на наличие ошибок и возможность сделать фикс автоматически, или,

3- Проверка наличия ошибок и возможность отобразить ошибку, но не выполнять фикс.

Содержание

  1. Синтаксис использования команды FSCK
  2. Команда Fsck с примерами
  3. Выполним проверку на ошибки в одном разделе
  4. Проверьте файловую систему на ошибки и исправьте их автоматически
  5. Проверьте файловую систему на наличие ошибок, но не исправляйте их
  6. Выполним проверку на ошибки на всех разделах
  7. Проверим раздел с указанной файловой системой
  8. Выполнять проверку только на несмонтированных дисках

Синтаксис использования команды FSCK

$ fsck options drives

Опции, которые можно использовать с командой fsck:

  • -p Автоматический фикс (без вопросов)
  • -n не вносить изменений в файловую систему
  • -у принять «yes» на все вопросы
  • -c Проверить наличие плохих блоков и добавить их в список.
  • -f Принудительная проверка, даже если файловая система помечена как чистая
  • -v подробный режим
  • -b использование альтернативного суперблока
  • -B blocksize Принудительный размер блоков при поиске суперблока
  • -j external_journal Установить местоположение внешнего журнала
  • -l bad_blocks_file Добавить в список плохих блоков
  • -L bad_blocks_file Установить список плохих блоков

Мы можем использовать любую из этих опций, в зависимости от операции, которую нам нужно выполнить.

Давайте обсудим некоторые варианты команды fsck с примерами.

Команда Fsck с примерами

Примечание: – Прежде чем обсуждать какие-либо примеры, прочтите это. Мы не должны использовать FSCK на смонтированных дисках, так как высока вероятность того, что fsck на смонтированном диске повредит диск навсегда.

Поэтому перед выполнением fsck мы должны отмонтировать диск с помощью следующей команды:

$ umount drivename

Например:

$ umount /dev/sdb1

Вы можете проверить номер раздела с помощью следующей команды:

$ fdisk -l

Также при запуске fsck мы можем получить некоторые коды ошибок.

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

  • 0 – нет ошибок
  • 1 – исправлены ошибки файловой системы
  • 2 – система должна быть перезагружена
  • 4 – Ошибки файловой системы оставлены без исправлений
  • 8 – Операционная ошибка
  • 16 – ошибка использования или синтаксиса
  • 32 – Fsck отменен по запросу пользователя
  • 128 – Ошибка общей библиотеки

Теперь давайте обсудим использование команды fsck с примерами в системах Linux.

Выполним проверку на ошибки в одном разделе

Чтобы выполнить проверку на одном разделе, выполните следующую команду из терминала:

$ umount /dev/sdb1

$ fsck /dev/sdb1

Проверьте файловую систему на ошибки и исправьте их автоматически

Запустите команду fsck с параметром «a» для проверки целостности и автоматического восстановления, выполните следующую команду.

Мы также можем использовать опцию «у» вместо опции «а».

$ fsck -a /dev/sdb1

Проверьте файловую систему на наличие ошибок, но не исправляйте их

В случае, если нам нужно только увидеть ошибки, которые происходят в нашей файловой системе, и не нужно их исправлять, тогда мы должны запустить fsck с опцией “n”,

$ fsck -n /dev/sdb1

Выполним проверку на ошибки на всех разделах

Чтобы выполнить проверку файловой системы для всех разделов за один раз, используйте fsck с опцией «A»

$ fsck -A

Чтобы отключить проверку корневой файловой системы, мы будем использовать опцию «R»

$ fsck -AR

Проверим раздел с указанной файловой системой

Чтобы запустить fsck на всех разделах с указанным типом файловой системы, например, «ext4», используйте fsck с опцией «t», а затем тип файловой системы,

$ fsck -t ext4 /dev/sdb1

или

$ fsck -t -A ext4

Выполнять проверку только на несмонтированных дисках

Чтобы убедиться, что fsck выполняется только на несмонтированных дисках, мы будем использовать опцию «M» при запуске fsck,

$ fsck -AM

Вот наше короткое руководство по команде fsck с примерами.

Пожалуйста, не стесняйтесь присылать нам свои вопросы, используя поле для комментариев ниже.

Tag/tag.png

Duplicate Article
This article covers the same material as another article. More info…

See: SystemAdministration/Fsck and TestingStorageMedia

Introduction

Contents

  1. Introduction
  2. Basic filesystem checks and repairs
    1. e2fsprogs — ext2, ext3, ext4 filesystems
    2. dosfstools — FAT12, FAT16 and FAT32 (vfat) filesystem
    3. ntfs-3g (previously also ntfsprogs) — NTFS filesystem
    4. reiserfstools — reiserfs
    5. xfsprogs — xfs
  3. Missing superblock
  4. Bad blocks
  5. Sources and further reading

This guide will help diagnose filesystem problems one may come across on a GNU/Linux system. New sections are still being added to this howto.

Basic filesystem checks and repairs

The most common method of checking filesystem’s health is by running what’s commonly known as the fsck utility. This tool should only be run against an unmounted filesystem to check for possible issues. Nearly all well established filesystem types have their fsck tool. e.g.: ext2/3/4 filesystems have the e2fsck tool. Most notable exception until very recently was btrfs. There are also filesystems that do not need a filesystem check tool i.e.: read-only filesystems like iso9660 and udf.

e2fsprogs — ext2, ext3, ext4 filesystems

Ext2/3/4 have the previously mentioned e2fsck tool for checking and repairing filesystem. This is a part of e2fsprogs package — the package needs to be installed to have the fsck tool available. Unless one removes it in aptitude during installation, it should already be installed.

There are 4 ways the fsck tool usually gets run (listed in order of frequency of occurrence):

  1. it runs automatically during computer bootup every X days or Y mounts (whichever comes first). This is determined during the creation of the filesystem and can later be adjusted using tune2fs.
  2. it runs automatically if a filesystem has not been cleanly unmounted (e.g.: powercut)
  3. user runs it against an unmounted filesystem
  4. user makes it run at next bootup

case 1

When filesystem check is run automatically X days after the last check or after Y mounts, Ubuntu gives user the option to interrupt the check and continue bootup normally. It is recommended that user lets it finish the check.

case 2

If a filesystem has not been cleanly unmounted, the system detects a dirty bit on the filesystem during the next bootup and starts a check. It is strongly recommended that one lets it finish. It is almost certain there are errors on the filesystem that fsck will detect and attempt to fix. Nevertheless, one can still interrupt the check and let the system boot up on a possibly corrupted filesystem.

2 things can go wrong

  1. fsck dies — If fsck dies for whatever reason, you have the option to press ^D (Ctrl + D) to continue with an unchecked filesystem or run fsck manually. See e2fsck cheatsheet for details how.

  2. fsck fails to fix all errors with default settings — If fsck fails to fix all errors with default settings, it will ask to be run manually by the user. See e2fsck cheatsheet for details how.

case 3

User may run fsck against any filesystem that can be unmounted on a running system. e.g. if you can issue umount /dev/sda3 without an error, you can run fsck against /dev/sda3.

case 4

You can make your system run fsck by creating an empty ‘forcefsck’ file in the root of your root filesystem. i.e.: touch /forcefsck Filesystems that have 0 or nothing specified in the sixth column of your /etc/fstab, will not be checked

Till Ubuntu 6.06 you can also issue shutdown -rF now to reboot your filesystem and check all partitions with non-zero value in sixth column of your /etc/fstab. Later versions of Ubuntu use Upstart version of shutdown which does not support the -F option any more.

Refer to man fstab for what values are allowed.

e2fsck cheatsheet

e2fsck has softlinks in /sbin that one can use to keep the names of fsck tools more uniform. i.e. fsck.ext2, fsck.ext3 and fsck.ext4 (similarly, other filesystem types have e.g.: fsck.ntfs) This cheatsheet will make use of these softlinks and will use ext4 and /dev/sda1 as an example.

  • fsck.ext4 -p /dev/sda1 — will check filesystem on /dev/sda1 partition. It will also automatically fix all problems that can be fixed without human intervention. It will do nothing, if the partition is deemed clean (no dirty bit set).

  • fsck.ext4 -p -f /dev/sda1 — same as before, but fsck will ignore the fact that the filesystem is clean and check+fix it nevertheless.

  • fsck.ext4 -p -f -C0 /dev/sda1 — same as before, but with a progress bar.

  • fsck.ext4 -f -y /dev/sda1 — whereas previously fsck would ask for user input before fixing any nontrivial problems, -y means that it will simply assume you want to answer «YES» to all its suggestions, thus making the check completely non-interactive. This is potentially dangerous but sometimes unavoidable; especially when one has to go through thousands of errors. It is recommended that (if you can) you back up your partition before you have to run this kind of check. (see dd command for backing up filesystems/partitions/volumes)

  • fsck.ext4 -f -c -C0 /dev/sda1 — will attempt to find bad blocks on the device and make those blocks unusable by new files and directories.

  • fsck.ext4 -f -cc -C0 /dev/sda1 — a more thorough version of the bad blocks check.

  • fsck.ext4 -n -f -C0 /dev/sda1 — the -n option allows you to run fsck against a mounted filesystem in a read-only mode. This is almost completely pointless and will often result in false alarms. Do not use.

In order to create and check/repair these Microsoft(TM)’s filesystems, dosfstools package needs to be installed. Similarly to ext filesystems’ tools, dosfsck has softlinks too — fsck.msdos and fsck.vfat. Options, however, vary slightly.

dosfsck cheatsheet

These examples will use FAT32 and /dev/sdc1

  • fsck.vfat -n /dev/sdc1 — a simple non-interactive read-only check

  • fsck.vfat -a /dev/sdc1 — checks the file system and fixes non-interactively. Least destructive approach is always used.

  • fsck.vfat -r /dev/sdc1 — interactive repair. User is always prompted when there is more than a single approach to fixing a problem.

  • fsck.vfat -l -v -a -t /dev/sdc1 — a very verbose way of checking and repairing the filesystem non-interactively. The -t parameter will mark unreadable clusters as bad, thus making them unavailable to newly created files and directories.

Recovered data will be dumped in the root of the filesystem as fsck0000.rec, fsck0001.rec, etc. This is similar to CHK files created by scandisk and chkdisk on MS Windows.

ntfs-3g (previously also ntfsprogs) — NTFS filesystem

Due to the closed sourced nature of this filesystem and its complexity, there is no fsck.ntfs available on GNU/Linux (ntfsck isn’t being developed anymore). There is a simple tool called ntfsfix included in ntfs-3g package. Its focus isn’t on fixing NTFS volumes that have been seriously corrupted; its sole purpose seems to be making an NTFS volume mountable under GNU/Linux.

Normally, NTFS volumes are non-mountable if their dirty bit is set. ntfsfix can help with that by clearing trying to fix the most basic NTFS problems:

  • ntfsfix /dev/sda1 — will attempt to fix basic NTFS problems. e.g.: detects and fixes a Windows XP bug, leading to a corrupt MFT; clears bad cluster marks; fixes boot sector problems

  • ntfsfix -d /dev/sda1 — will clear the dirty bit on an NTFS volume.

  • ntfsfix -b /dev/sda1 — clears the list of bad sectors. This is useful after cloning an old disk with bad sectors to a new disk.

    Windows 8 and GNU/Linux cohabitation problems This segment is taken from http://www.tuxera.com/community/ntfs-3g-advanced/ When Windows 8 is restarted using its fast restarting feature, part of the metadata of all mounted partitions are restored to the state they were at the previous closing down. As a consequence, changes made on Linux may be lost. This can happen on any partition of an internal disk when leaving Windows 8 by selecting “Shut down” or “Hibernate”. Leaving Windows 8 by selecting “Restart” is apparently safe.

    To avoid any loss of data, be sure the fast restarting of Windows 8 is disabled. This can be achieved by issuing as an administrator the command : powercfg /h off

Install reiserfstools package to have reiserfsck and a softlink fsck.reiserfs available. Reiserfsck is a very talkative tool that will let you know what to do should it find errors.

  • fsck.reiserfs /dev/sda1 — a readonly check of the filesystem, no changes made (same as running with —check). This is what you should run before you include any other options.

  • fsck.reiserfs —fix-fixable /dev/sda1 — does basic fixes but will not rebuild filesystem tree

  • fsck.reiserfs —scan-whole-partition —rebuild-tree /dev/sda1 — if basic check recommends running with —rebuild-tree, run it with —scan-whole-partition and do NOT interrupt it! This will take a long time. On a non-empty 1TB partition, expect something in the range of 10-24 hours.

xfsprogs — xfs

If a check is necessary, it is performed automatically at mount time. Because of this, fsck.xfs is just a dummy shell script that does absolutely nothing. If you want to check the filesystem consistency and/or repair it, you can do so using the xfs_repair tool.

  • xfs_repair -n /dev/sda — will only scan the volume and report what fixes are needed. This is the no modify mode and you should run this first.

    • xfs_repair will exit with exit status 0 if it found no errors and with exit status 1 if it found some. (You can check exit status with echo $?)

  • xfs_repair /dev/sda — will scan the volume and perform all fixes necessary. Large volumes take long to process.

XFS filesystem has a feature called allocation groups (AG) that enable it to use more parallelism when allocating blocks and inodes. AGs are more or less self contained parts of the filesystem (separate free space and inode management). mkfs.xfs creates only a single AG by default.

xfs_repair checks and fixes your filesystems by going through 7 phases. Phase 3 (inode discovery and checks) and Phase 4 (extent discovery and checking) work sequentially through filesystem’s allocation groups (AG). With multiple AGs, this can be heavily parallelised. xfs_repair is clever enough to not process multiple AGs on same disks.

Do NOT bother with this if any of these is true for your system:

  • you created your XFS filesystem with only a single AG.
  • your xfs_repair is older than version 2.9.4 or you will make the checks even slower on GNU/Linux. You can check your version with xfs_repair -V

  • your filesystem does not span across multiple disks

otherwise:

  • xfs_repair -o ag_stride=8 -t 5 -v /dev/sda — same as previous example but reduces the check/fix time by utilising multiple threads, reports back on its progress every 5 minutes (default is 15) and its output is more verbose.

    • if your filesystem had 32 AGs, the -o ag_stride=8 would start 4 threads, one to process AGs 0-7, another for 8-15, etc… If ag_stride is not specified, it defaults to the number of AGs in the filesystem.

  • xfs_repair -o ag_stride=8 -t 5 -v -m 2048 /dev/sda — same as above but limits xfs_repair’s memory usage to a maximum of 2048 megabytes. By default, it would use up to 75% of available ram. Please note, -o bhash=xxx has been superseded by the -m option

== jfsutils — jfs == == btrfs ==

Missing superblock

Bad blocks

Sources and further reading

  • man pages
  • <XFS user guide> — more details about XFS filesystem

Содержание

  1. Требования:
  2. Что делает команда fsck
  3. Команда fsck в Linux
  4. Проверка и исправление ошибок файловой системы в Linux
  5. Исправление ошибки корневой файловой системы Linux командой fsck
  6. Параметры fsck
  7. Параметры fsck
  8. Заключение

Команда FSCK (Проверка согласованности файловой системы) — это команда предназначена для проверки и исправления ошибок файловой системы Linux. Что гарантирует целостность и согласованность файловой системы.

fsck — это интерфейсная утилита, которая вызывает программу для проверки конкретной файловой системы. Команда Fsck обычно запускается после сбоя загрузки системы, повреждения файловой системы или сбоя в работе подключенного диска.

Например в системе Windows есть подобная утилита, называется chkdsk.

В этой статье мы расскажем о команде fsck и о том, как восстановить систему в дистрибутиве Linux.

Требования:

  • Установленная система Linux или Unix-подобная
  • Пользователь с правами Sudo (суперпользователь)

Что делает команда fsck

  • Система автоматически обнаруживает несогласованность системы, как правило после сбоя системы или потери питания или после неправильного отключения.
  • Используйте fsck если система не загружается
  • Исправление ошибок ввода-вывода
  • Запланированный запуск fsck для проверки файловой системы при загрузке ОС.

Команда fsck в Linux

Команда fsck имеет вот такой синтаксис.

$ sudo fsck [Опция] [Файловая система]

[Опция] в синтаксисе — это параметры, доступные с помощью утилиты fsck (различные опции fsck приведены в конце этой статьи).

[Файловая система] может быть устройством, разделом, точкой монтирования и так далее. Если учетные данные не добавлены в [Файловую систему], fsck проверяет устройства, перечисленные в файле fstab.

fsck по умолчанию включен во все дистрибутивы Linux. Команда fsck проверяет все файлы и целостность файловой системы. Эту команду можно выполнить вручную или автоматически.

ВНИМАНИЕ: Прежде чем пытаться проверить или восстановить файловую систему, всегда помните о необходимости размонтирования раздела. Если этого не сделать, файловая система может быть повреждена.

Fsck обычно используется для исправления ошибок в поврежденных файловых системах ext3 или ext4. Чтобы использовать утилиту fsck, вы должны сначала убедиться, что раздел был размонтирован. Вы получите сообщение об ошибке и ваш процесс будет прерван, если вы попытаетесь запустить команду fsck в разделе не размонтировав его. После завершения процесса вы можете снова смонтировать файловую систему.

Если вы не уверены в имени устройства которое хотите проверить, используйте команду df, lsblk или fdisk (fdisk-l), чтобы найти его.

$ sudo df -h

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

Синтаксис команды размонтирования:

$ sudo umount [filesystem]

Вы можете использовать опцию -p вместе с утилитой fsck для автоматического устранения любых проблем, которые будут безопасно устранены без вмешательства пользователя.

Синтаксис команды проверки файловой системы и файлов:

$ sudo fsck -p [Filesystem]

Пример использования команд :

$ sudo umount /dev/sdc
$ sudo fsck -p /dev/sdc

Ответ в терминала:

$ sudo fsck -p /dev/sdc
fsck from util-linux 2.34
exfatfsck 1.3.0
Checking file system on /dev/sdc.
File system version              1.0
Sector size                      512 bytes
Cluster size                     128 KB
Volume size                      55 GB
Used space                       4 MB
Available space                  55 GB
Totally 1 directories and 3 files.
File system checking finished. No errors found.

После проверки и ремонта обязательно смонтируйте диск.

Исправление ошибки корневой файловой системы Linux командой fsck

Поскольку корневая система не может быть отключена, Fsck не может проверять наличие ошибок. Но у вас есть возможность запустить fsck в режиме восстановления.

Перезагрузив компьютер в режиме аварийного восстановления, вы можете запустить fsck. Чтобы запустить fsck для исправления ошибок файлов корневой системы, выполнив следующие действия.

Войдите в меню загрузки и выберите «Дополнительные параметры»  (Advanced Options).

Дополнительные параметры для запуска fsck

Дополнительные параметры для запуска fsck

Теперь выберите “Режим восстановления” (Recovery mode), а затем в меню выберите» fsck” .

Исправление ошибки корневой файловой системы Linux командой fsck

Исправление ошибки корневой файловой системы Linux командой fsck

Далее появится окно сообщения с вопросом, хотите ли вы переустановить свою / файловую систему. Выберите опцию «Да«.

Меню восстановления системы Linux

Меню восстановления системы Linux

Теперь нажмите «ДА» и вернитесь к нормальной загрузке.

Команда Fsck в Linux

Команда Fsck в Linux

Возвращение к нормальной загрузке ОС Linux

Возвращение к нормальной загрузке ОС Linux

Параметры fsck

Существует список опций (параметров), которые доступны с помощью утилиты fsck. Все они используются для конкретных целей. Вот некоторые полезные опций fsck:

1. Perform fsck dry run — это выполнение тестового запуска.

fsck -N /dev/sdc

2. Опция -y на все вопросы автоматически ответит ДА, это позволит избежать всех подсказок

fsck -y /dev/sdc

3. Параметр -n  выведите ошибку fsck без ремонта

fsck -n /dev/sdc

4. Запуск fsck во всех файловых системах

fsck -AR

-R  пропустит корневую файловую систему, так как ее нельзя размонтировать на работающей машине

5. Запуск fsck для определенной файловой системы

Команда fsck является оболочкой и внутренне использует соответствующую команду проверки файловой системы (fsck.*). Вы можете найти следующие различные команды проверки fsck, такие как fsck.ext2, fsck.ext3, fsck.ext4 и т.д.).

# cd /sbin
# ls fsck*
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.minix fsck.xfs

В следующей таблице показаны все параметры (опции) команды fsck.

Параметры fsck

Вариант Описание
-A Проверяет все файловые системы, присутствующие в файле /etc/fstab
-C Отображает индикатор выполнения
-f Принудительно проверяет файловую систему
-l Блокирует устройство
-M Не проверяет смонтированные файловые системы
-N Выводит на печать без выполнения каких — либо действий
-P Параллельная проверка нескольких файловых систем
-p Автоматически устранять любые проблемы, которые могут быть безопасно устранены без необходимости взаимодействия с пользователем
-R Не проверяет корневую файловую систему при использовании с -A
-r Отображает статистику для каждого проверенного устройства
-T Не показывает название
-t Укажите типы файловых систем, которые необходимо проверить (это можно сделать с помощью команды man)
-v Предоставляет подробную информацию
-y Отвечает «да» на все вопросы

fstab — это файл, который указывает операционной системе, как и где монтировать разделы. Вы так же можете найти список записей в файле fstab /etc/fstab.

Параметр  <pass> определяет порядок, в котором выполняются проверки файловых системы во время перезагрузки. Если значение равно 0, то оно не проверяется. Если значение равно 1, файловые системы проверяются по одной за раз. А если значение равно 2, поиск во всех файловых системах выполняется одновременно. Значение корневой файловой системы равно 1, а все остальные файловые системы, которые вы хотите проверить, должны иметь значение 2.

Образец файла /etc/fstab:

Проверка файловой системы командой Fsck в Linux

Проверка файловой системы командой Fsck в Linux

Заключение

В этой статье мы показали, как использовать команду fsck для проверки и восстановления файловых систем в Linux. Вы так же можете ознакомиться со справочным материалом fsck для более подробного изучения.

Состояние перевода: На этой странице представлен перевод статьи fsck. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

fsck (file system check) — утилита для проверки и восстановления файловых систем Linux. Проверка файловых систем разных физических дисков выполняется параллельно, что позволяет значительно её ускорить (см. fsck(8)).

Процесс загрузки Arch включает в себя процедуру fsck, поэтому проверка файловых систем на всех носителях выполняется автоматически при каждой загрузке. По этой причине обычно нет необходимости выполнять её через командную строку.

Проверка при загрузке

Механизм

Существует два возможных варианта:

  1. mkinitcpio предоставляет хук fsck для проверки корневой файловой системы перед монтированием. Корневой раздел должен быть смонтирован на запись и чтение (параметр ядра rw) [1].
  2. systemd проверяет все файловые системы, которым задано значение fsck больше 0 (либо параметром fstab, либо в пользовательском файле юнита). Корневая файловая система изначально должна быть смонтирована только на чтение (параметр ядра ro), и лишь позже перемонтирована на чтение-запись в fstab. Имейте в виду, что опция монтирования defaults подразумевает rw.

Рекомендуется по умолчанию использовать первый вариант. Если вы устанавливали систему в соответствии с руководством, то использоваться будет именно он. Если вы хотите вместо этого использовать вариант 2, то удалите хук fsck из mkinitcpio.conf и задайте параметр ядра ro. Кроме того, параметром ядра fsck.mode=skip можно полностью отключить fsck для обоих вариантов.

Принудительная проверка

Если вы используете base-хук mkinitcpio, то можно принудительно выполнять fsck во время загрузки, задав параметр ядра fsck.mode=force. Проверена будет каждая файловая система на машине.

В качестве альтернативы можно воспользоваться службой systemd systemd-fsck@.service(8), которая проверит все настроенные файловые системы, которые не были проверены в initramfs. Тем не менее, проверка корневой файловой системы этим способом может стать причиной задержки в время загрузки, поскольку файловая система будет перемонтироваться.

Примечание: Если вы используете другие дистрибутивы GNU/Linux, то учтите, что старые методы проверки вроде файлов forcefsck для каждой файловой системы или команды shutdown с флагом -F будут работать только с SysVinit и ранними версиями Upstart; работать с systemd они не будут. Решение, предложенное выше, является единственным рабочим для Arch Linux.

Советы и рекомандации

Восстановление повреждённых блоков

Следующая команда позволяет восстановить повреждённые участки файловых систем ext2/ext3/ext4 и FAT:

Важно: Разрешение на восстановление запрошено не будет. Подразумевается, что вы уже ответили «Да», запустив команду на выполнение.

# fsck -a

Интерактивное восстановление повреждённых блоков

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

# fsck -r диск

Изменение частоты проверки

Примечание: Команды tune2fs и dumpe2fs работают только с файловыми системами ext2/ext3/ext4.

По умолчанию fsck проверяет файловую систему каждые 30 загрузок (вычисляется отдельно для каждого раздела). Чтобы изменить частотку проверок, выполните:

# tune2fs -c 20 /dev/sda1

Здесь 20 — число загрузок между проверками. Если задать значение 1, то проверка будет выполняться при каждой загрузке, а значение 0 отключит сканирование.

Текущую частоту проверок и опции монтирования конкретного раздела можно узнать командой:

# dumpe2fs -h /dev/sda1 | grep -i 'mount count'

Параметры fstab

fstab — файл системных настроек, который используется для передачи ядру Linux информации о том, какие разделы (файловые системы) монтировать и в какие точки дерева файловой системы.

Записи в /etc/fstab выглядят примерно следующим образом.

/dev/sda1   /         ext4      defaults       0  1
/dev/sda2   /other    ext4      defaults       0  2
/dev/sda3   /win      ntfs-3g   defaults       0  0

Шестое поле каждой строки (выделено) — опция fsck:

  • 0 — не проверять.
  • 1 — файловая система (раздел), которая должна быть проверена первой; для корневого раздела (/) должно использоваться именно это значение.
  • 2 — прочие файловые системы, которые должны быть проверены.

Решение проблем

Не запускается fsck для отдельного раздела /usr

  1. Убедитесь, что используются соответствующие хуки в /etc/mkinitcpio.conf, а также что вы не забыли пересоздать initramfs после последнего редактирования этого файла.
  2. Проверьте fstab! Только корневому разделу должен быть задан параметр 1 в последнем поле, все остальные разделы должны иметь либо 2, либо 0. Также проверьте файл на наличие иных опечаток.

ext2fs: no external journal

Иногда (например, из-за внезапного отключения питания) файловые системы ext(3/4) могут повредиться так сильно, что восстановить их обычным способом не удастся. Как правило, при этом fsck выводит сообщение о том, что не удалось найти журнал (no external journal). В этом случае выполните команды ниже.

Отмонтируйте раздел от соответствующего каталога:

# umount каталог

Запишите на раздел новый журнал:

# tune2fs -j /dev/раздел

Запустите fsck, чтобы восстановить раздел:

# fsck -p /dev/раздел

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.

How to use fsck command to check and repair filesystem in Linux

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

Terminal output when running a df -h command

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 terminal output when listing Linux 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

A warning when you try to unmount a mounted disk or partition.

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 output after running a fsck command to check the second disk.

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:

Possible exit codes for the fsck command.

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

Use -n fsck option to print errors without fixing them.

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

Force the fsck tool to do a filesystem check

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

The output of fsck tool to skip any mounted filesystems.

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.

Linux recovery mode screen.

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.

Linux recovery menu select fsck tool.

6. Confirm by selecting <Yes> at the prompt.

Recovery mode confirmation message when fsck is selected.

7. Once finished, select resume at the recovery menu to boot up the machine.

Resume option selected when the tool finishes checking a root partition.

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. 

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.

Filesystems are responsible for organizing how data is stored and recovered. One way or another, with time, filesystem may become corrupted and certain parts of it may not be accessible. If your filesystem develops such inconsistency it is recommend to verify its integrity.

This can be completed via system utility called fsck (file system consistency check). This check can be done automatically during boot time or ran manually.

In this article, we are going to review the fsck utility and its usage to help you repair disk errors.

When to Use fsck in Linux

There are different scenarios when you will want to run fsck. Here are few examples:

  • The system fails to boot.
  • Files on the system become corrupt (often you may see input/output error).
  • Attached drive (including flash drives/SD cards) is not working as expected.

fsck Available options

Fsck command needs to be run with superuser privileges or root. You can use it with different arguments. Their usage depend on your specific case. Below you will see some of the more important options:

    • -A – Used for checking all filesystems. The list is taken from /etc/fstab.
    • -C – Show progress bar.
    • -l – Locks the device to guarantee no other program will try to use the partition during the check.
    • -M – Do not check mounted filesystems.
    • -N – Only show what would be done – no actual changes are made.
    • -P – If you want to check filesystems in parallel, including root.
    • -R – Do not check root filesystem. This is useful only with ‘-A‘.
    • -r – Provide statistics for each device that is being checked.
    • -T – Does not show the title.
    • -t – Exclusively specify the filesystem types to be checked. Types can be comma separated list.
    • -V – Provide description what is being done.

How to Run fsck to Repair Linux File System Errors

In order to run fsck, you will need to ensure that the partition you are going to check is not mounted. For the purpose of this article, I will use my second drive /dev/sdb mounted in /mnt.

Here is what happens if I try to run fsck when the partition is mounted.

# fsck /dev/sdb

Run fsck on Mounted Partition

Run fsck on Mounted Partition

To avoid this unmount the partition using.

# umount /dev/sdb

Then fsck can be safely ran with.

# fsck /dev/sdb

Run fsck on Linux Partition

Run fsck on Linux Partition

Understanding fsck exit codes

After running fsck, it will return an exit code. These cods can be seen in fsck’s manual by running:

# man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Repair Linux Filesystem Errors

Sometimes more than one error can be found on a filesystem. In such cases you may want fsck to automatically attempt to correct the errors. This can be done with:

# fsck -y /dev/sdb

The -y flag, automatically “yes” to any prompts from fsck to correct an error.

Similarly, you can ran the same on all filesystems (without root):

$ fsck -AR -y 

How to Run fsck on Linux Root Partition

In some cases, you may need to run fsck on the root partition of your system. Since you cannot run fsck while the partition is mounted, you can try one of these options:

  • Force fsck upon system boot
  • Run fsck in rescue mode

We will review both situations.

Force fsck Upon System Boot

This is relatively easy to complete, the only thing you need to do is create a file called forcefsck in the root partition of your system. Use the following command:

# touch /forcefsck

Then you can simply force or schedule a reboot of your system. During the next bootup, the fsck will be performed. If downtime is critical, it is recommended to plan this carefully, since if there are many used inodes on your system, fsck may take some extra time.

After your system boots, check if the file still exists:

# ls /forcefsck

If it does, you may want to remove it in order to avoid fsck on every system boot.

Run fsck in Rescue Mode

Running fsck in rescue mode requires few more steps. First prepare your system for reboot. Stop any critical services like MySQL/MariaDB etc and then type.

# reboot

During the boot, hold down the shift key so that the grub menu is shown. Select the “Advanced options”.

Grub Advance Options

Grub Advance Options

Then choose “Recovery mode”.

Select Linux Recovery Mode

Select Linux Recovery Mode

In the next menu select “fsck”.

Select fsck Utility

Select fsck Utility

You will be asked if you wish to have your / filesystem remounted. Select “yes”.

Confirm Root Filesystem

Confirm Root Filesystem

You should see something similar to this.

Running fsck Filesystem Check

Running fsck Filesystem Check

You can then resume to normal boot, by selecting “Resume”.

Select Normal Boot

Select Normal Boot
Conclusion

In this tutorial you learned how to use fsck and run consistency checks on different Linux filesystem. If you have any questions about fsck, please do not hesitate to submit them in the comment section below.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

В Linux можно проверить и восстановить использование тяжелых аппаратных компонентов. В частности, в системах Ubuntu и Debian, обнаружение сбойных секторов жесткого диска это легко. Как только на вашем жестком диске или диске появляются битые сектора или они повреждаются, они распространяются изо дня в день. На Ubuntu и других машинах Debian Linux вы можете использовать несколько инструментов или команд, чтобы обнаружить ошибки файловой системы и исправить ошибки. Отсутствие исправления ошибок или поврежденных секторов может замедлить загрузку вашей системы, а также может повлиять на инициализацию.

Исправление ошибок файловой системы в системах на основе Debian


Исправление ошибок файловой системы означает, что нам нужно определить, в каком секторе есть проблемы, а затем выяснить, какого типа ошибки. Если ошибки файловой системы можно исправить, мы продолжим работу с несколькими инструментами и командами в нашей системе Debian. Одним из лучших инструментов для исправления ошибок файловой системы является fsck для Linux. В этом посте мы увидим, как исправить ошибки файловой системы в Ubuntu и других дистрибутивах Debian.

Метод 1. Используйте команду FSCK для проверки ошибок


В Ubuntu вы можете использовать команду fsck в оболочке командной строки, которая может проверить целостность файловой системы. Этот инструмент предустановлен в дистрибутиве Debian. Пожалуйста, выполните следующее fdisk сначала, чтобы получить общее представление о вашей файловой системе в системе Debian.

sudo fdisk -l

sudo fdisk -l Исправить ошибки файловой системы в Debian

Теперь вам может потребоваться размонтировать файловую систему, которую вы хотите восстановить. Без размонтирования вы не можете восстановить или выполнить операции по исправлению ошибок файловой системы в Debian и других дистрибутивах. Но не беспокойтесь о ремонте и ремонте; вы можете снова смонтировать файловую систему, где она была.

Если вы не выполните операции FSCk без монтирования файловой системы, которую хотите восстановить, отобразится ошибка.

судо fsck / dev / sdb

Команда mount fsck запустить dev на sdb Исправить ошибки файловой системы в Debian

$ 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 поможет вам перейти в режим восстановления.

режим восстановления Исправить ошибки файловой системы в Debian

Находясь в режиме восстановления, выберите инструмент fsck и нажмите OK на клавиатуре. Затем он попросит вас установить точку монтирования в читай пиши режим. Пожалуйста, заполните этот раздел, чтобы перейти в режим восстановления fsck. Когда вы устанавливаете точку монтирования, она автоматически запускает команду fsck в системе и исправляет ошибки файловой системы в вашей системе Debian.

режим восстановления Режим FSCK

После завершения процесса вы можете перезагрузить систему и начать ее использование.

Заключительные слова 


Если вы были заядлым пользователем Ubuntu, вы могли заметить, что пока вы устанавливаете ОС Ubuntu на свой компьютер, Ubuntu автоматически выполняет проверку файловой системы при ее установке. Многие пользователи могут отменить автоматическую проверку файловой системы, нажав Ctrl + C, но допустить эту процедуру было бы хорошо перед установкой ОС. Однако во всем посте мы увидели несколько методов исправления ошибок файловой системы в системах на основе Debian.

Пожалуйста, поделитесь им со своими друзьями и сообществом Linux, если вы найдете этот пост полезным и информативным. Вы также можете записать свое мнение об этом сообщении в разделе комментариев.

Если, при загрузке, операционная система сообщает о наличии ошибок в файловой системе на одном из разделов, то стоит незамедлительно проверить диски и исправить ошибки файловой системы.

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

Для проверки разделов жесткого диска рекомендуем использовать утилиту FSCK (file system consistency check), поскольку утилита FSCK предустановленна на большинстве операционных систем семейства Linux.

Важно! Запуск и выполнение FSCK на смонтированной файловой системе может привести к повреждению данных, поэтому используйте данный материал на свой страх и риск. Автор не несет ответственности за любой ущерб, который вы можете причинить.

Для того, чтобы обезопасить себя необходимо:

  • Перейти в однопользовательский режим (Single user mode) и размонтировать файловую систему
  • Загрузить компьютер в режиме восстановления с помощью установочного компакт-диска

Итак, необходимо проверить диски и исправить ошибки файловой системы, приступим.

1) Single user mode

Измените уровень инициализации и размонтируйте файловую систему:

# init 1
# umount /home

Выполните поиск подключенных разделов:

# fdisk -l

После этого запустите FSCK для раздела с ошибками:

# fsck /dev/sda1

2) Режим восстановления с установочного компакт-диска

Вставьте установочный компакт-диск в дисковод и перезагрузите систему:

# reboot

Подождите некоторое время и после загрузки с установочного компакт-диска выполните команду:

# linux rescue nomount

Директива NOMOUNT запретит монтирование, так что вы сможете безопасно использовать FSCK.

После этого запустите FSCK для раздела с ошибками:

# fsck -yvf /dev/sda1

LVM (Logical Volume Manager)

Ситуация с LVM (Logical Volume Manager) разделами немного сложнее. Для запуска FSCK для LVM разделов сначала необходимо найти PV (Physical Vollume), VG (Volume Group), LV (Logical Extension) и активировать их, для этого выполните последовательно следующие команды:

# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan

# fsck -yfv /dev/VolGroup00/LogVol00

По факту выполнения FSCK вернет результат в виде кода, данный код — это уникальный номер, представляющей сумму следующих значений:

0 — Без ошибок (No errors);
1 — Исправлены ошибки файловой системы (Filesystem errors corrected);
2 — Система должна быть перезагружена (System should be rebooted);
4 — Ошибки файловой системы оставили без изменений (Filesystem errors left uncorrected);
8 — Эксплуатационная ошибка (Operational error);
16 — Ошибки при использовании или синтаксические ошибки (Usage or syntax error);
32 — Fsck отменен по запросу пользователя (Fsck canceled by user request);
128 — Ошибка общей библиотеки (Shared-library error).

На этом все. Таким несложным образом вы можете проверить диски на наличие ошибок в файловой системе и исправить эти ошибки в случае их наличия.

Понравилась статья? Поделить с друзьями:
  • Устранить ошибку память не может быть read
  • Устранить ошибку 651 подключения к сети
  • Устранение ошибок на диске виндовс 7
  • Устранение ошибок на ваз 2110
  • Устранить ошибку 504