Files
StrixScripts/HDD/erase-storage.md
T

64 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# erase-storage.sh
Изтрива един дял с еднократен запис на нули или псевдослучайни данни, или
използва поддържания от устройството ATA Secure Erase/NVMe Sanitize за цял диск.
## Какво прави
При подаване на дял, скриптът записва точно размера на целия дял един път. По подразбиране
използва нули; може да се избере и `/dev/urandom`. Изисква root права,
проверява че устройството не е монтирано, не е активен swap и не участва в
root filesystem, след което иска потвърждение чрез въвеждане на точния път.
При подаване на цял диск скриптът проверява поддръжката преди да продължи.
За NVMe избира наличния Sanitize метод в следния ред: Crypto Erase, Block
Erase, Overwrite. За ATA избира Enhanced Security Erase, ако устройството го
обявява, иначе стандартен Security Erase. Ако методът не може да бъде
потвърден, устройството е замразено/вече е с активирана ATA защита или
информацията за capability е неясна, скриптът отказва да продължи. Преди
изтриването на цял диск показва отделно предупреждение и изисква две
потвърждения, като второто е точното име на устройството.
**Изтриването е необратимо и при режим за цял диск засяга всички дялове.**
Преди въпросите за потвърждение скриптът показва наличните block devices,
размер, тип, файлов тип и mount points; подаденото устройство е оцветено в
червено в терминал. След това скриптът предупреждава, че работата може да продължи часове, и
изисква `yes` за продължаване или `no` за прекратяване. Не изключвай,
рестартирай или приспивай компютъра и не прекъсвай захранването или връзката
с диска. За дял следва отделно потвърждение с точния device path; за цял диск
следват две допълнителни потвърждения. При прекъсване на ATA
Security Erase устройството може да остане заключено с временната парола,
посочена в съобщението за грешка. Secure Erase/Sanitize зависи от коректната
реализация във firmware на устройството; скриптът не може да гарантира
възстановимост или физическо състояние на носителя.
## Изисквания
- Linux, Bash и root права (`sudo`)
- `lsblk`, `findmnt`, `swapon`, `dd` и GNU/Linux стандартни помощни команди
- За NVMe: `nvme-cli` и `jq`
- За ATA: `hdparm`
## Употреба
```bash
sudo ./HDD/erase-storage.sh --help
sudo ./HDD/erase-storage.sh /dev/sda1
sudo ./HDD/erase-storage.sh /dev/nvme0n1p2 random
sudo ./HDD/erase-storage.sh /dev/sda
sudo ./HDD/erase-storage.sh /dev/nvme0n1
```
`dev/sda1` без начална наклонена черта също се приема като `/dev/sda1`.
| Аргумент | Описание |
|----------|----------|
| `DEVICE` | Block device — дял или цял диск |
| `zero` | Един проход с нули върху дял; режим по подразбиране |
| `random` | Един проход с псевдослучайни данни върху дял |
| `-h`, `--help` | Показва помощта и приключва |
Режимът `zero`/`random` не е Secure Erase и не гарантира изтриване на
пренасочени или недостъпни физически сектори. При SSD не използвай обикновен
запис към дял като гаранция за заличаване; използвай само успешно завършен
Sanitize/Secure Erase, поддържан от устройството.