| Summary: |
Erasing partition with zeroes doesn't erase existing data |
| Product: |
udisks
|
Reporter: |
Sylvain Pasche <sylvain.pasche> |
| Component: |
operations | Assignee: |
Martin Pitt <martin.pitt> |
| Status: |
NEW
---
|
QA Contact: |
|
| Severity: |
major
|
|
|
| Priority: |
medium
|
|
|
| Version: |
unspecified | |
|
| Hardware: |
x86-64 (AMD64) | |
|
| OS: |
Linux (All) | |
|
| Whiteboard: |
|
|
i915 platform:
|
|
i915 features:
|
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
I wanting to erase a partition containing existing data by creating a new partition from gnome-disk-utility by checking "Overwrite existing data with zeroes" when formatting the partition. To my surprise, I ran "strings" on the just erased partition and I could still see old data. This is a on Fedora 23 with udisks2-2.1.6-1.fc23.x86_64. To reproduce: # write some test data yes sensitive_data > /dev/sda4 # status before the erase strings /dev/sda4|grep sensitive_data|wc -l 35791394 # now erase the partition with zeroes # status after erase strings /dev/sda4|grep sensitive_data|wc -l 544492 I ran strace on the udisksd process and I can see the writes to the drive: 27221 open("/dev/sda4", O_WRONLY|O_EXCL|O_SYNC) = 14 27221 ioctl(14, BLKGETSIZE64 <unfinished ...> 27221 <... ioctl resumed> , [536870912]) = 0 27221 write(14, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576) = 1048576 The partition is 536870912 bytes (512MB) large. There are 512 calls to write() with a buffer of 1048576 bytes. So in theory all of the partition should be overwritten (1048576 * 512 = 536870912), so I'm surprised to see such behavior. The drive is a SSD from a Toshiba Portegé laptop.