martijnvanbrummelen / nwipe

nwipe secure disk eraser
GNU General Public License v2.0
693 stars 79 forks source link

GUI says "Disks and Partitions" but can only displays disks, not individual partitions #37

Open JohnVeness opened 6 years ago

JohnVeness commented 6 years ago

While researching ways to securely wipe partitions in Linux, I came across a screenshot of nwipe, with the text "Disks and Partitions" to select, which sounded like it would do the trick. That text does indeed appear in the GUI, however I notice that we can only select entire disks, not individual partitions (unless I'm missing something).

So this issue is to draw attention to the inconsistency. My ideal solution would be if the program could be altered such that individual partitions could be securely wiped, but if that is not possible, to at least change the text so it only says "Disks".

Many thanks for forking and maintaining this program.

kelderek commented 6 years ago

It can do partitions, but it seems to be undocumented and I don't think you can do it via the GUI alone. If you specify partition(s) on the command line, it will offer just those partitions to as targets to wipe in the GUI. e.g.

nwipe /dev/sda2 /dev/sdb1

I did some quick tests and the only issue I had was that the drive description for partitions is "Unknown". It wiped just the partitions I specified, leaving the partition table and other partitions alone. I hope this helps!

JohnVeness commented 6 years ago

I didn't know that, so many thanks. It would be very useful if these could be selected in the GUI alone.

martijnvanbrummelen commented 6 years ago

Please explain more, which version which os?. I am able to select partitions and wipe them.

kelderek commented 6 years ago

I primarily use it on PartEdMagic - which I believe is a slack based distro. The drives it typically sees are for Windows 10 boxes and sometimes the USB flash drive I booted from, if I haven't already removed it. nwipe version is 0.24. I just fired up a test box and it only shows the top level sda and sdb. Both are listed as msdos type partition tables in gparted. sda has two NTFS partitions (sda1 and sda2), and sdb has one FAT32 partition (sdb1). Booting to Linux Mint 18.3 from my USB loads nwipe 0.17 and it shows the same thing, only sda and sdb, no partitions. Booting to Ubuntu 17.10 from my USB loads nwipe 0.21 and it shows the same thing, only sda and sdb, no partitions.

JohnVeness commented 6 years ago

I've tried in Ubuntu 18.04 (nwipe 0.24) and only see drives, no partitions. Same with earlier Ubuntus which have nwipe 0.21.

To be clear, this is when running "sudo nwipe". If I run "sudo nwipe /dev/sda2 /dev/sdb1" for example, as @kelderek says on 22 Jan, that works, but not if I just run nwipe "normally".

Are you saying, @martijnvanbrummelen , that you see partitions listed if you just run nwipe on its own?

martijnvanbrummelen commented 6 years ago

I usally test nwipe on Debian Unstable, If I run nwipe either as root or with sudo it gives me all (lvm) and crypted devices. Will investigate this futher, thanks for reporting.

PartialVolume commented 6 years ago

Just to confirm I've never seen any /dev/sda1, /dev/sda2, only ever /dev/sda when nwipe is run with no arguments. I also do not see any lvm when with "nwipe /dev/sda". I do see the specific lv if I do nwipe /dev/sda1.

martijnvanbrummelen commented 6 years ago

Thanks for reporting this

PartialVolume commented 5 years ago

When nwipe is started without any devices specified in the command line it probes the disks using a function that returns the device only, e.g sda, sdb, hence why we don't see any partitions, unless you specify them explicitly on the command line.

The code that probes for devices needs a little bit of extra code added, probably a call to ped_disk_next_partition that allows us to determine how many partitions on each device. Once the partition has been enumerated the rest of the code, GUI and wipe routines appear to handle partitions OK, although this would need a good testing.

Maybe I'll look at this bug first as it looks like a quick fix whereas the interprocess communication required for hot swapping will need a lot more work and I need to plan it out first especially as the memory map will be indexed so it can be easily scaled for additional interprocess features, I.e certificate creation.