mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-25 02:52:07 +00:00
Filter bind mounts from imgutil capture
If bind mounts are in use, it will foul the capture. Notably, one example is if you install the firefox snap in ubuntu, snapd creates a bind mount. This will ignore bind mounts, and rely upon the system to put it straight.
This commit is contained in:
parent
8f927d94e9
commit
e90f2829ab
@ -61,13 +61,27 @@ FALLOC_FL_PUNCH_HOLE = 2
|
||||
numregex = re.compile('([0-9]+)')
|
||||
|
||||
def get_partition_info():
|
||||
with open('/proc/self/mountinfo') as procinfo:
|
||||
mountinfo = procinfo.read()
|
||||
capmounts = set([])
|
||||
for entry in mountinfo.split('\n'):
|
||||
if not entry:
|
||||
continue
|
||||
firstinf, lastinf = entry.split(' - ')
|
||||
root, mount = firstinf.split()[3:5]
|
||||
filesystem = lastinf.split()[0]
|
||||
if root != '/':
|
||||
continue
|
||||
if filesystem not in ('ext3', 'ext4', 'xfs', 'btrfs', 'vfat'):
|
||||
continue
|
||||
capmounts.add(mount)
|
||||
with open('/proc/mounts') as procmounts:
|
||||
mountinfo = procmounts.read()
|
||||
for entry in mountinfo.split('\n'):
|
||||
if not entry:
|
||||
continue
|
||||
dev, mount, fs, flags = entry.split()[:4]
|
||||
if fs not in ('ext3', 'ext4', 'xfs', 'btrfs', 'vfat'):
|
||||
if mount not in capmounts:
|
||||
continue
|
||||
fsinfo = os.statvfs(mount)
|
||||
partinfo = {
|
||||
|
Loading…
Reference in New Issue
Block a user