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

ENVIRONMENT VARIABLES

fsck

FSCK_FORCE_ALL_PARALLEL

If this environment variable is set,
fsck

will attempt to check all of the specified filesystems in parallel, regardless of
whether the filesystems appear to be on the same device. (This is useful for
RAID systems or high-end storage systems such as those sold by companies such
as IBM or EMC.) Note that the fs_passno value is still used.

FSCK_MAX_INST

This environment variable will limit the maximum number of filesystem
checkers that can be running at one time. This allows configurations
which have a large number of disks to avoid
fsck

starting too many filesystem checkers at once, which might overload
CPU and memory resources available on the system. If this value is
zero, then an unlimited number of processes can be spawned. This is
currently the default, but future versions of
fsck

may attempt to automatically determine how many filesystem checks can
be run based on gathering accounting data from the operating system.

PATH

The
PATH

environment variable is used to find filesystem checkers.

FSTAB_FILE

This environment variable allows the system administrator
to override the standard location of the
/etc/fstab

file. It is also useful for developers who are testing
fsck.

LIBBLKID_DEBUG=all

enables libblkid debug output.
LIBMOUNT_DEBUG=all

enables libmount debug output.

Решение:

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

Задуматься о состоянии HDD следует по некоторым признакам поведения системы в целом: резко выросла общая нагрузка на дисковую подсистему, упала скорость чтения/записи, другие проблемы косвенно указывающие что с HDD что-то не то.

Ниже я приведу основные команды, выполнять их необходимо из-под учётной записи root

Чтобы получить список подключенных HDD в систему, выполнить:

fdisk -l

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

Для того, чтобы посмотреть какие устройства и куда смонтированы, выполнить:

mount

Узнать сколько на каждом из смонтированном носителе занято пространства, выполнить:

df -h

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

cat /proc/mdstat

Если всё в порядке, то мы увидим что-то подобное:

Personalities :  
md0 : active raid1 sdb1 sdc1
488383352 blocks super 1.2 [2/2] 

Из вывода видно состояние raid (active), название устройства raid (md0) и какие устройства в него включены (sdb1 sdc1), какой именно raid собран (raid1), в нём два диска и они оба работают в raid ([2/2] )

Ставим hdparm

apt-get install hdparm

Смотрим скорость чтения с накопителя

hdparm -t /dev/sdX

Где /dev/sdX — имя устройства которое необходимо проверить.

Полезной программой для анализа нагрузки на диски является iostat, входящей в пакет sysstat
Ставим:

apt-get install sysstat

Теперь смотрим вывод iostat по всем дискам в системе:

iostat -x

С интервалом 10 секунд:

iostat -x 10

Или по определённому накопителю:

iostat -x /dev/sdX

Полученные данные покажут нам нагрузку на устройства хранения, статистику по вводу/выводу, процент утилизации накопителя.

Переходим непосредственно к проверке накопителей. Проверка на наличие сбойных блоков осуществляется при помощи программы badblocks. Для проверки жесткого диска на бэдблоки, выполнить:

badblocks -v /dev/sdX

Где /dev/sdX — имя устройства которое необходимо проверить. Если программа обнаружит наличие сбойных блоков, она выведет их количество на консоль. Выполнение данной операции может занять продолжительное время (до нескольких часов) и желательно её выполнение на размонтированной файловой системе, либо в режиме read-only.

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

badblocks /dev/sdX > /tmp/badblock

Где /tmp/badblock — файл куда программа запишет номера сбойных блоков.

Теперь при помощи программы e2fsck мы можем пометить сбойные блоки и они будут в дальнейшем игнорироваться системой

ВНИМАНИЕ! Данная операция должна проводиться на размонтированной файловой системе, либо в режиме read-only! Проверенное устройство и устройство на накотором будут помечаться сбойные блоки должно быть одно и тоже!

e2fsck -l /tmp/badblock /dev/sdX

Если были обнаружены сбойные блоки на диске, есть тенденция появления новых бэдблоков, необходимо задуматься о скорейшем копировании данных и замене данного носителя. Приведённые выше команды помогут выявить сбойные блоки и пометить их как таковые, но не спасут «сыпящийся» диск.

Также в своём инструментарии полезно использовать данные полученные из S.M.A.R.T. дисков.

Ставим пакет smartmontools

apt-get install smartmontools

Получаем данные S.M.A.R.T. жесткого диска:

smartctl -a /dev/sdX

Для сохранности данных настоятельно рекомендуем делать backup (резервное копирование). Это поможет в кратчайшие сроки восстановить необходимые данные и настройки в форс-мажорных обстоятельствах.

—-
Актуальность: 2012/02/29

fsck — Checking and Repairing Linux Filesystems

fsck command examples

fsck

«fsck» is used to check and optionally repair one or more of your Linux filesystems. When issuing the «fsck» command you can specify a mount point such as «/», a device «/dev/sda1» or you can specify a UUID. If no filesystems are passed to the command line and the «-A» option is not passed, then fsck will use the entries within the «/etc/fstab» to check. Many distributions of Linux will run a automatic «fsck» after x number of days or x number of re-boots. When running the fsck command, you should always unmount the filesystem first. This will reduce the chances of any corruption occurring.

fsck — Error Codes:

The exit code returned by the fsck command is the sum of the following conditions:

            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 cancelled by user request
            128  - Shared-library error

