Linux fsck command
Содержание:
- Проверка диска на битые секторы
- Проверка файловой системы «Линукс»
- UPD: Xiafs
- Основополагающие функции системы
- Как отключить проверку диска при загрузке Windows 10
- Alert! /dev/ТОМ Does Not Exist
- Как узнать свободное место на диске Linux
- Third Party Disk Checking Tools
- Параметры команды Chkdsk F R
- FILESYSTEM SPECIFIC OPTIONS
- Linux, проверка жестких дисков
Проверка диска на битые секторы
Можно сразу запустить проверку с исправлением, но мне кажется это не правильно. Гораздо логичней вначале проверить диск и собрать информацию обо всех битых секторах и только после этого принять решение о дальнейшей судьбе диска.
Создадим файл указав для удобства имя проверяемого раздела.
touch "/root/bad-sda1.list"
Проверка диска утилитой badblocks
Запустим проверку с информацией о ходе процесса с подробным выводом. Чем больше диск тем дольше проверка!
badblocks -sv /dev/sda1 > /root/bad-sda1.list = Информация о ходе процесса = badblocks -sv /dev/sda1 > /root/bad-sda1.list Checking blocks 0 to 976761542 Checking for bad blocks (read-only test): 0.91% done, 1:43 elapsed. (0/0/0 errors) = Подробный вывод результата = badblocks -sv /dev/sda1 > /root/bad-sda1.list Checking blocks 0 to 156289862 Checking for bad blocks (read-only test): done Pass completed, 8 bad blocks found. (8/0/0 errors)
В нашем случае диск с 8 плохими секторами.
Пометка плохих секторов диска
Запустим утилиту e2fsck, указав ей список битых секторов. Программа пометит плохие сектора и попытается восстановить данные.
e2fsck -l /root/bad-sda1.list /dev/sda1 = Вывод команды = e2fsck -l /root/bad-sda1.list /dev/sda1e2fsck 1.43.3 (04-Sep-2016) Bad block 44661688 out of range; ignored. Bad block 44661689 out of range; ignored. Bad block 44661690 out of range; ignored. Bad block 44911919 out of range; ignored. Bad block 44958212 out of range; ignored. Bad block 44958213 out of range; ignored. Bad block 44958214 out of range; ignored. Bad block 44958215 out of range; ignored. /dev/sda1: Updating bad block inode. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda1: 11/9773056 files (0.0% non-contiguous), 891013/39072465 blocks
Проверка файловой системы «Линукс»
Давайте теперь перейдем непосредственно к практическим действиям. Представим читателю несколько возможных способов проверки:
- Проверка чистой ФС: $ sudo fsck -fy /dev/sda1.
- Проверка всех ФС, что подключены к данному компьютеру. Помогает присоединение команды -А-. Вот как это выглядит конкретно: $ sudo fsck -A -y.
- Если же предыдущий метод оказался бессилен (он подходит только для запуска в режиме восстановления), то рекомендуем обратиться к следующей «проверочной» комбинации: $ sudo fsck -AR -y.
- Проверка с исключением примонтированных файловых систем: $ sudo fsck -M -y.
- Если вам не нужна проверка всех имеющихся файловых систем, а требуется диагностика только ext4, что делать в данном случае? Предлагаем воспользоваться такой комбинацией: $ sudo fsck -A -t ext4 -y.
А вот проверку примонтированных файловых систем многие специалисты проводить не советуют. Однако если она жизненно необходима, то есть один выход. Для этого вам нужно перемонтировать ФС в специальную версию «Только для чтения». Проверка затем реализуется так: $ sudo mount -o remount,ro /dev/sdb1.
В заключение представим, как производить проверку ФС в так называемом принудительном стандарте: $ sudo fsck -fy /dev/sdb1.
UPD: Xiafs
В чем отличие этой файловой системы Linux Mint? Разберем ключевые черты.
Как задумка, так и разработка данного открытия — идея Frank Xia. Базой для системы выступала MINIX.
Сегодня разработка считается морально устаревшей, практически не применяется. В свое время ее создавали в качестве альтернативы распространенной ext. В конце 1993 года Xiafs добавили в стандартное ядро «Линукс». Ее отличала приличная стабильность, меньшая зона дисковых пространств под контрольные структуры.
Однако практика показала неоспоримый факт: разработка оказалась слабее ext 2. Из-за следующих ограничений: максимального размера раздела и файла, а также возможностей последующего расширения.
Основополагающие функции системы
Разбирая файловую систему «Линукс» для начинающих, подробно остановимся на ее задачах. Основная функция: предоставление организованных пространств для хранения информации, файлов на запоминающем энергонезависимом устройстве. Из этого утверждения вытекает ряд дополнительных задач.
Вам будет интересно:Графические оболочки Linux: определение, виды, характеристики, ресурсоемкость, инструкция по установке, особенности запуски и нюансы смены оболочки
Все файловые системы обязательно обеспечивают пространство имен. Именно оно определяет, как будут именоваться файлы, устанавливают ограничения на длину названия, использование определенных символов. Отвечает за логическую структуру информации на диске. Пример: использование каталогов именно для организации файлов, а не для простого складирования.
Когда пространство имен уже определено, нужно создать для него базу при помощи метаданных файловой системы. В большинстве случаев такая основа включает в себя следующее:
- Структура данных для составления иерархии каталогов.
- Структура для хранения как занятых, так и свободных блоков на диске.
- Структуры с названиями каталогов и файлов.
- Важная информация о документах: размер, расположение файла на диске, время его создания и проч.
Надо сказать, что в самих блоках файла будет содержаться только его содержимое. Все остальное — в метаданных. Последние также используются для описания подразделов и логических томов, содержат данные, характеризующие саму файловую систему.
Для доступа к документам необходим комплекс функций под названием API. С его помощью программы приобретают возможность управления различными объектами файловой системы. Существуют методы для создания, удаления и перемещения документов.
Вам будет интересно:Программа для восстановления данных на «Андроиде»
Важно, что современные файловые системы могут обеспечивать модель безопасности — права доступа к документам для пользователей. Отсюда следует, что юзеры в такой структуре имеют доступ только к своим файлам
Как отключить проверку диска при загрузке Windows 10
Мы уже показали, как запустить проверку диска chkdsk из командной строки или через свойства раздела, теперь обратимся к одной распространенной проблеме, связанной с работой этого средства. Запущенная при загрузке Windows проверка выполняется разово, и по завершении процедуры компьютер продолжает свою работу в обычном режиме. Но бывает и так, что проверка запускается автоматически при каждой новой загрузке. Это нежелательно, поскольку сканирование диска приводит к повышению нагрузки на него. В таком случае автоматический запуск утилиты Chkdsk следует отключить. Сделать это можно двумя способами: через реестр и с помощью уже упомянутый выше тулзы CHKNTFS.
Откройте редактор реестра (regedit) и перейдите к ключу HKLM/SYSTEM/CurrentControlSet/ControlSession Manager. В правой колонке найдите мультистроковый параметр BootExecute и замените его значение, каким бы оно ни было, строкой autocheck autochk /k:C *, где C – буква раздела, для которого нужно деактивировать проверку.
Второй способ менее хлопотный. Вызвав консоль CMD с админскими правами, выполните в ней команду chkntfs /x C:, где C опять же является буквой раздела.
В общем, ничего сложного, но иногда служебная программа chkdsk зависает. Если это случится, и вы просто перезагрузите компьютер принудительно, то при следующем запуске проверка начнется вновь. Чтобы прервать этот цикл, нужно заменить значение указанного выше параметра BootExecute в режиме оффлайн. Для этого потребуется загрузить компьютер как минимум с установочного диска. А еще лучше воспользоваться готовым решением – спасательным диском Sergei Strelec, в арсенале которого имеется инструмент для оффлайнового редактирования реестра.
Скачайте диск Стрельца в интернете (он бесплатен), запишите его на флешку, загрузите с нее компьютер и запустите с рабочего стола утилиту «Удаленный реестр».
В открывшемся окошке обзора выберите корневой каталог Windows, а затем перейдите к ключу HKLM/SYSTEM/ControlSet001/Control/Session Manager. Справа у вас будет параметр BootExecute – отредактируйте его, как было показано выше.
Всё, теперь можно перезагружаться в штатном режиме, Chkdsk больше не запустится.
Alert! /dev/ТОМ Does Not Exist
Проблема с Fstab
При загрузке хоста Linux вы можете увидеть следующую ошибку:
ALERT! /dev/sda1 does not exist. Dropping to a shell.
Возможно, вы только что установили Linux или у вашего хоста возникли проблемы с fstab. Чаще всего проблема возникает при установке системы с USB-накопителя. Система может показывать ошибку любого тома. Как и в первом случае, мы должны загрузиться с загрузочного / аварийного носителя Linux и выполнить некоторые действия. Проверьте UUID диска с помощью этой команды:
sudo blkid
Система вернёт примерно следующее:
/dev/sda2: UUID="36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE="ext4" PARTUUID="fea4dab1-4e12-4327-85c6-76ade18f64e1"
Здесь мы видим, что система должна загружаться с sda2, но на самом деле она пытается загрузиться с sda1.
Смонтируйте том в любой каталог, например:
sudo mount /dev/sda2 /mnt
Когда вы увидите /dev/sda2 в каталоге /mnt, найдите там файл /etc/fstab и измените строку, содержащую /dev/sda1, следующим образом:
UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 errors=remount-rw 0 1
Сохраните файл. Отмонтируйте том от /mnt и перезагрузитесь. Если проблема связана с неправильным именем тома, сервер загрузится.
Также вы можете решить эту проблему, загрузившись в аварийном режиме. Перемонтируйте корневой каталог как чтение / запись:
sudo mount -o remount,rw /
Затем измените fstab и перезапустите сервер.
Аппаратная проблема
На некоторых материнских платах порты SATA могут иметь случайные числа. Это также может вызвать ошибку, описанную в предыдущем разделе. Чтобы исправить это, вы должны отредактировать загрузчик grub.
Загрузитесь в аварийном режиме или с Live CD и отредактируйте файл /boot/grub/grub.cfg.
В строке, определяющей загрузочный раздел, например:
Linux /boot/vmlinuz-4.15.0-70-generic root=/dev/sda1 rw quiet elevator=noop fsck.repair=yes
замените путь к диску на его UUID:
Linux /boot/vmlinuz-4.15.0-70-generic root=UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator=noop fsck.repair=yes
Как узнать свободное место на диске Linux
В Windows для того чтобы получить представление о свободном месте на дисках компьютера достаточно открыть мой компьютер. Там в очень наглядном виде представлен список дисков и подробная информация сколько места доступно в нашей системе, сколько уже использовано и сколько осталось свободно.
В главном окне файловых менеджеров Linux нет такой возможности, так же как и нет разделения диски, по умолчанию просто открывается домашняя папка. В Linux все разделы диска подключаются к корневой файловой системе, в определенные подкаталоги.
При доступе к файловой системе мы невидим никаких дисков, есть только корневая файловая система. При работе с ней возникает ощущение, что это одна файловая система, не разделенная на разделы. Это очень удобно, но по-началу может показаться непривычным.
Управление разделами и их размером выполняется с помощью специальных утилит.
В этой инструкции мы рассмотрим несколько способов узнать свободное место на диске linux. Мы рассмотрим как консольные утилиты, так и утилиты с графическим интерфейсом.
Как узнать свободное место в GUI
Новичкам проще обращаться с графическим интерфейсом системы. С него и начнем.
Стандартной утилитой для работы с дисками и разделами в Linux можно считать – Gparted. С помощью этой программы можно не только оценить доступное и использованное место на диске, но и создавать, удалять и изменять размер разделов. Во многих дистрибутивах она уже предустановлена, но если нет, ее можно установить с помощью пакетного менеджера, например, в Ubuntu:
sudo apt-get install gparted
Запускается программа из главного меню. Наберите в поиске gparted или выполните в терминале:
gparted-pexec
Приставка pexec означает, что будет утилита будет выполняться с правами суперпользователя, поэтому нужно будет ввести пароль. Вот так выглядит главное окно утилиты:
Как я говорил, в этой утилиты еще очень много возможностей, но они выходят за рамки этой статьи.
Узнать свободное место на диске Ubuntu/Gnome можно более простым способом, с помощью утилиты системный монитор. Откройте утилиту системный монитор с помощью Dash или главного меню:
Здесь отображены все подключенные разделы, а также их размер и количество доступного пространства.
В KDE такая функция не поддерживается системным монитором. Но зато кое-какую информацию можно узнать в утилите информация о системе:
Также Dolphin, файловый менеджер KDE, позволяет отображать свободное пространство на текущем разделе в строке состояния. Для этого откройте Настроить Dolphin, Главное, Строка состояния и включите галочку Показывать сведения о свободном месте:
Вот так это будет выглядеть:
Такая же функция раньше была в Nautilus, но в новых версиях строка состояния в этом файловом менеджере отключена.
Еще один способ выполнить просмотр свободного места на диске linux, это воспользоваться утилитой baobab. Это стандартный дисковый анализатор в Ubuntu, утилита показывает не только занятое и свободное место, но и круговую диаграмму размера папок и файлов на диске, что позволяет очень быстро понять куда же делось место:
Чтобы проверить свободное место на диске linux можно использовать виджеты. Их довольно много, так что детально останавливаться на этом не будем.
Узнать свободное место в терминале
В Linux почти все действия можно сделать несколькими способами. Просмотр свободного места не исключение. Кроме, утилит с графическим интерфейсом есть несколько консольных утилит.
Утилита df, позволяет проанализировать свободное пространство на всех подключенных к системе разделах:
df
По умолчанию размер отображается в байтах, чтобы сделать его более читаемым, используйте опцию -h:
df -h
Как видите, кроме размера здесь отображается файловая система и точка монтирования.
Если хотите посмотреть только свободное место в определенном каталоге, его можно указать:
df -h /home
Так же само можно указать устройство:
df -h /dev/sda
Кроме опции -h утилита поддерживает и другие опции:
- -m – отображать размер в мегабайтах
- -T – отображать тип файловой системы
- -a – включить в список все файловые системы
- -i – отображать используемые иноды
Чтобы проанализировать какие файлы занимают больше всего пространства можно использовать утилиту du. Утилита выводит размер всех файлов в текущей или указанной директории, например:
du -h /home
Мы также можем отсортировать вывод, чтобы его было более удобно анализировать:
du -h ~/Загрузки/ | sort -h
Опция -h указывает, что нужно выводить размер в мегабайтах. Здесь есть еще несколько интересных опций:
- -b – выдавать размер в байтах
- -k – показывать размер в килобайтах
- -m – размер в мегабайтах
- -x – не учитывать каталоги, находящиеся в других файловых системах.
Third Party Disk Checking Tools
Using a separate program to run a drive scan and fix is not essential but does have some advantages. These include being able to scan several disks one after the other and making it easier for less experienced users to run a scan and optional fix. Here are four that work on Windows 10 and most other recent versions of Windows.
CheckDiskGUI
CheckDiskGUI has all the basic functions needed for running Check Disk from a portable front end. You can select multiple drives along with the standard options of scan only, fix or fix and recover. The column that tells you if Windows has marked the drive as dirty and having a problem is a useful piece of information.
There are some more advanced settings in the Options menu such as rescanning clusters, less vigorous index checks and reading the log from a boot time scan. The log can also be saved or printed from the File menu.
Note: There is a bug when running this tool in Windows 10 that causes the Read Only check to fail. However, running the Fix or Fix and Recover modes will still work as intended.
Check Disk GUI
This small tool is a plugin for the BartPE bootable rescue disk but works perfectly fine as a pure front end for the Check Disk command. It’s simple to use for the average user and far easier than opening and running Check Disk yourself from Command Prompt.
Download and extract the Zip, then run the small 122KB executable, select the drive to scan and choose the mode. There is scan only, fix errors or fix and recover bad sectors. A command line window will open on the left of the screen to run Chkdsk.exe with the chosen parameters. The Autoit source code is still available for anyone wanting to edit the program for their specific needs.
Check Disk
Using the same name for the front end as the Windows tool it runs is slightly confusing but not a major issue. This program is the most recently released of these Check Disk front ends, is portable and has separate 32-bit and 64-bit versions, so make sure you download the correct Zip file.
Inside the user interface, the Standard option is a simple check, Thorough would be a fix and recover bad sectors, and the Correct Errors checkbox is the standard fix function (equivalent to /f in ChkDsk.exe). There’s also an option to check if the selected drive is marked as dirty. Multiple drives can be selected at once with drag or Shift/Ctrl+click. Make sure to run the tool as administrator so it can function correctly.
Puran Disk Check
Disk Check normally requires installation but you can easily extract the setup file with Universal Extractor. Then simply look in the folder and run either the 32-bit version (Disk Check.exe) or 64-bit version (Additional files\Disk Check,2.exe). They are standalone executables and can be copied to any location.
The standard options of Scan, Fix or Fix and Recover are available. You can run scans of multiple drives sequentially by ticking multiple boxes or even schedule a fix and recover scan at boot time.
Параметры команды Chkdsk F R
Как уже было сказано выше, по умолчанию Chkdsk выполняется в режиме чтения. Чтобы исправить найденные ошибки, утилита должна быть запущена с параметрами или иначе ключами. Для устранения повреждений файловой системы в chkdsk есть ключи F и R. Они добавляются после основной команды через пробел с использованием слеша или дефиса, вот так: chkdsk /F /R. Есть также и другие параметры, среди которых наиболее употребительные:
- /F – производит поиск и исправление логических ошибок ФС;
- /R – выполняет поиск битых секторов и переносит их содержимое в резервные области;
- /X – принудительно отключает блокировку проверяемого тома;
- /I – ускоряет процесс сканирования, что сказывается на качестве;
- /B – используется только совместно с параметром R для повторного сканирования поврежденных секторов;
- /SCAN – выполняет упреждающее сканирование раздела;
- /С – пропускает сканирование внутри вложенных структур каталогов.
На практике чаще всего при «ремонте» используются команды chkdsk /f и chkdsk /f /r, а в применении других ключей потребность возникает гораздо реже.
FILESYSTEM SPECIFIC OPTIONS
Options which are not understood by fsck are passed to the filesystem-specific checker!
These options
must
not take arguments, as there is no
way for
fsck
to be able to properly guess which options take arguments and which
don’t.
Options and arguments which follow the
—
are treated as filesystem-specific options to be passed to the
filesystem-specific checker.
Please note that fsck is not
designed to pass arbitrarily complicated options to filesystem-specific
checkers. If you’re doing something complicated, please just
execute the filesystem-specific checker directly. If you pass
fsck
some horribly complicated options and arguments, and it doesn’t do
what you expect,
don’t bother reporting it as a bug.
You’re almost certainly doing something that you shouldn’t be doing
with
fsck.
Options to different filesystem-specific fsck’s are not standardized.
Linux, проверка жестких дисков
Рассмотрим способы проверки и диагностики hdd в linux системах. Информация о работе HDD поможет проанализировать состояние и в случае необходимости заменить сбойный носитель, тем самым предотвратив крах системы или потерю данных. Дополнительно прикручиваем наблюдение за smart HDD в нашу систему мониторинга zabbix
Получаем список подключенных накопителей в системе
fdisk -l
Для определения, что и куда смонтированно, выполним
mount
Посмотреть занятое место на том или ином накопителе
df -h
Если есть софт.райд, проверим его следующей командой
root@big:~# cat /proc/mdstat Personalities : md1 : active raid1 sdb3 sda3 965888832 blocks super 1.2 [2/2]
md0 : active raid1 sdb1 sda1 9756544 blocks super 1.2 [2/2] unused devices:
root@big:~#
какой raid установлен (собран)md0 – название устройства raidsda sdb – включенные устройства в данный raid – состояние дисков в RAID массиве
Устанавливаем необходимые пакеты
aptitude install hdpparm sysstat smartmontools
Смотрим состояние скорости чтения с накопителя
hdparm -t /dev/sda
При помощи iostat (в составе sysstat) анализируем нагрузку на наши HDD
Смотрим вывод данных по всем дискам c интервалом в 10 сек
iostat -x 10
Можно определить накопитель для анализа, добавив
iostat -x /dev/sda
При помощи данной утилиты определим нагрузку на наши устройства, статистику ввода / вывода и процентную утилизацию.
avg-cpu: | %user | %nice | %system | %iowait | %steal | %idle |
0,16 | 0,00 | 1,89 | 23,75 | 0,00 | 74,21 |
Проверка состояния накопителей
Для начала проверим наш HDD на наличие сбойных блоков, в случае необходимости выделим их и пометим для игнорирования.
badblocks /dev/sda3 -sv > /root/badblockSDA3Checking for bad blocks (read-only test): 27.93% done, 36:12 elapsed. (0/0/0 errors)
/dev/sda3 – имя проверяемого устройстваs – вывод процентной информацииv – включаем подробный режим> /root/badblockSDA3 – записываем сбойные секторы в файл
Пометка бэд блоков (в дальнейшем помеченные блоки будут игнорироваться системой):
e2fsck -l /root/badblockSDA3 /dev/sda3
Плохие блоки помечены, с диском можно работать.
ВНИМАНИЕ!!! Данная операция должна производиться на размонтированном носителе или в режиме read-only
ВНИМАНИЕ!!! Проверенное устройство и устройство на на котором будут помечаться сбойные блоки должно быть одно и тоже!
Получаем данные S.M.A.R.T о работе HDD
smartctl -a /dev/sdX
Где /dev/sdX – имя устройства которое необходимо проверить.Вы получите вывод атрибутов S.M.A.R.T., значение каждого из которых хорошо описаны в wiki
Мониторинг S.M.A.R.T состояния жестких дисков в Zabbix
Для каждого из накопителей проверяем поддержку SMART
root@big:~# smartctl -i /dev/sda |grep SMARTSMART support is: Available – device has SMART capability.SMART support is: Enabled
root@big:~#
Если поддерживается но не включен, то включаем
smartctl -s on -S on -o on /dev/sda
проверяем статус командой
smartctl -H /dev/sda |grep “test”| cut -f2 -d: |tr -d ” “
root@big:/etc/zabbix# smartctl -H /dev/sda |grep “test”| cut -f2 -d: |tr -d ” “PASSEDroot@big:/etc/zabbix#
В конфигурационном файле zabbix агента агента включаем параметр проверки smart для диска
UserParameter=HDD_smart.,sudo smartctl -H /dev/$1 |grep “test”| cut -f2 -d: |tr -d ” “
где HDD_smart – ключ для zabbix элемента
в sudoers добавляем запись
zabbix ALL=NOPASSWD:/usr/sbin/smartctl
рестартуем sudo и zabbix агента.
Дабы быть уверенным в корректности, залогинимся под zabbix пользователем и проверяем выполнение нашей команды
root@big:/etc/zabbix# su – zabbix -s /bin/bashКаталог отсутствует или недоступен, вход в систему выполняется с HOME=/zabbix@big:/$ sudo smartctl -H /dev/sda |grep “test”| cut -f2 -d: |tr -d ” “PASSED
zabbix@big:/$
На zabbix сервер создадим zabbix agent (Активный) элемент данных
Имя – произвольноеТип – Zabbix агент (Активный)Ключ – HDD_smart. – для первого диска, для второго соответственно …Тип – Символ
И через некоторое время наблюдаем данные
Далее все по Вашему усмотрению, настраиваем триггеры, оповещение и т.п.