Начини на плащане Abuse

Как да проверите диска за битови сектори в Linux

20.03.2021, 18:37

Твърдият диск е най-важната част на компютъра. На него се съхраняват файловете на операционната система и друга важна информация. Единицата за съхранение на твърдия диск е сектор или блок. В него се съхранява определено количество данни, обикновено 512 или 1024 байта. С течение на времето в диска се появяват битови сектори, които спират да работят, но файловата система продължава да се опитва да записва информация в тях. Изключително трудно е да се запише информация в такива сектори, така че потребителят може да ги загуби. И този недостатък е характерен за твърдите дискове HDD, докато SSD дисковете са лишени от тези недостатъци. Те разполагат със специален контролер, който премества данните от битовите сектори в работните. В тази статия ще ви разкажем как да проверите диска за битови сектори в Linux.

Проверка на диска за наличие на битови сектори

В Linux се използва програма, наречена badblocks, за търсене на лоши сектори на твърдия диск. Ако трябва да проверите главния или домашния дял на диска, по-добре е да стартирате в LiveCD, така че файловата система да не е монтирана. Ако трябва да видите какви дялове има на диска, можете да използвате командата fdisk:

$ sudo fdisk -l /dev/sda1

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

Използвайки графичния интерфейс, можете да използвате Gparted - специална програма. Потребителят трябва само да избере необходимия диск в падащия списък.

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

В конкретен пример нека разгледаме как да проверим дял /dev/sda2 с файлова система XFS. За тази цел се използва командата badblocks. Нейният синтаксис е съвсем прост:

$ sudo badblocks -vn /dev/sda2 -o ~/bad_sectors.txt 

Може да ви трябват следните програмни опции:

  • -e - позволява да зададете броя на битовите блокове, след които проверката не трябва да продължава;
  • -f - по подразбиране програмата прескача теста за четене/запис, ако файловата система е монтирана, за да не я повреди; тази опция ви позволява да извършвате тези тестове дори за монтирани системи;
  • -o - записва откритите битови блокове в посочения файл;
  • -p - брой сканирания, по подразбиране само едно;
  • -s - показва напредъка на сканирането на дяловете;
  • -v - максимално подробен режим;
  • -i - позволява да прехвърлите списъка с предварително намерените битови сектори, за да не се налага да ги проверявате отново;
  • -n - използва тест за безопасно четене и запис, по време на този тест данните не се изтриват;
  • -w - позволява ви да извършите тест за запис, във всеки блок се записва определена последователност от байтове, която изтрива данните, които преди това са били записани там.

За целите на нормален тест използвайте тази команда:

$ sudo badblocks -v /dev/sda2 -o ~/bad_sectors.txt

Можете да изпълнявате тази команда на диска на операционната система, в това няма нищо лошо - тя не може да навреди. Позволено е тя да се изпълнява върху монтирана файлова система, въпреки че е по-добре да не го правите Ако файловата система е демонтирана, препоръчваме да направите тест за запис с опцията -n:

$ sudo badblocks -vn /dev/sda2 -o ~/bad_sectors.txt

След като тестът приключи, на системата трябва да се съобщи информацията за битовите сектори, така че тя да няма достъп до тях. За тази цел можете да използвате помощната програма fsck и опцията -l:

$ fsck -l ~/bad_sectors.txt /dev/sda1

Ако използвате файлова система от фамилията Ext, използвайте командата e2fsck, за да търсите битови блокове и автоматично да ги регистрирате във файловата система:

$ sudo e2fsck -cfpv /dev/sda1

С помощта на опцията -c е лесно да се търсят битови блокове и да се добавят към списъка, -f проверява файловата система, -p възстановява повредени данни, а -v показва всичко в детайли.

Сега вече знаете как да проверите твърдия си диск и да намерите битови сектори.