# 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 е неясна, скриптът отказва да продължи. Преди изтриването на цял диск показва отделно предупреждение и изисква две потвърждения, като второто е точното име на устройството. **Изтриването е необратимо и при режим за цял диск засяга всички дялове.** В началото скриптът предупреждава, че работата може да продължи часове, и изисква `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, поддържан от устройството.