Examples of fsck commands

As mentioned earlier, you should NEVER run fsck on a mounted filesystem. First, we will display all mounted filesystems. This will enable us to work out if we need to unmount any filesystems before running the fsck command.

Display mounted filesystems — mount

In the example below we have used the «mount» command to display all mounted filesystems. We also used the «df» command to display the mount points.

fsck — Basic Check

Now we can unmount the device/filesystem to carry out our «fsck» checks. Note, the command to unmount is «umount» without a «n»

After unmounting the device «/dev/sdb1» we then ran our «fsck». In this example it was found to be clean with no errors reported.

In the above example, we run the same commands, however, we specified the name of the filesystem instead of the device.

fsck — Only if filesystem is unmounted

In the following example we ran the «fsck» command, however, we passed an additional parameter of «-M». The «-M» parameter instructs the fsck command to only run a check if the filesystem is not mounted. In our example, we had not unmounted the filesystem therefore no action was taken. If no action was taken against a mounted filesystem, then a return code of «0» is returned. We can verify this by issuing the «echo $?» command.

It is a good idea to get into the habit of using the «-M» option every time you run the fsck as this will safe guard against accidentally running a fsck against a mounted filesystem.

fsck — Automatically fix errors

By specifying the «-y» parameter, fsck will attempt to automatically fix/repair any errors. The «-y» automatically answers «y» to any responses that you would normally have to reply to.

fsck — run but do not fix any errors

By using the «-n» parameter, we will run the fsck, however, it will not attempt to make any fixes to our filesystems. Not all filesystems will accept the «-n» option. Sometimes you may need to run the «-N» option which will carry out no fixes, it will only report what would be done. This is because not all filesystem checkers will report errors. For example «fsck.reiserfs» will not report any corruption with the «-n» option!

Common types of filesystems supported by fsck

In the example below taken from my «Ubuntu 12.04 LTS» system we can see that there are numerous types of fsck checkers available. The number may differ depending on what distribution of Linux you are using.

As with many Linux commands there are numerous options available that can be passed to the «fsck» command. To see all the available options issue the «man fsck» command.

Conclusion

fsck is a useful command that can check your filesystem for errors and fix them automatically. Most of the time, you won’t have to bother with it as your system will usually run it regularly during boot up to make sure everything is working fine. However, when your filesystem get corrupted, this is the easiest way to find out what happen and fix it.

Note: fsck is also available in Mac.

Image credit: Testing Connections by BigStockPhoto

Join the elite circle of Linux Power Users with this bundle

Do you have a burning desire to learn how to use Linux? If so, you have to check out the Linux Power User Bundle. Don’t worry about prior experience because these courses will show you how to install Linux servers and utilize proper command line technique like a pro. Open up a world of opportunity by learning Linux in this bundle, available now for just $19.

Damien

Damien Oh started writing tech articles since 2007 and has over 10 years of experience in the tech industry. He is proficient in Windows, Linux, Mac, Android and iOS, and worked as a part time WordPress Developer. He is currently the owner and Editor-in-Chief of Make Tech Easier.

Работа с файловой системой в Linux

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

Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.

Создание файловой системы

Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:

Доступны дополнительные параметры:

  • — проверить устройство на наличие битых секторов
  • -b — размер блока файловой системы
  • -j — использовать журналирование для ext3
  • -L — задать метку раздела
  • -v — показать подробную информацию о процессе работы
  • -V — версия программы

Создаем файловую систему на нашем устройстве. Будем создавать ext3:

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

Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра — устройство и новую метку если нужно.

Смотрим метку:

Устанавливаем новую:

Настройка файловой системы linux

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

Синтаксис команды очень прост:

$ tune2fs опции устройство

Поддерживаются следующие опции:

  • -j — создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
  • -J — настроить параметры журнала
  • -l — получить содержимое суперблока
  • -L — изменить метку раздела
  • -m — изменить процент дискового пространства, зарезервированного для суперпользователя
  • -M — изменить последнюю папку монтирования
  • -U — задать UUID файловой системы
  • -C — изменить значение счетчика монтирования
  • -T — изменить последнюю дату проверки файловой системы
  • — изменить периодичность проверок файловой системы с помощью fsck
  • -O — изменить опции файловой системы.

Изменить размер зарезервированного места для суперпользователя до пяти процентов:

Изменить счетчик количества монитрований:

Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.

С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:

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

Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.

Изменение размера файловой системы Linux

Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs — resize2fs.

Запустить утилиту очень просто. Ей нужно передать всего два параметра:

$ resize2fs устройство размер

Доступны также опции:

  • -M уменьшить файловую систему до минимального размера
  • -f — принудительное изменение, не смотря на потерю данных
  • -F — очистить буфер файловой системы

Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.

Для примера уменьшим размер нашего раздела до 400 Мегабайт:

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

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

Синтаксис fsck:

$ fsck устройство

Опции программы:

  • -p — автоматическое восстановление
  • -n — только проверка, без восстановления
  • -y — ответить да на все запросы программы
  • — проверить на битые сектора (аналог badblocks
  • -f — принудительная проверка, даже если раздел помечен как чистый
  • -j — внешний журнал файловой системы

Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:

 Дефрагментация файловой системы

Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:

Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:

В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 — нужна дефрагментация.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector