Проверка и восстановление дисков в Linux

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

Использовать диски с подозрениями на проблемы с поверхностью для хранения важных данных нельзя!Дано: Диски большого объема (2Тб и более) б.у. Есть подозрения на bad-блоки на этих дисках или на иные проблемы. Надо проверить и подтвердить или опровергнуть данное утверждение, а так же понять можно ли использовать эти диски в дальнейшем для домашней эксплуатации или хранения не сильно важных данных. Отступление: bad-блоки могут быть физические, когда поверхность диска не читается из-за повреждений и soft bad blocks. Soft bad block может появится под нагрузкой, при резком перепаде напряжения, программном сбое. Такие блоки можно устранить. Чем мы и займемся. Для тестирования будем использовать Ubuntu Linux. В компьютере установлен SSD для запуска системы и RAID1 из двух дисков для хранения данных. Данные на RAID зашифрованы. Диск для тестирования объемом 4Тб подключен через Sata.

Лечим soft bad блоки в Linux

Для начала найдем диск в системе: Команда: ~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 99,4M 1 loop /snap/core/11993 loop1 7:1 0 4K 1 loop /snap/bare/5 loop2 7:2 0 140K 1 loop /snap/gtk2-common-themes/13 loop3 7:3 0 55,5M 1 loop /snap/core18/2284 loop4 7:4 0 42,6M 1 loop /snap/leafpad/91 loop5 7:5 0 110,5M 1 loop /snap/core/12603 loop6 7:6 0 43,4M 1 loop /snap/snapd/14549 loop7 7:7 0 55,5M 1 loop /snap/core18/2253 loop8 7:8 0 43,3M 1 loop /snap/snapd/14295 loop9 7:9 0 65,2M 1 loop /snap/gtk-common-themes/1519 sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 513M 0 part /boot/efi └─sda3 8:3 0 223,1G 0 part / sdb 8:16 0 931,5G 0 disk └─sdb1 8:17 0 931,5G 0 part └─md0 9:0 0 931,4G 0 raid1 └─luks-de6e48cd-9eac-4313-af08-1600a4d675ae 253:0 0 931,4G 0 crypt /media/ru12/e3895716-9a8f-44bb-b07c-7fcce81a2d2c1 sdc 8:32 0 931,5G 0 disk └─md0 9:0 0 931,4G 0 raid1 └─luks-de6e48cd-9eac-4313-af08-1600a4d675ae 253:0 0 931,4G 0 crypt /media/ru12/e3895716-9a8f-44bb-b07c-7fcce81a2d2c1 sdd 8:48 0 3,6T 0 disk └─sdd1 8:49 0 3,6T 0 part Что мы видим: sda — система, sdb, sdc — члены RAID1, диск, который надо проверить — sdd. Почему важно удостовериться какой именно диск надо проверять. Мы будем делать низкоуровневое форматирование на следующем шаге, что может привести к потери данных, при выборе не того диска. Форматирование мы будем делать с привилегиями уровня root, и программе все равно, используется диск в данный момент или нет. Следующий шаг: делаем низкоуровневое форматирование диска. В реальности мы записываем в каждый кластер диска ноль. Программа dd будет писать 0 в кластер пока не запишет. ВАЖНО: Если dd вылетает с ошибкой (может просто завершиться намного раньше, чем планировалось), значит диск отформатировать невозможно. Это означает, что при попытке записать 0 в кластер произошла неустранимая ошибка и запись невозможна. При этом кластер не помечен как сбойный. Надо проверить статус SMART диска (как это сделать ниже). Скорее всего диск использовать нельзя. Он «осыпается» bad blocks на ходу. ~$ sudo dd if=/dev/zero of=/dev/sdd ВАЖНО: программа dd не выводит данных о прогрессе выполнения процесса. Это нормальный режим ее работы. Чтобы посмотреть сколько осталось и сколько уже сделано, надо запустить другую команду в другом терминальном окне: ~$ sudo progress -w [ 1778] dd /dev/sdd 18.9% (704.5 GiB / 3.6 TiB) 32.6 MiB/s remaining 1 day 2:23:41 После выполнения низкоуровнего форматирования надо проверить статус SMART диска, чтобы понять есть на нем сбойные кластеры или нет.

проверка smart жесткого диска в Linux

~$ sudo smartctl -s on -a /dev/sdd SMART выдает много параметров, но нас в данном случае интересует: 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline — 0 В последней строке должно стоять 0. Это значит, что сбойных кластеров на диске не обнаружено и им можно пользоваться.  

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