2
from stat import S_ISBLK
4
from subprocess import (
11
def is_block_device(path):
13
Confirm device at path is a valid block device node.
15
:returns: boolean: True if path is a block device, False if not.
17
return S_ISBLK(stat(path).st_mode)
20
def zap_disk(block_device):
22
Clear a block device of partition table. Relies on sgdisk, which is
23
installed as pat of the 'gdisk' package in Ubuntu.
25
:param block_device: str: Full path of block device to clean.
27
# sometimes sgdisk exits non-zero; this is OK, dd will clean up
28
call(['sgdisk', '--zap-all', '--mbrtogpt',
29
'--clear', block_device])
30
dev_end = check_output(['blockdev', '--getsz', block_device])
31
gpt_end = int(dev_end.split()[0]) - 100
32
check_call(['dd', 'if=/dev/zero', 'of=%s'%(block_device),
34
check_call(['dd', 'if=/dev/zero', 'of=%s'%(block_device),
35
'bs=512', 'count=100', 'seek=%s'%(gpt_end)])