Add initial scripts and project conventions
This commit is contained in:
1 parent
af9f32facc
commit
c777cf115b
14 files changed
+982
-9
No files matched your search
@@ -0,0 +1,58 @@
|
||||
# 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 е неясна, скриптът отказва да продължи. Преди
|
||||
изтриването на цял диск показва отделно предупреждение и изисква две
|
||||
потвърждения, като второто е точното име на устройството.
|
||||
|
||||
**Изтриването е необратимо и при режим за цял диск засяга всички дялове.**
|
||||
Не прекъсвай захранването или връзката с диска. При прекъсване на 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, поддържан от устройството.
|
||||
Reference in new issue
Block a user