61 lines
3.7 KiB
Markdown
61 lines
3.7 KiB
Markdown
# repair-hdd.sh
|
||
|
||
Презаписва избран диск, за да задейства remap на проблемни сектори, след
|
||
което изпълнява SMART extended self-test и показва финален отчет.
|
||
|
||
## Какво прави
|
||
|
||
Скриптът записва целия block device с нули или псевдослучайни данни. След
|
||
това стартира продължителен SMART self-test и изчаква очакваното му време,
|
||
преди да покаже резултата и SMART атрибутите. Изходът се записва в
|
||
`/var/log/hdd-repair/`.
|
||
|
||
**Операцията унищожава всички данни на избрания диск.** Преди запис скриптът
|
||
проверява дали дискът участва в root filesystem, проверява за монтирани
|
||
дъщерни устройства и активен swap, и изисква изрично потвърждение `YES`.
|
||
Ако дъщерно устройство не може да се демонтира, скриптът прекратява
|
||
операцията.
|
||
|
||
В началото скриптът показва наличните block devices, размер, тип, файлов тип
|
||
и mount points; подаденият диск е оцветен в червено в терминал. След това
|
||
предупреждава, че работата може да продължи часове, и изисква отговор `yes`
|
||
за продължаване или `no` за прекратяване. По време на
|
||
целия процес не изключвай компютъра, не го рестартирай/приспивай и не
|
||
прекъсвай захранването или връзката с диска. Преди самия запис има отделно
|
||
потвърждение с `YES`.
|
||
|
||
Използвай само с правилно идентифициран диск, който можеш безопасно да
|
||
изтриеш. Изисква пряка SATA връзка; `smartctl` не използва `-d sat`, затова
|
||
USB адаптер може да изисква ръчна промяна на извикванията в скрипта.
|
||
|
||
## Изисквания
|
||
|
||
- Linux и Bash
|
||
- Root права (`sudo`)
|
||
- `smartctl` от пакета smartmontools
|
||
- `findmnt`, `lsblk`, `readlink`, `swapon`, `umount` и стандартните GNU/Linux
|
||
помощни команди, използвани от скрипта
|
||
- OpenSSL е незадължителен; при липса режимът `random` използва `/dev/urandom`
|
||
|
||
## Употреба
|
||
|
||
```bash
|
||
sudo ./HDD/repair-hdd.sh --help
|
||
sudo ./HDD/repair-hdd.sh /dev/sdX
|
||
sudo ./HDD/repair-hdd.sh /dev/sdX zero
|
||
sudo ./HDD/repair-hdd.sh /dev/sdX null
|
||
sudo ./HDD/repair-hdd.sh /dev/sdX random
|
||
```
|
||
|
||
| Аргумент | Описание |
|
||
|----------|----------|
|
||
| `DEVICE` | Целият диск, например `/dev/sdX`, не дял от него |
|
||
| `zero` | Записва нули; режим по подразбиране |
|
||
| `null` | Синоним на `zero` |
|
||
| `random` | Записва псевдослучайни данни |
|
||
| `-h`, `--help` | Показва помощта и приключва |
|
||
|
||
Изпълнението може да продължи часове. Не прекъсвай захранването или връзката
|
||
с диска по време на записа или SMART теста. SMART remap не възстановява
|
||
данни и не гарантира, че дискът ще стане надежден; запази резервно копие и
|
||
подмени диск с повтарящи се грешки. |