دستور `shred` روی SSD و NVMe همیشه قابل اعتماد نیست چون به خاطر wear leveling ممکنه کنترلر SSD داده رو روی بلاک فیزیکی دیگهای بنویسه و نسخه قبلی اصلاً overwrite نشه، روی فایلسیستمهای journaled مثل ext4 و xfs هم ممکنه بخشی از داده داخل journal باقی بمونه، روی Btrfs و ZFS هم به خاطر مکانیزم Copy on Write عملاً بلاک جدید ساخته میشه و overwrite واقعی روی بلاک قبلی انجام نمیشه، ضمن اینکه firmware خود SSD یه لایه mapping داخلی داره که سیستمعامل مستقیم بهش دسترسی نداره، برای همین overwrite کردن فایل لزوماً به معنی overwrite شدن واقعی سلولهای NAND نیست؛ برای secure deletion واقعی روی SSD بهتره از اول Full Disk Encryption داشته باشی و بعد فقط key رو نابود کنی یا از ATA Secure Erase، `nvme format` و `blkdiscard` استفاده کنی چون مستقیمتر با firmware و مدیریت بلاکهای SSD کار میکنن، در حالی که `shred` بیشتر برای HDDهای قدیمی و فایلسیستمهای non-CoW طراحی شده بوده که overwrite واقعاً روی همون سکتور انجام میشد.
@SohrabContents