dissect.volume 3.11.dev3__tar.gz → 3.12.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dissect_volume-3.12.dev2/.gitattributes +4 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/PKG-INFO +1 -1
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/dm/thin.py +4 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/lvm/metadata.py +6 -1
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/PKG-INFO +1 -1
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/SOURCES.txt +6 -4
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/conftest.py +8 -3
- dissect_volume-3.12.dev2/tests/data/dm/dm-thin-empty-data.bin.gz +0 -0
- dissect_volume-3.12.dev2/tests/data/dm/dm-thin-empty-metadata.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_dm.py +21 -1
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_lvm.py +10 -0
- dissect_volume-3.11.dev3/.gitattributes +0 -48
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/COPYRIGHT +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/LICENSE +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/MANIFEST.in +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/README.md +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/ddf/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/ddf/c_ddf.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/ddf/ddf.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/disk.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/partition.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/apm.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/bsd.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/gpt.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/mbr.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/dm/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/dm/btree.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/dm/c_dm.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/exceptions.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/ldm.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/lvm/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/lvm/c_lvm2.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/lvm/lvm2.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/lvm/physical.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/md/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/md/c_md.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/md/md.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/raid/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/raid/raid.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/raid/stream.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/vss.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/dependency_links.txt +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/requires.txt +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/top_level.txt +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/pyproject.toml +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/setup.cfg +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/__init__.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/apm.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/bsd.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/bsd64.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-raid1-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-raid1-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid1-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid1-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid10-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid10-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid10-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid10-4.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid4-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid4-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid5-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid5-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid5-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid6-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid6-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid6-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid6-4.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/dm/dm-thin-data.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/dm/dm-thin-metadata.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/gpt.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/gpt_4k.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/gpt_esxi.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/gpt_hybrid.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/gpt_no_name_xff.bin +0 -0
- {dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-mirror-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-mirror-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-thin.bin.gz +0 -0
- {dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/mbr.bin +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-90-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-90-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-90-raid1-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-90-raid1-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-linear-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-linear-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid0-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid0-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid0-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid1-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid1-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid10-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid10-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid4-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid4-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid4-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid5-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid5-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid5-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid6-1.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid6-2.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid6-3.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/md/md-raid6-4.bin.gz +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/docs/Makefile +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/docs/conf.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/docs/index.rst +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_apm.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_bsd.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_ddf.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_gpt.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_mbr.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/test_md.py +0 -0
- {dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.12.dev2
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License: Affero General Public License v3
|
|
@@ -77,6 +77,10 @@ class ThinDevice(AlignedStream):
|
|
|
77
77
|
while length > 0:
|
|
78
78
|
block_info = data_mapping.lookup([self.device_id, block])
|
|
79
79
|
if block_info is None:
|
|
80
|
+
remaining = length
|
|
81
|
+
if self.size is None or (remaining := self.size - offset) > 0:
|
|
82
|
+
return b"\x00" * min(length, remaining)
|
|
83
|
+
|
|
80
84
|
break
|
|
81
85
|
|
|
82
86
|
block_time = int.from_bytes(block_info, "little")
|
|
@@ -342,7 +342,12 @@ class StripedSegment(Segment):
|
|
|
342
342
|
offset = 0
|
|
343
343
|
for pv_name, extent_offset in self.stripes:
|
|
344
344
|
if pv_name not in opened_pv:
|
|
345
|
-
|
|
345
|
+
if (pv_dev := pv[pv_name].dev) is not None:
|
|
346
|
+
pv_fh = pv_dev.open()
|
|
347
|
+
else:
|
|
348
|
+
raise LVM2Error(
|
|
349
|
+
f"Physical volume not found: {pv_name} (id={pv[pv_name].id}, device={pv[pv_name].device})"
|
|
350
|
+
)
|
|
346
351
|
opened_pv[pv_name] = pv_fh
|
|
347
352
|
else:
|
|
348
353
|
pv_fh = opened_pv[pv_name]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.12.dev2
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License: Affero General Public License v3
|
|
@@ -58,10 +58,6 @@ tests/data/gpt_4k.bin
|
|
|
58
58
|
tests/data/gpt_esxi.bin
|
|
59
59
|
tests/data/gpt_hybrid.bin
|
|
60
60
|
tests/data/gpt_no_name_xff.bin
|
|
61
|
-
tests/data/lvm-mirror-1.bin.gz
|
|
62
|
-
tests/data/lvm-mirror-2.bin.gz
|
|
63
|
-
tests/data/lvm-thin.bin.gz
|
|
64
|
-
tests/data/lvm.bin.gz
|
|
65
61
|
tests/data/mbr.bin
|
|
66
62
|
tests/data/ddf/ddf-raid0-1.bin.gz
|
|
67
63
|
tests/data/ddf/ddf-raid0-2.bin.gz
|
|
@@ -84,7 +80,13 @@ tests/data/ddf/ddf-raid6-2.bin.gz
|
|
|
84
80
|
tests/data/ddf/ddf-raid6-3.bin.gz
|
|
85
81
|
tests/data/ddf/ddf-raid6-4.bin.gz
|
|
86
82
|
tests/data/dm/dm-thin-data.bin.gz
|
|
83
|
+
tests/data/dm/dm-thin-empty-data.bin.gz
|
|
84
|
+
tests/data/dm/dm-thin-empty-metadata.bin.gz
|
|
87
85
|
tests/data/dm/dm-thin-metadata.bin.gz
|
|
86
|
+
tests/data/lvm/lvm-mirror-1.bin.gz
|
|
87
|
+
tests/data/lvm/lvm-mirror-2.bin.gz
|
|
88
|
+
tests/data/lvm/lvm-thin.bin.gz
|
|
89
|
+
tests/data/lvm/lvm.bin.gz
|
|
88
90
|
tests/data/md/md-90-1.bin.gz
|
|
89
91
|
tests/data/md/md-90-2.bin.gz
|
|
90
92
|
tests/data/md/md-90-raid1-1.bin.gz
|
|
@@ -27,17 +27,17 @@ def open_files_gz(names: list[str], mode: str = "rb") -> Iterator[list[gzip.Gzip
|
|
|
27
27
|
|
|
28
28
|
@pytest.fixture
|
|
29
29
|
def lvm() -> Iterator[BinaryIO]:
|
|
30
|
-
yield from open_file_gz("data/lvm.bin.gz")
|
|
30
|
+
yield from open_file_gz("data/lvm/lvm.bin.gz")
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
@pytest.fixture
|
|
34
34
|
def lvm_thin() -> Iterator[BinaryIO]:
|
|
35
|
-
yield from open_file_gz("data/lvm-thin.bin.gz")
|
|
35
|
+
yield from open_file_gz("data/lvm/lvm-thin.bin.gz")
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
@pytest.fixture
|
|
39
39
|
def lvm_mirror() -> Iterator[list[BinaryIO]]:
|
|
40
|
-
yield from open_files_gz(["data/lvm-mirror-1.bin.gz", "data/lvm-mirror-2.bin.gz"])
|
|
40
|
+
yield from open_files_gz(["data/lvm/lvm-mirror-1.bin.gz", "data/lvm/lvm-mirror-2.bin.gz"])
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
@pytest.fixture
|
|
@@ -90,6 +90,11 @@ def dm_thin() -> Iterator[list[BinaryIO]]:
|
|
|
90
90
|
yield from open_files_gz(["data/dm/dm-thin-metadata.bin.gz", "data/dm/dm-thin-data.bin.gz"])
|
|
91
91
|
|
|
92
92
|
|
|
93
|
+
@pytest.fixture
|
|
94
|
+
def dm_thin_empty() -> Iterator[list[BinaryIO]]:
|
|
95
|
+
yield from open_files_gz(["data/dm/dm-thin-empty-metadata.bin.gz", "data/dm/dm-thin-empty-data.bin.gz"])
|
|
96
|
+
|
|
97
|
+
|
|
93
98
|
@pytest.fixture
|
|
94
99
|
def md_linear() -> Iterator[list[BinaryIO]]:
|
|
95
100
|
yield from open_files_gz(["data/md/md-linear-1.bin.gz", "data/md/md-linear-2.bin.gz"])
|
|
Binary file
|
|
Binary file
|
|
@@ -22,4 +22,24 @@ def test_dm_thin(dm_thin: list[BinaryIO]) -> None:
|
|
|
22
22
|
|
|
23
23
|
thin_no_size = pool.open(0)
|
|
24
24
|
thin_no_size.seek((1024 * 1024 * 2) - 512)
|
|
25
|
-
assert len(thin_no_size.read(1024)) ==
|
|
25
|
+
assert len(thin_no_size.read(1024)) == 1024
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_dm_thin_empty(dm_thin_empty: list[BinaryIO]) -> None:
|
|
29
|
+
metadata_fh, data_fh = dm_thin_empty
|
|
30
|
+
pool = ThinPool(metadata_fh, data_fh)
|
|
31
|
+
|
|
32
|
+
dev = pool.open(0)
|
|
33
|
+
|
|
34
|
+
assert dev.read(512) == b"\x00" * 512
|
|
35
|
+
|
|
36
|
+
dev.seek(512 * 1024)
|
|
37
|
+
assert dev.read(512) != b"\x00" * 512
|
|
38
|
+
|
|
39
|
+
# Far beyond the file boundary
|
|
40
|
+
dev.seek(2**64)
|
|
41
|
+
assert dev.read(512) == b"\x00" * 512
|
|
42
|
+
|
|
43
|
+
dev = pool.open(0, 512)
|
|
44
|
+
assert dev.read(512) == b"\x00" * 512
|
|
45
|
+
assert dev.read(512) == b""
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import io
|
|
2
|
+
import re
|
|
2
3
|
from typing import BinaryIO
|
|
3
4
|
|
|
4
5
|
import pytest
|
|
@@ -33,6 +34,15 @@ def test_lvm(lvm: BinaryIO) -> None:
|
|
|
33
34
|
assert fh.read(1024) == b"\xde\xad\xbe\xef" * 256
|
|
34
35
|
assert fh.read(1024) == b"\x00" * 1024
|
|
35
36
|
|
|
37
|
+
vg.pv[0]._dev = None
|
|
38
|
+
with pytest.raises(
|
|
39
|
+
LVM2Error,
|
|
40
|
+
match=re.escape(
|
|
41
|
+
"Physical volume not found: pv0 (id=2Svcy0-cRH2-3Xrz-87Fv-zNUI-9CoI-Ycoyql, device=/dev/loop1)"
|
|
42
|
+
),
|
|
43
|
+
):
|
|
44
|
+
fh = lv.open()
|
|
45
|
+
|
|
36
46
|
|
|
37
47
|
def test_lvm_invalid() -> None:
|
|
38
48
|
buf = io.BytesIO(4096 * b"\x00")
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
tests/data/dm/dm-thin-data.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
2
|
-
tests/data/dm/dm-thin-metadata.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
3
|
-
tests/data/md/md-linear-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
4
|
-
tests/data/md/md-linear-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
5
|
-
tests/data/md/md-raid0-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
6
|
-
tests/data/md/md-raid0-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
7
|
-
tests/data/md/md-raid0-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
8
|
-
tests/data/md/md-raid1-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
9
|
-
tests/data/md/md-raid1-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
10
|
-
tests/data/md/md-raid4-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
11
|
-
tests/data/md/md-raid4-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
12
|
-
tests/data/md/md-raid4-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
13
|
-
tests/data/md/md-raid5-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
14
|
-
tests/data/md/md-raid5-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
15
|
-
tests/data/md/md-raid5-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
16
|
-
tests/data/md/md-raid6-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
17
|
-
tests/data/md/md-raid6-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
18
|
-
tests/data/md/md-raid6-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
19
|
-
tests/data/md/md-raid6-4.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
20
|
-
tests/data/md/md-raid10-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
21
|
-
tests/data/md/md-raid10-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
22
|
-
tests/data/md/md-90-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
23
|
-
tests/data/md/md-90-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
24
|
-
tests/data/md/md-90-raid1-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
25
|
-
tests/data/md/md-90-raid1-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
26
|
-
tests/data/ddf/ddf-raid0-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
27
|
-
tests/data/ddf/ddf-raid0-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
28
|
-
tests/data/ddf/ddf-raid0-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
29
|
-
tests/data/ddf/ddf-raid0-raid1-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
30
|
-
tests/data/ddf/ddf-raid0-raid1-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
31
|
-
tests/data/ddf/ddf-raid1-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
32
|
-
tests/data/ddf/ddf-raid1-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
33
|
-
tests/data/ddf/ddf-raid4-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
34
|
-
tests/data/ddf/ddf-raid4-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
35
|
-
tests/data/ddf/ddf-raid5-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
36
|
-
tests/data/ddf/ddf-raid5-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
37
|
-
tests/data/ddf/ddf-raid5-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
38
|
-
tests/data/ddf/ddf-raid6-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
39
|
-
tests/data/ddf/ddf-raid6-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
40
|
-
tests/data/ddf/ddf-raid6-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
41
|
-
tests/data/ddf/ddf-raid6-4.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
42
|
-
tests/data/ddf/ddf-raid10-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
43
|
-
tests/data/ddf/ddf-raid10-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
44
|
-
tests/data/ddf/ddf-raid10-3.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
45
|
-
tests/data/ddf/ddf-raid10-4.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
46
|
-
tests/data/lvm-thin.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
47
|
-
tests/data/lvm-mirror-2.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
48
|
-
tests/data/lvm-mirror-1.bin.gz filter=lfs diff=lfs merge=lfs -text
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect/volume/disk/schemes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/dissect.volume.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-raid1-1.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.11.dev3 → dissect_volume-3.12.dev2}/tests/data/ddf/ddf-raid0-raid1-2.bin.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-mirror-1.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-mirror-2.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.11.dev3/tests/data → dissect_volume-3.12.dev2/tests/data/lvm}/lvm-thin.bin.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|