К распространенным ошибкам диска относятся физические сбои, плохие сектора или блоки, а также несовместимые файловые системы, которые могут привести к различным проблемам. Диагностика этих проблем в Linux может быть выполнена с помощью встроенных инструментов командной строки.
При выполнении этих тестов диск не должен быть смонтирован. Если необходимо проверить корневую файловую систему, а она не может быть размонтирована из-за вошедших в систему пользователей, можно загрузиться в живую систему Linux, например с установочного диска Ubuntu. Этот метод также полезен для восстановления таблиц разделов.
Шаги по проверке диска на наличие ошибок и плохих секторов в Linux
Откройте приложение терминала.
Отобразите список доступных дисков в вашей системе.
1 | lsblk |
Пример вывода
1 2 3 4 5 6 7 8 9 10 11 12 13 | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 55.4M 1 loop /snap/core18/1997 loop1 7:1 0 219M 1 loop /snap/gnome-3-34-1804/66 loop2 7:2 0 64.8M 1 loop /snap/gtk-common-themes/1514 loop3 7:3 0 32.3M 1 loop /snap/snapd/11588 loop4 7:4 0 51M 1 loop /snap/snap-store/518 loop5 7:5 0 65.1M 1 loop /snap/gtk-common-themes/1515 sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 513M 0 part /boot/efi └─sda3 8:3 0 19.5G 0 part / sdb 8:16 0 20G 0 disk /mnt/data sr0 11:0 1 1024M 0 rom |
Убедитесь, что диск, который вы хотите исследовать, размонтирован.
1 | sudo umount /dev/sdb |
Оцените состояние здоровья диска S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) с помощью smartctl.
1 | sudo smartctl -H /dev/sdb |
Пример вывода:
1 2 3 4 5 | smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.11.0-16-generic] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Health Status: OK |
Проверьте целостность файловой системы на диске с помощью fsck.
1 | sudo fsck /dev/sdb |
Пример вывода
1 2 3 | fsck from util-linux 2.36.1 e2fsck 1.45.7 (28-Jan-2021) /dev/sdb: clean, 11/1310720 files, 126322/5242880 block |
Проверьте диск на наличие плохих блоков или плохих секторов с помощью функции badblocks.
1 | sudo badblocks -v /dev/sdb |
Пример вывода
1 2 3 | Checking blocks 0 to 20971519 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. (0/0/0 errors) |