From bbec590266a7d1aaf276437b551c03ddbe72bf56 Mon Sep 17 00:00:00 2001 From: Ejner Fergo <efer@dtu.dk> Date: Fri, 8 Nov 2019 13:59:22 +0100 Subject: [PATCH] check for nvme ses capability --- ssd-eraser | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ssd-eraser b/ssd-eraser index a317bd4..216228d 100755 --- a/ssd-eraser +++ b/ssd-eraser @@ -13,8 +13,9 @@ __version__ = '0.1' import os +import json from time import sleep -from subprocess import run, CalledProcessError +from subprocess import run, CalledProcessError, PIPE try: import pyudev except ImportError: @@ -148,7 +149,14 @@ def unfreeze(): def erase(disk): print(YELLOW+"Erasing "+disk+WHITE) if DINFO[disk][1] == 'NVMe': - cmd = ['nvme', 'format', disk, '--ses=2'] + checkcap = ['nvme', 'id-ctrl', disk, '-o', 'json'] + getcap = run(checkcap, stdout=PIPE, check=True) + nvmecap = json.loads(getcap.stdout) + if nvmecap['fna'] == 5: + ses = '--ses=2' + else: + ses = '--ses=1' + cmd = ['nvme', 'format', disk, ses] try: run(cmd, check=True) sleep(20) -- GitLab