Merge ~ogayot/curtin:filter-out-ventoy into curtin:master

Proposed by Olivier Gayot
Status: Merged
Merged at revision: 650a5af561fed5be811e7e2d5c101334c05257ba
Proposed branch: ~ogayot/curtin:filter-out-ventoy
Merge into: curtin:master
Diff against target: 1535 lines (+1492/-0)
3 files modified
curtin/storage_config.py (+9/-0)
tests/data/probert_storage_ventoy.json (+1458/-0)
tests/unittests/test_storage_config.py (+25/-0)
Reviewer Review Type Date Requested Status
Dan Bungert Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+439863@code.launchpad.net

Commit message

storage: filter out ventoy image when building storage config

When ventoy is used, the filesystem mounted to /cdrom is not a /dev/sr0
device (major number 11) but a dm device named "ventoy". Add a check to
exclude it as well as real cdrom devices.

Description of the change

storage: filter out ventoy image when building storage config

When ventoy is used, the filesystem mounted to /cdrom is not a /dev/sr0
device (major number 11) but a dm device named "ventoy". Add a check to
exclude it as well as real cdrom devices.

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Dan Bungert (dbungert) wrote :

I'd like a unit test please. Maybe something based on the probedata from the bug report?

Revision history for this message
Olivier Gayot (ogayot) wrote :

> I'd like a unit test please. Maybe something based on the probedata from the bug report?

Sure! Since the original bug reports are private, I've exported the probes-data from my last desktop install that was using ventoy.

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Dan Bungert (dbungert) wrote :

Thank you!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/curtin/storage_config.py b/curtin/storage_config.py
2index b1d48cb..a232e1a 100644
3--- a/curtin/storage_config.py
4+++ b/curtin/storage_config.py
5@@ -1119,6 +1119,15 @@ class MountParser(ProbertParser):
6 # no floppy, no cdrom
7 if self.blockdev_data[source]['MAJOR'] in ["11", "2"]:
8 return {}
9+ # When using ventoy, if any mount is found for /cdrom, it will not be a
10+ # block device with major number 11 but a dev/mapper device named
11+ # "ventoy".
12+ # See https://bugs.launchpad.net/bugs/2012722
13+ # TODO: ideally, we should not rely on the value of the DM_NAME
14+ # attribute. Other image loading systems will have a different value.
15+ if self.blockdev_data[source].get("DM_NAME") == "ventoy":
16+ LOG.warn("ignoring mount for device %s", source)
17+ return {}
18
19 source_id = self.blockdev_to_id(self.blockdev_data[source])
20 return {'type': 'mount',
21diff --git a/tests/data/probert_storage_ventoy.json b/tests/data/probert_storage_ventoy.json
22new file mode 100644
23index 0000000..b1347da
24--- /dev/null
25+++ b/tests/data/probert_storage_ventoy.json
26@@ -0,0 +1,1458 @@
27+{
28+ "filesystem": {
29+ "/dev/sdb1": {
30+ "LABEL": "Ventoy",
31+ "LABEL_ENC": "Ventoy",
32+ "TYPE": "exfat",
33+ "USAGE": "filesystem",
34+ "UUID": "5DA2-E027",
35+ "UUID_ENC": "5DA2-E027",
36+ "VERSION": "1.0",
37+ "ESTIMATED_MIN_SIZE": -1
38+ },
39+ "/dev/sda1": {
40+ "TYPE": "vfat",
41+ "USAGE": "filesystem",
42+ "UUID": "06AB-D0F7",
43+ "UUID_ENC": "06AB-D0F7",
44+ "VERSION": "FAT32",
45+ "ESTIMATED_MIN_SIZE": -1
46+ },
47+ "/dev/sda2": {
48+ "TYPE": "ext4",
49+ "USAGE": "filesystem",
50+ "UUID": "27fc2a2c-f7c5-4458-b4bd-8bd1f1822c12",
51+ "UUID_ENC": "27fc2a2c-f7c5-4458-b4bd-8bd1f1822c12",
52+ "VERSION": "1.0",
53+ "SIZE": 2147483648,
54+ "ESTIMATED_MIN_SIZE": 411160576
55+ },
56+ "/dev/dm-0": {
57+ "TYPE": "ext4",
58+ "USAGE": "filesystem",
59+ "UUID": "d71c8dc6-92b2-4c28-9aba-95f102280064",
60+ "UUID_ENC": "d71c8dc6-92b2-4c28-9aba-95f102280064",
61+ "VERSION": "1.0",
62+ "SIZE": 107374182400,
63+ "ESTIMATED_MIN_SIZE": 9313890304
64+ }
65+ },
66+ "bcache": {
67+ "backing": {},
68+ "caching": {}
69+ },
70+ "dasd": {},
71+ "os": {
72+ "/dev/mapper/ubuntu": {
73+ "long": "Ubuntu Lunar Lobster",
74+ "label": "Ubuntu",
75+ "type": "linux",
76+ "version": "23.04"
77+ }
78+ },
79+ "raid": {},
80+ "multipath": {},
81+ "mount": [
82+ {
83+ "target": "/",
84+ "source": "/cow",
85+ "fstype": "overlay",
86+ "options": "rw,relatime,lowerdir=/minimal.standard.live.squashfs:/minimal.standard.squashfs:/minimal.squashfs,upperdir=/cow/upper,workdir=/cow/work,xino=off",
87+ "children": [
88+ {
89+ "target": "/sys",
90+ "source": "sysfs",
91+ "fstype": "sysfs",
92+ "options": "rw,nosuid,nodev,noexec,relatime",
93+ "children": [
94+ {
95+ "target": "/sys/kernel/security",
96+ "source": "securityfs",
97+ "fstype": "securityfs",
98+ "options": "rw,nosuid,nodev,noexec,relatime"
99+ },
100+ {
101+ "target": "/sys/fs/cgroup",
102+ "source": "cgroup2",
103+ "fstype": "cgroup2",
104+ "options": "rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot"
105+ },
106+ {
107+ "target": "/sys/fs/pstore",
108+ "source": "pstore",
109+ "fstype": "pstore",
110+ "options": "rw,nosuid,nodev,noexec,relatime"
111+ },
112+ {
113+ "target": "/sys/firmware/efi/efivars",
114+ "source": "efivarfs",
115+ "fstype": "efivarfs",
116+ "options": "rw,nosuid,nodev,noexec,relatime"
117+ },
118+ {
119+ "target": "/sys/fs/bpf",
120+ "source": "bpf",
121+ "fstype": "bpf",
122+ "options": "rw,nosuid,nodev,noexec,relatime,mode=700"
123+ },
124+ {
125+ "target": "/sys/kernel/debug",
126+ "source": "debugfs",
127+ "fstype": "debugfs",
128+ "options": "rw,nosuid,nodev,noexec,relatime"
129+ },
130+ {
131+ "target": "/sys/kernel/tracing",
132+ "source": "tracefs",
133+ "fstype": "tracefs",
134+ "options": "rw,nosuid,nodev,noexec,relatime"
135+ },
136+ {
137+ "target": "/sys/kernel/config",
138+ "source": "configfs",
139+ "fstype": "configfs",
140+ "options": "rw,nosuid,nodev,noexec,relatime"
141+ },
142+ {
143+ "target": "/sys/fs/fuse/connections",
144+ "source": "fusectl",
145+ "fstype": "fusectl",
146+ "options": "rw,nosuid,nodev,noexec,relatime"
147+ }
148+ ]
149+ },
150+ {
151+ "target": "/proc",
152+ "source": "proc",
153+ "fstype": "proc",
154+ "options": "rw,nosuid,nodev,noexec,relatime",
155+ "children": [
156+ {
157+ "target": "/proc/sys/fs/binfmt_misc",
158+ "source": "systemd-1",
159+ "fstype": "autofs",
160+ "options": "rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=2736",
161+ "children": [
162+ {
163+ "target": "/proc/sys/fs/binfmt_misc",
164+ "source": "binfmt_misc",
165+ "fstype": "binfmt_misc",
166+ "options": "rw,nosuid,nodev,noexec,relatime"
167+ }
168+ ]
169+ }
170+ ]
171+ },
172+ {
173+ "target": "/dev",
174+ "source": "udev",
175+ "fstype": "devtmpfs",
176+ "options": "rw,nosuid,relatime,size=3920092k,nr_inodes=980023,mode=755,inode64",
177+ "children": [
178+ {
179+ "target": "/dev/pts",
180+ "source": "devpts",
181+ "fstype": "devpts",
182+ "options": "rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000"
183+ },
184+ {
185+ "target": "/dev/shm",
186+ "source": "tmpfs",
187+ "fstype": "tmpfs",
188+ "options": "rw,nosuid,nodev,inode64"
189+ },
190+ {
191+ "target": "/dev/hugepages",
192+ "source": "hugetlbfs",
193+ "fstype": "hugetlbfs",
194+ "options": "rw,relatime,pagesize=2M"
195+ },
196+ {
197+ "target": "/dev/mqueue",
198+ "source": "mqueue",
199+ "fstype": "mqueue",
200+ "options": "rw,nosuid,nodev,noexec,relatime"
201+ }
202+ ]
203+ },
204+ {
205+ "target": "/run",
206+ "source": "tmpfs",
207+ "fstype": "tmpfs",
208+ "options": "rw,nosuid,nodev,noexec,relatime,size=799932k,mode=755,inode64",
209+ "children": [
210+ {
211+ "target": "/run/lock",
212+ "source": "tmpfs",
213+ "fstype": "tmpfs",
214+ "options": "rw,nosuid,nodev,noexec,relatime,size=5120k,inode64"
215+ },
216+ {
217+ "target": "/run/credentials/systemd-sysusers.service",
218+ "source": "ramfs",
219+ "fstype": "ramfs",
220+ "options": "ro,nosuid,nodev,noexec,relatime,mode=700"
221+ },
222+ {
223+ "target": "/run/credentials/systemd-tmpfiles-setup-dev.service",
224+ "source": "ramfs",
225+ "fstype": "ramfs",
226+ "options": "ro,nosuid,nodev,noexec,relatime,mode=700"
227+ },
228+ {
229+ "target": "/run/credentials/systemd-sysctl.service",
230+ "source": "ramfs",
231+ "fstype": "ramfs",
232+ "options": "ro,nosuid,nodev,noexec,relatime,mode=700"
233+ },
234+ {
235+ "target": "/run/credentials/systemd-tmpfiles-setup.service",
236+ "source": "ramfs",
237+ "fstype": "ramfs",
238+ "options": "ro,nosuid,nodev,noexec,relatime,mode=700"
239+ },
240+ {
241+ "target": "/run/user/1000",
242+ "source": "tmpfs",
243+ "fstype": "tmpfs",
244+ "options": "rw,nosuid,nodev,relatime,size=799928k,nr_inodes=199982,mode=700,uid=1000,gid=1000,inode64",
245+ "children": [
246+ {
247+ "target": "/run/user/1000/gvfs",
248+ "source": "gvfsd-fuse",
249+ "fstype": "fuse.gvfsd-fuse",
250+ "options": "rw,nosuid,nodev,relatime,user_id=1000,group_id=1000"
251+ },
252+ {
253+ "target": "/run/user/1000/doc",
254+ "source": "portal",
255+ "fstype": "fuse.portal",
256+ "options": "rw,nosuid,nodev,relatime,user_id=1000,group_id=1000"
257+ }
258+ ]
259+ },
260+ {
261+ "target": "/run/snapd/ns",
262+ "source": "tmpfs[/snapd/ns]",
263+ "fstype": "tmpfs",
264+ "options": "rw,nosuid,nodev,noexec,relatime,size=799932k,mode=755,inode64",
265+ "children": [
266+ {
267+ "target": "/run/snapd/ns/firefox.mnt",
268+ "source": "nsfs[mnt:[4026532616]]",
269+ "fstype": "nsfs",
270+ "options": "rw"
271+ },
272+ {
273+ "target": "/run/snapd/ns/snap-store.mnt",
274+ "source": "nsfs[mnt:[4026532678]]",
275+ "fstype": "nsfs",
276+ "options": "rw"
277+ },
278+ {
279+ "target": "/run/snapd/ns/snapd-desktop-integration.mnt",
280+ "source": "nsfs[mnt:[4026532679]]",
281+ "fstype": "nsfs",
282+ "options": "rw"
283+ }
284+ ]
285+ }
286+ ]
287+ },
288+ {
289+ "target": "/cdrom",
290+ "source": "/dev/mapper/ventoy",
291+ "fstype": "iso9660",
292+ "options": "ro,noatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8"
293+ },
294+ {
295+ "target": "/rofs",
296+ "source": "/dev/loop0",
297+ "fstype": "squashfs",
298+ "options": "ro,noatime,errors=continue,threads=single"
299+ },
300+ {
301+ "target": "/tmp",
302+ "source": "tmpfs",
303+ "fstype": "tmpfs",
304+ "options": "rw,nosuid,nodev,relatime,inode64",
305+ "children": [
306+ {
307+ "target": "/tmp/tmpirjspppg/minimal.squashfs.dir",
308+ "source": "/dev/loop0",
309+ "fstype": "squashfs",
310+ "options": "ro,relatime,errors=continue,threads=single"
311+ },
312+ {
313+ "target": "/tmp/tmpirjspppg/minimal.standard.squashfs.dir",
314+ "source": "/dev/loop1",
315+ "fstype": "squashfs",
316+ "options": "ro,relatime,errors=continue,threads=single"
317+ },
318+ {
319+ "target": "/tmp/tmpirjspppg/minimal.standard.no-languages.squashfs.dir",
320+ "source": "/dev/loop12",
321+ "fstype": "squashfs",
322+ "options": "ro,relatime,errors=continue,threads=single"
323+ },
324+ {
325+ "target": "/tmp/tmpirjspppg/root.dir",
326+ "source": "overlay",
327+ "fstype": "overlay",
328+ "options": "ro,relatime,lowerdir=/tmp/tmpirjspppg/minimal.standard.no-languages.squashfs.dir:/tmp/tmpirjspppg/minimal.standard.squashfs.dir:/tmp/tmpirjspppg/minimal.squashfs.dir"
329+ }
330+ ]
331+ },
332+ {
333+ "target": "/snap/bare/5",
334+ "source": "/dev/loop7",
335+ "fstype": "squashfs",
336+ "options": "ro,nodev,relatime,errors=continue,threads=single"
337+ },
338+ {
339+ "target": "/snap/snapd-desktop-integration/71",
340+ "source": "/dev/loop10",
341+ "fstype": "squashfs",
342+ "options": "ro,nodev,relatime,errors=continue,threads=single"
343+ },
344+ {
345+ "target": "/snap/snap-store/935",
346+ "source": "/dev/loop8",
347+ "fstype": "squashfs",
348+ "options": "ro,nodev,relatime,errors=continue,threads=single"
349+ },
350+ {
351+ "target": "/snap/gtk-common-themes/1535",
352+ "source": "/dev/loop6",
353+ "fstype": "squashfs",
354+ "options": "ro,nodev,relatime,errors=continue,threads=single"
355+ },
356+ {
357+ "target": "/snap/firefox/2453",
358+ "source": "/dev/loop4",
359+ "fstype": "squashfs",
360+ "options": "ro,nodev,relatime,errors=continue,threads=single"
361+ },
362+ {
363+ "target": "/snap/snapd/18596",
364+ "source": "/dev/loop9",
365+ "fstype": "squashfs",
366+ "options": "ro,nodev,relatime,errors=continue,threads=single"
367+ },
368+ {
369+ "target": "/snap/core22/547",
370+ "source": "/dev/loop3",
371+ "fstype": "squashfs",
372+ "options": "ro,nodev,relatime,errors=continue,threads=single"
373+ },
374+ {
375+ "target": "/snap/ubuntu-desktop-installer/880",
376+ "source": "/dev/loop11",
377+ "fstype": "squashfs",
378+ "options": "ro,nodev,relatime,errors=continue,threads=single"
379+ },
380+ {
381+ "target": "/snap/gnome-42-2204/65",
382+ "source": "/dev/loop5",
383+ "fstype": "squashfs",
384+ "options": "ro,nodev,relatime,errors=continue,threads=single"
385+ },
386+ {
387+ "target": "/var/snap/firefox/common/host-hunspell",
388+ "source": "/cow[/usr/share/hunspell]",
389+ "fstype": "overlay",
390+ "options": "ro,noexec,noatime,lowerdir=/minimal.standard.live.squashfs:/minimal.standard.squashfs:/minimal.squashfs,upperdir=/cow/upper,workdir=/cow/work,xino=off"
391+ }
392+ ]
393+ }
394+ ],
395+ "lvm": {
396+ "logical_volumes": {
397+ "ubuntu-vg/ubuntu-lv": {
398+ "fullname": "ubuntu-vg/ubuntu-lv",
399+ "name": "ubuntu-lv",
400+ "volgroup": "ubuntu-vg",
401+ "size": "107374182400B"
402+ }
403+ },
404+ "physical_volumes": {
405+ "ubuntu-vg": [
406+ "/dev/sda3"
407+ ]
408+ },
409+ "volume_groups": {
410+ "ubuntu-vg": {
411+ "name": "ubuntu-vg",
412+ "devices": [
413+ "/dev/sda3"
414+ ],
415+ "size": "496827891712B"
416+ }
417+ }
418+ },
419+ "zfs": {
420+ "zpools": {}
421+ },
422+ "blockdev": {
423+ "/dev/sdb": {
424+ "CURRENT_TAGS": ":systemd:",
425+ "DEVLINKS": "/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0 /dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0 /dev/disk/by-diskseq/11",
426+ "DEVNAME": "/dev/sdb",
427+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/host4/target4:0:0/4:0:0:0/block/sdb",
428+ "DEVTYPE": "disk",
429+ "DISKSEQ": "11",
430+ "ID_BUS": "usb",
431+ "ID_INSTANCE": "0:0",
432+ "ID_MODEL": "SanDisk_3.2Gen1",
433+ "ID_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
434+ "ID_MODEL_ID": "5591",
435+ "ID_PART_TABLE_TYPE": "dos",
436+ "ID_PART_TABLE_UUID": "b69cc32d",
437+ "ID_PATH": "pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
438+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_1_1_0-scsi-0_0_0_0",
439+ "ID_REVISION": "1.00",
440+ "ID_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
441+ "ID_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
442+ "ID_TYPE": "disk",
443+ "ID_USB_DRIVER": "usb-storage",
444+ "ID_USB_INSTANCE": "0:0",
445+ "ID_USB_INTERFACES": ":080650:",
446+ "ID_USB_INTERFACE_NUM": "00",
447+ "ID_USB_MODEL": "SanDisk_3.2Gen1",
448+ "ID_USB_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
449+ "ID_USB_MODEL_ID": "5591",
450+ "ID_USB_REVISION": "1.00",
451+ "ID_USB_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
452+ "ID_USB_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
453+ "ID_USB_TYPE": "disk",
454+ "ID_USB_VENDOR": "USB",
455+ "ID_USB_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
456+ "ID_USB_VENDOR_ID": "0781",
457+ "ID_VENDOR": "USB",
458+ "ID_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
459+ "ID_VENDOR_ID": "0781",
460+ "MAJOR": "8",
461+ "MINOR": "16",
462+ "SUBSYSTEM": "block",
463+ "TAGS": ":systemd:",
464+ "USEC_INITIALIZED": "4248707",
465+ "attrs": {
466+ "alignment_offset": "0",
467+ "bdi": null,
468+ "capability": "1",
469+ "dev": "8:16",
470+ "device": null,
471+ "discard_alignment": "0",
472+ "diskseq": "11",
473+ "events": "media_change",
474+ "events_async": "",
475+ "events_poll_msecs": "-1",
476+ "ext_range": "256",
477+ "hidden": "0",
478+ "inflight": " 1 0",
479+ "integrity/device_is_integrity_capable": "0",
480+ "integrity/format": "none",
481+ "integrity/protection_interval_bytes": "0",
482+ "integrity/read_verify": "0",
483+ "integrity/tag_size": "0",
484+ "integrity/write_generate": "0",
485+ "mq/0/cpu_list": "0, 1, 2, 3",
486+ "mq/0/nr_reserved_tags": "0",
487+ "mq/0/nr_tags": "1",
488+ "power/async": "disabled",
489+ "power/autosuspend_delay_ms": null,
490+ "power/control": "auto",
491+ "power/runtime_active_kids": "0",
492+ "power/runtime_active_time": "0",
493+ "power/runtime_enabled": "disabled",
494+ "power/runtime_status": "unsupported",
495+ "power/runtime_suspended_time": "0",
496+ "power/runtime_usage": "0",
497+ "queue/add_random": "1",
498+ "queue/chunk_sectors": "0",
499+ "queue/dax": "0",
500+ "queue/discard_granularity": "0",
501+ "queue/discard_max_bytes": "0",
502+ "queue/discard_max_hw_bytes": "0",
503+ "queue/discard_zeroes_data": "0",
504+ "queue/dma_alignment": "511",
505+ "queue/fua": "0",
506+ "queue/hw_sector_size": "512",
507+ "queue/io_poll": "0",
508+ "queue/io_poll_delay": "-1",
509+ "queue/io_timeout": "30000",
510+ "queue/iosched/async_depth": "1",
511+ "queue/iosched/fifo_batch": "16",
512+ "queue/iosched/front_merges": "1",
513+ "queue/iosched/prio_aging_expire": "10000",
514+ "queue/iosched/read_expire": "500",
515+ "queue/iosched/write_expire": "5000",
516+ "queue/iosched/writes_starved": "2",
517+ "queue/iostats": "1",
518+ "queue/logical_block_size": "512",
519+ "queue/max_discard_segments": "1",
520+ "queue/max_hw_sectors_kb": "1024",
521+ "queue/max_integrity_segments": "0",
522+ "queue/max_sectors_kb": "1024",
523+ "queue/max_segment_size": "65536",
524+ "queue/max_segments": "2048",
525+ "queue/minimum_io_size": "512",
526+ "queue/nomerges": "0",
527+ "queue/nr_requests": "2",
528+ "queue/nr_zones": "0",
529+ "queue/optimal_io_size": "0",
530+ "queue/physical_block_size": "512",
531+ "queue/read_ahead_kb": "128",
532+ "queue/rotational": "1",
533+ "queue/rq_affinity": "1",
534+ "queue/scheduler": "none [mq-deadline] ",
535+ "queue/stable_writes": "0",
536+ "queue/virt_boundary_mask": "0",
537+ "queue/wbt_lat_usec": "75000",
538+ "queue/write_cache": "write through",
539+ "queue/write_same_max_bytes": "0",
540+ "queue/write_zeroes_max_bytes": "0",
541+ "queue/zone_append_max_bytes": "0",
542+ "queue/zone_write_granularity": "0",
543+ "queue/zoned": "none",
544+ "range": "16",
545+ "removable": "1",
546+ "ro": "0",
547+ "size": "61505273856",
548+ "stat": " 15009 660 2342514 34219 0 0 0 0 1 33712 34219 0 0 0 0 0 0",
549+ "subsystem": "block",
550+ "trace/act_mask": "disabled",
551+ "trace/enable": "0",
552+ "trace/end_lba": "disabled",
553+ "trace/pid": "disabled",
554+ "trace/start_lba": "disabled",
555+ "uevent": "MAJOR=8\nMINOR=16\nDEVNAME=sdb\nDEVTYPE=disk\nDISKSEQ=11"
556+ },
557+ "partitiontable": {
558+ "label": "dos",
559+ "id": "0xb69cc32d",
560+ "device": "/dev/sdb",
561+ "unit": "sectors",
562+ "sectorsize": 512,
563+ "partitions": [
564+ {
565+ "node": "/dev/sdb1",
566+ "start": 2048,
567+ "size": 120059904,
568+ "type": "7",
569+ "bootable": true
570+ },
571+ {
572+ "node": "/dev/sdb2",
573+ "start": 120061952,
574+ "size": 65536,
575+ "type": "ef"
576+ }
577+ ]
578+ }
579+ },
580+ "/dev/sdb1": {
581+ "CURRENT_TAGS": ":systemd:",
582+ "DEVLINKS": "/dev/disk/by-partuuid/b69cc32d-01 /dev/disk/by-label/Ventoy /dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/5DA2-E027 /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0-part1",
583+ "DEVNAME": "/dev/sdb1",
584+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1",
585+ "DEVTYPE": "partition",
586+ "DISKSEQ": "11",
587+ "ID_BUS": "usb",
588+ "ID_FS_LABEL": "Ventoy",
589+ "ID_FS_LABEL_ENC": "Ventoy",
590+ "ID_FS_TYPE": "exfat",
591+ "ID_FS_USAGE": "filesystem",
592+ "ID_FS_UUID": "5DA2-E027",
593+ "ID_FS_UUID_ENC": "5DA2-E027",
594+ "ID_FS_VERSION": "1.0",
595+ "ID_INSTANCE": "0:0",
596+ "ID_MODEL": "SanDisk_3.2Gen1",
597+ "ID_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
598+ "ID_MODEL_ID": "5591",
599+ "ID_PART_ENTRY_DISK": "8:16",
600+ "ID_PART_ENTRY_FLAGS": "0x80",
601+ "ID_PART_ENTRY_NUMBER": "1",
602+ "ID_PART_ENTRY_OFFSET": "2048",
603+ "ID_PART_ENTRY_SCHEME": "dos",
604+ "ID_PART_ENTRY_SIZE": "120059904",
605+ "ID_PART_ENTRY_TYPE": "0x7",
606+ "ID_PART_ENTRY_UUID": "b69cc32d-01",
607+ "ID_PART_TABLE_TYPE": "dos",
608+ "ID_PART_TABLE_UUID": "b69cc32d",
609+ "ID_PATH": "pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
610+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_1_1_0-scsi-0_0_0_0",
611+ "ID_REVISION": "1.00",
612+ "ID_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
613+ "ID_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
614+ "ID_TYPE": "disk",
615+ "ID_USB_DRIVER": "usb-storage",
616+ "ID_USB_INSTANCE": "0:0",
617+ "ID_USB_INTERFACES": ":080650:",
618+ "ID_USB_INTERFACE_NUM": "00",
619+ "ID_USB_MODEL": "SanDisk_3.2Gen1",
620+ "ID_USB_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
621+ "ID_USB_MODEL_ID": "5591",
622+ "ID_USB_REVISION": "1.00",
623+ "ID_USB_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
624+ "ID_USB_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
625+ "ID_USB_TYPE": "disk",
626+ "ID_USB_VENDOR": "USB",
627+ "ID_USB_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
628+ "ID_USB_VENDOR_ID": "0781",
629+ "ID_VENDOR": "USB",
630+ "ID_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
631+ "ID_VENDOR_ID": "0781",
632+ "MAJOR": "8",
633+ "MINOR": "17",
634+ "PARTN": "1",
635+ "SUBSYSTEM": "block",
636+ "TAGS": ":systemd:",
637+ "USEC_INITIALIZED": "4315487",
638+ "attrs": {
639+ "alignment_offset": "0",
640+ "dev": "8:17",
641+ "discard_alignment": "0",
642+ "holders/dm-1": null,
643+ "inflight": " 1 0",
644+ "partition": "1",
645+ "power/async": "disabled",
646+ "power/autosuspend_delay_ms": null,
647+ "power/control": "auto",
648+ "power/runtime_active_kids": "0",
649+ "power/runtime_active_time": "0",
650+ "power/runtime_enabled": "disabled",
651+ "power/runtime_status": "unsupported",
652+ "power/runtime_suspended_time": "0",
653+ "power/runtime_usage": "0",
654+ "ro": "0",
655+ "size": "61470670848",
656+ "start": "2048",
657+ "stat": " 14944 682 2354546 34241 0 0 0 0 1 33816 34241 0 0 0 0 0 0",
658+ "subsystem": "block",
659+ "trace/act_mask": "disabled",
660+ "trace/enable": "0",
661+ "trace/end_lba": "disabled",
662+ "trace/pid": "disabled",
663+ "trace/start_lba": "disabled",
664+ "uevent": "MAJOR=8\nMINOR=17\nDEVNAME=sdb1\nDEVTYPE=partition\nDISKSEQ=11\nPARTN=1"
665+ },
666+ "partitiontable": {
667+ "label": "dos",
668+ "id": "0x00000000",
669+ "device": "/dev/sdb1",
670+ "unit": "sectors",
671+ "sectorsize": 512
672+ }
673+ },
674+ "/dev/sdb2": {
675+ "CURRENT_TAGS": ":systemd:",
676+ "DEVLINKS": "/dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0-part2 /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0-part2",
677+ "DEVNAME": "/dev/sdb2",
678+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb2",
679+ "DEVTYPE": "partition",
680+ "DISKSEQ": "11",
681+ "ID_BUS": "usb",
682+ "ID_INSTANCE": "0:0",
683+ "ID_MODEL": "SanDisk_3.2Gen1",
684+ "ID_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
685+ "ID_MODEL_ID": "5591",
686+ "ID_PART_TABLE_TYPE": "dos",
687+ "ID_PART_TABLE_UUID": "b69cc32d",
688+ "ID_PATH": "pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
689+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_1_1_0-scsi-0_0_0_0",
690+ "ID_REVISION": "1.00",
691+ "ID_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
692+ "ID_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
693+ "ID_TYPE": "disk",
694+ "ID_USB_DRIVER": "usb-storage",
695+ "ID_USB_INSTANCE": "0:0",
696+ "ID_USB_INTERFACES": ":080650:",
697+ "ID_USB_INTERFACE_NUM": "00",
698+ "ID_USB_MODEL": "SanDisk_3.2Gen1",
699+ "ID_USB_MODEL_ENC": "\\x20SanDisk\\x203.2Gen1",
700+ "ID_USB_MODEL_ID": "5591",
701+ "ID_USB_REVISION": "1.00",
702+ "ID_USB_SERIAL": "USB_SanDisk_3.2Gen1_01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527-0:0",
703+ "ID_USB_SERIAL_SHORT": "01012e82fc63883cd49a05d58e9c785d329287c0c9bd4266dfbc025f731e88103c59000000000000000000009c59ceb5ff055800915581071faea527",
704+ "ID_USB_TYPE": "disk",
705+ "ID_USB_VENDOR": "USB",
706+ "ID_USB_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
707+ "ID_USB_VENDOR_ID": "0781",
708+ "ID_VENDOR": "USB",
709+ "ID_VENDOR_ENC": "\\x20USB\\x20\\x20\\x20\\x20",
710+ "ID_VENDOR_ID": "0781",
711+ "MAJOR": "8",
712+ "MINOR": "18",
713+ "PARTN": "2",
714+ "SUBSYSTEM": "block",
715+ "TAGS": ":systemd:",
716+ "USEC_INITIALIZED": "4309500",
717+ "attrs": {
718+ "alignment_offset": "0",
719+ "dev": "8:18",
720+ "discard_alignment": "0",
721+ "inflight": " 0 0",
722+ "partition": "2",
723+ "power/async": "disabled",
724+ "power/autosuspend_delay_ms": null,
725+ "power/control": "auto",
726+ "power/runtime_active_kids": "0",
727+ "power/runtime_active_time": "0",
728+ "power/runtime_enabled": "disabled",
729+ "power/runtime_status": "unsupported",
730+ "power/runtime_suspended_time": "0",
731+ "power/runtime_usage": "0",
732+ "ro": "0",
733+ "size": "33554432",
734+ "start": "120061952",
735+ "stat": " 25 0 608 52 0 0 0 0 0 56 52 0 0 0 0 0 0",
736+ "subsystem": "block",
737+ "trace/act_mask": "disabled",
738+ "trace/enable": "0",
739+ "trace/end_lba": "disabled",
740+ "trace/pid": "disabled",
741+ "trace/start_lba": "disabled",
742+ "uevent": "MAJOR=8\nMINOR=18\nDEVNAME=sdb2\nDEVTYPE=partition\nDISKSEQ=11\nPARTN=2"
743+ },
744+ "partitiontable": {
745+ "label": "gpt",
746+ "id": "ACA58DA5-EEF8-4E61-A479-A4A7B29BED12",
747+ "device": "/dev/sdb2",
748+ "unit": "sectors",
749+ "firstlba": 64,
750+ "lastlba": 9452728,
751+ "table-length": "248",
752+ "sectorsize": 512,
753+ "partitions": [
754+ {
755+ "node": "/dev/sdb2p1",
756+ "start": 64,
757+ "size": 9441996,
758+ "type": "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7",
759+ "uuid": "ACA58DA5-EEF8-4E61-A478-A4A7B29BED12",
760+ "name": "ISO9660",
761+ "attrs": "RequiredPartition GUID:60"
762+ },
763+ {
764+ "node": "/dev/sdb2p2",
765+ "start": 9442060,
766+ "size": 10068,
767+ "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
768+ "uuid": "ACA58DA5-EEF8-4E61-A47B-A4A7B29BED12",
769+ "name": "Appended2"
770+ },
771+ {
772+ "node": "/dev/sdb2p3",
773+ "start": 9452128,
774+ "size": 600,
775+ "type": "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7",
776+ "uuid": "ACA58DA5-EEF8-4E61-A47A-A4A7B29BED12",
777+ "name": "Gap1",
778+ "attrs": "RequiredPartition GUID:60"
779+ }
780+ ]
781+ }
782+ },
783+ "/dev/sda": {
784+ "CURRENT_TAGS": ":systemd:",
785+ "DEVLINKS": "/dev/disk/by-id/wwn-0x500a0751e21350e2 /dev/disk/by-path/pci-0000:00:1f.2-ata-4.0 /dev/disk/by-diskseq/9 /dev/disk/by-path/pci-0000:00:1f.2-ata-4 /dev/disk/by-id/ata-CT500MX500SSD4_1928E21350E2",
786+ "DEVNAME": "/dev/sda",
787+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda",
788+ "DEVTYPE": "disk",
789+ "DISKSEQ": "9",
790+ "ID_ATA": "1",
791+ "ID_ATA_DOWNLOAD_MICROCODE": "1",
792+ "ID_ATA_FEATURE_SET_APM": "1",
793+ "ID_ATA_FEATURE_SET_APM_CURRENT_VALUE": "254",
794+ "ID_ATA_FEATURE_SET_APM_ENABLED": "1",
795+ "ID_ATA_FEATURE_SET_PM": "1",
796+ "ID_ATA_FEATURE_SET_PM_ENABLED": "1",
797+ "ID_ATA_FEATURE_SET_SECURITY": "1",
798+ "ID_ATA_FEATURE_SET_SECURITY_ENABLED": "0",
799+ "ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN": "2",
800+ "ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN": "2",
801+ "ID_ATA_FEATURE_SET_SECURITY_FROZEN": "1",
802+ "ID_ATA_FEATURE_SET_SMART": "1",
803+ "ID_ATA_FEATURE_SET_SMART_ENABLED": "1",
804+ "ID_ATA_ROTATION_RATE_RPM": "0",
805+ "ID_ATA_SATA": "1",
806+ "ID_ATA_SATA_SIGNAL_RATE_GEN1": "1",
807+ "ID_ATA_SATA_SIGNAL_RATE_GEN2": "1",
808+ "ID_ATA_WRITE_CACHE": "1",
809+ "ID_ATA_WRITE_CACHE_ENABLED": "1",
810+ "ID_BUS": "ata",
811+ "ID_MODEL": "CT500MX500SSD4",
812+ "ID_MODEL_ENC": "CT500MX500SSD4\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20",
813+ "ID_PART_TABLE_TYPE": "gpt",
814+ "ID_PART_TABLE_UUID": "4ed9f6c2-620c-4b7e-997d-2f5c14d45402",
815+ "ID_PATH": "pci-0000:00:1f.2-ata-4.0",
816+ "ID_PATH_ATA_COMPAT": "pci-0000:00:1f.2-ata-4",
817+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-4_0",
818+ "ID_REVISION": "M3CR023",
819+ "ID_SERIAL": "CT500MX500SSD4_1928E21350E2",
820+ "ID_SERIAL_SHORT": "1928E21350E2",
821+ "ID_TYPE": "disk",
822+ "ID_WWN": "0x500a0751e21350e2",
823+ "ID_WWN_WITH_EXTENSION": "0x500a0751e21350e2",
824+ "MAJOR": "8",
825+ "MINOR": "0",
826+ "SUBSYSTEM": "block",
827+ "TAGS": ":systemd:",
828+ "USEC_INITIALIZED": "2118246",
829+ "attrs": {
830+ "alignment_offset": "0",
831+ "bdi": null,
832+ "capability": "0",
833+ "dev": "8:0",
834+ "device": null,
835+ "discard_alignment": "0",
836+ "diskseq": "9",
837+ "events": "",
838+ "events_async": "",
839+ "events_poll_msecs": "-1",
840+ "ext_range": "256",
841+ "hidden": "0",
842+ "inflight": " 0 0",
843+ "integrity/device_is_integrity_capable": "0",
844+ "integrity/format": "none",
845+ "integrity/protection_interval_bytes": "0",
846+ "integrity/read_verify": "0",
847+ "integrity/tag_size": "0",
848+ "integrity/write_generate": "0",
849+ "mq/0/cpu_list": "0, 1, 2, 3",
850+ "mq/0/nr_reserved_tags": "0",
851+ "mq/0/nr_tags": "32",
852+ "power/async": "disabled",
853+ "power/autosuspend_delay_ms": null,
854+ "power/control": "auto",
855+ "power/runtime_active_kids": "0",
856+ "power/runtime_active_time": "0",
857+ "power/runtime_enabled": "disabled",
858+ "power/runtime_status": "unsupported",
859+ "power/runtime_suspended_time": "0",
860+ "power/runtime_usage": "0",
861+ "queue/add_random": "0",
862+ "queue/chunk_sectors": "0",
863+ "queue/dax": "0",
864+ "queue/discard_granularity": "4096",
865+ "queue/discard_max_bytes": "2147450880",
866+ "queue/discard_max_hw_bytes": "2147450880",
867+ "queue/discard_zeroes_data": "0",
868+ "queue/dma_alignment": "511",
869+ "queue/fua": "0",
870+ "queue/hw_sector_size": "512",
871+ "queue/io_poll": "0",
872+ "queue/io_poll_delay": "-1",
873+ "queue/io_timeout": "30000",
874+ "queue/iosched/async_depth": "48",
875+ "queue/iosched/fifo_batch": "16",
876+ "queue/iosched/front_merges": "1",
877+ "queue/iosched/prio_aging_expire": "10000",
878+ "queue/iosched/read_expire": "500",
879+ "queue/iosched/write_expire": "5000",
880+ "queue/iosched/writes_starved": "2",
881+ "queue/iostats": "1",
882+ "queue/logical_block_size": "512",
883+ "queue/max_discard_segments": "1",
884+ "queue/max_hw_sectors_kb": "32767",
885+ "queue/max_integrity_segments": "0",
886+ "queue/max_sectors_kb": "1280",
887+ "queue/max_segment_size": "65536",
888+ "queue/max_segments": "168",
889+ "queue/minimum_io_size": "4096",
890+ "queue/nomerges": "0",
891+ "queue/nr_requests": "64",
892+ "queue/nr_zones": "0",
893+ "queue/optimal_io_size": "0",
894+ "queue/physical_block_size": "4096",
895+ "queue/read_ahead_kb": "128",
896+ "queue/rotational": "0",
897+ "queue/rq_affinity": "1",
898+ "queue/scheduler": "none [mq-deadline] ",
899+ "queue/stable_writes": "0",
900+ "queue/virt_boundary_mask": "0",
901+ "queue/wbt_lat_usec": "2000",
902+ "queue/write_cache": "write back",
903+ "queue/write_same_max_bytes": "0",
904+ "queue/write_zeroes_max_bytes": "0",
905+ "queue/zone_append_max_bytes": "0",
906+ "queue/zone_write_granularity": "0",
907+ "queue/zoned": "none",
908+ "range": "16",
909+ "removable": "0",
910+ "ro": "0",
911+ "size": "500107862016",
912+ "stat": " 836 0 69064 249 11 0 0 5 0 520 260 0 0 0 0 11 5",
913+ "subsystem": "block",
914+ "trace/act_mask": "disabled",
915+ "trace/enable": "0",
916+ "trace/end_lba": "disabled",
917+ "trace/pid": "disabled",
918+ "trace/start_lba": "disabled",
919+ "uevent": "MAJOR=8\nMINOR=0\nDEVNAME=sda\nDEVTYPE=disk\nDISKSEQ=9"
920+ },
921+ "partitiontable": {
922+ "label": "gpt",
923+ "id": "4ED9F6C2-620C-4B7E-997D-2F5C14D45402",
924+ "device": "/dev/sda",
925+ "unit": "sectors",
926+ "firstlba": 34,
927+ "lastlba": 976773134,
928+ "sectorsize": 512,
929+ "partitions": [
930+ {
931+ "node": "/dev/sda1",
932+ "start": 2048,
933+ "size": 2201600,
934+ "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
935+ "uuid": "01C125BA-FA93-45FA-9849-296299D35EA9"
936+ },
937+ {
938+ "node": "/dev/sda2",
939+ "start": 2203648,
940+ "size": 4194304,
941+ "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
942+ "uuid": "786C854A-6B96-49C8-B99D-AF1B7205BEBB"
943+ },
944+ {
945+ "node": "/dev/sda3",
946+ "start": 6397952,
947+ "size": 970373120,
948+ "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
949+ "uuid": "21445E85-0437-4C67-A5EB-D0D9BB11EAB1"
950+ }
951+ ]
952+ }
953+ },
954+ "/dev/sda1": {
955+ "CURRENT_TAGS": ":systemd:",
956+ "DEVLINKS": "/dev/disk/by-partuuid/01c125ba-fa93-45fa-9849-296299d35ea9 /dev/disk/by-id/wwn-0x500a0751e21350e2-part1 /dev/disk/by-path/pci-0000:00:1f.2-ata-4.0-part1 /dev/disk/by-uuid/06AB-D0F7 /dev/disk/by-id/ata-CT500MX500SSD4_1928E21350E2-part1 /dev/disk/by-path/pci-0000:00:1f.2-ata-4-part1",
957+ "DEVNAME": "/dev/sda1",
958+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda/sda1",
959+ "DEVTYPE": "partition",
960+ "DISKSEQ": "9",
961+ "ID_ATA": "1",
962+ "ID_ATA_DOWNLOAD_MICROCODE": "1",
963+ "ID_ATA_FEATURE_SET_APM": "1",
964+ "ID_ATA_FEATURE_SET_APM_CURRENT_VALUE": "254",
965+ "ID_ATA_FEATURE_SET_APM_ENABLED": "1",
966+ "ID_ATA_FEATURE_SET_PM": "1",
967+ "ID_ATA_FEATURE_SET_PM_ENABLED": "1",
968+ "ID_ATA_FEATURE_SET_SECURITY": "1",
969+ "ID_ATA_FEATURE_SET_SECURITY_ENABLED": "0",
970+ "ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN": "2",
971+ "ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN": "2",
972+ "ID_ATA_FEATURE_SET_SECURITY_FROZEN": "1",
973+ "ID_ATA_FEATURE_SET_SMART": "1",
974+ "ID_ATA_FEATURE_SET_SMART_ENABLED": "1",
975+ "ID_ATA_ROTATION_RATE_RPM": "0",
976+ "ID_ATA_SATA": "1",
977+ "ID_ATA_SATA_SIGNAL_RATE_GEN1": "1",
978+ "ID_ATA_SATA_SIGNAL_RATE_GEN2": "1",
979+ "ID_ATA_WRITE_CACHE": "1",
980+ "ID_ATA_WRITE_CACHE_ENABLED": "1",
981+ "ID_BUS": "ata",
982+ "ID_FS_TYPE": "vfat",
983+ "ID_FS_USAGE": "filesystem",
984+ "ID_FS_UUID": "06AB-D0F7",
985+ "ID_FS_UUID_ENC": "06AB-D0F7",
986+ "ID_FS_VERSION": "FAT32",
987+ "ID_MODEL": "CT500MX500SSD4",
988+ "ID_MODEL_ENC": "CT500MX500SSD4\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20",
989+ "ID_PART_ENTRY_DISK": "8:0",
990+ "ID_PART_ENTRY_NUMBER": "1",
991+ "ID_PART_ENTRY_OFFSET": "2048",
992+ "ID_PART_ENTRY_SCHEME": "gpt",
993+ "ID_PART_ENTRY_SIZE": "2201600",
994+ "ID_PART_ENTRY_TYPE": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
995+ "ID_PART_ENTRY_UUID": "01c125ba-fa93-45fa-9849-296299d35ea9",
996+ "ID_PART_TABLE_TYPE": "gpt",
997+ "ID_PART_TABLE_UUID": "4ed9f6c2-620c-4b7e-997d-2f5c14d45402",
998+ "ID_PATH": "pci-0000:00:1f.2-ata-4.0",
999+ "ID_PATH_ATA_COMPAT": "pci-0000:00:1f.2-ata-4",
1000+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-4_0",
1001+ "ID_REVISION": "M3CR023",
1002+ "ID_SERIAL": "CT500MX500SSD4_1928E21350E2",
1003+ "ID_SERIAL_SHORT": "1928E21350E2",
1004+ "ID_TYPE": "disk",
1005+ "ID_WWN": "0x500a0751e21350e2",
1006+ "ID_WWN_WITH_EXTENSION": "0x500a0751e21350e2",
1007+ "MAJOR": "8",
1008+ "MINOR": "1",
1009+ "PARTN": "1",
1010+ "SUBSYSTEM": "block",
1011+ "TAGS": ":systemd:",
1012+ "UDISKS_IGNORE": "1",
1013+ "USEC_INITIALIZED": "2130901",
1014+ "attrs": {
1015+ "alignment_offset": "0",
1016+ "dev": "8:1",
1017+ "discard_alignment": "0",
1018+ "inflight": " 0 0",
1019+ "partition": "1",
1020+ "power/async": "disabled",
1021+ "power/autosuspend_delay_ms": null,
1022+ "power/control": "auto",
1023+ "power/runtime_active_kids": "0",
1024+ "power/runtime_active_time": "0",
1025+ "power/runtime_enabled": "disabled",
1026+ "power/runtime_status": "unsupported",
1027+ "power/runtime_suspended_time": "0",
1028+ "power/runtime_usage": "0",
1029+ "ro": "0",
1030+ "size": "1127219200",
1031+ "start": "2048",
1032+ "stat": " 171 0 15632 57 0 0 0 0 0 144 57 0 0 0 0 0 0",
1033+ "subsystem": "block",
1034+ "trace/act_mask": "disabled",
1035+ "trace/enable": "0",
1036+ "trace/end_lba": "disabled",
1037+ "trace/pid": "disabled",
1038+ "trace/start_lba": "disabled",
1039+ "uevent": "MAJOR=8\nMINOR=1\nDEVNAME=sda1\nDEVTYPE=partition\nDISKSEQ=9\nPARTN=1"
1040+ },
1041+ "partitiontable": {
1042+ "label": "dos",
1043+ "id": "0x00000000",
1044+ "device": "/dev/sda1",
1045+ "unit": "sectors",
1046+ "sectorsize": 512
1047+ }
1048+ },
1049+ "/dev/sda2": {
1050+ "CURRENT_TAGS": ":systemd:",
1051+ "DEVLINKS": "/dev/disk/by-partuuid/786c854a-6b96-49c8-b99d-af1b7205bebb /dev/disk/by-uuid/27fc2a2c-f7c5-4458-b4bd-8bd1f1822c12 /dev/disk/by-path/pci-0000:00:1f.2-ata-4.0-part2 /dev/disk/by-id/wwn-0x500a0751e21350e2-part2 /dev/disk/by-id/ata-CT500MX500SSD4_1928E21350E2-part2 /dev/disk/by-path/pci-0000:00:1f.2-ata-4-part2",
1052+ "DEVNAME": "/dev/sda2",
1053+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda/sda2",
1054+ "DEVTYPE": "partition",
1055+ "DISKSEQ": "9",
1056+ "ID_ATA": "1",
1057+ "ID_ATA_DOWNLOAD_MICROCODE": "1",
1058+ "ID_ATA_FEATURE_SET_APM": "1",
1059+ "ID_ATA_FEATURE_SET_APM_CURRENT_VALUE": "254",
1060+ "ID_ATA_FEATURE_SET_APM_ENABLED": "1",
1061+ "ID_ATA_FEATURE_SET_PM": "1",
1062+ "ID_ATA_FEATURE_SET_PM_ENABLED": "1",
1063+ "ID_ATA_FEATURE_SET_SECURITY": "1",
1064+ "ID_ATA_FEATURE_SET_SECURITY_ENABLED": "0",
1065+ "ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN": "2",
1066+ "ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN": "2",
1067+ "ID_ATA_FEATURE_SET_SECURITY_FROZEN": "1",
1068+ "ID_ATA_FEATURE_SET_SMART": "1",
1069+ "ID_ATA_FEATURE_SET_SMART_ENABLED": "1",
1070+ "ID_ATA_ROTATION_RATE_RPM": "0",
1071+ "ID_ATA_SATA": "1",
1072+ "ID_ATA_SATA_SIGNAL_RATE_GEN1": "1",
1073+ "ID_ATA_SATA_SIGNAL_RATE_GEN2": "1",
1074+ "ID_ATA_WRITE_CACHE": "1",
1075+ "ID_ATA_WRITE_CACHE_ENABLED": "1",
1076+ "ID_BUS": "ata",
1077+ "ID_FS_TYPE": "ext4",
1078+ "ID_FS_USAGE": "filesystem",
1079+ "ID_FS_UUID": "27fc2a2c-f7c5-4458-b4bd-8bd1f1822c12",
1080+ "ID_FS_UUID_ENC": "27fc2a2c-f7c5-4458-b4bd-8bd1f1822c12",
1081+ "ID_FS_VERSION": "1.0",
1082+ "ID_MODEL": "CT500MX500SSD4",
1083+ "ID_MODEL_ENC": "CT500MX500SSD4\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20",
1084+ "ID_PART_ENTRY_DISK": "8:0",
1085+ "ID_PART_ENTRY_NUMBER": "2",
1086+ "ID_PART_ENTRY_OFFSET": "2203648",
1087+ "ID_PART_ENTRY_SCHEME": "gpt",
1088+ "ID_PART_ENTRY_SIZE": "4194304",
1089+ "ID_PART_ENTRY_TYPE": "0fc63daf-8483-4772-8e79-3d69d8477de4",
1090+ "ID_PART_ENTRY_UUID": "786c854a-6b96-49c8-b99d-af1b7205bebb",
1091+ "ID_PART_TABLE_TYPE": "gpt",
1092+ "ID_PART_TABLE_UUID": "4ed9f6c2-620c-4b7e-997d-2f5c14d45402",
1093+ "ID_PATH": "pci-0000:00:1f.2-ata-4.0",
1094+ "ID_PATH_ATA_COMPAT": "pci-0000:00:1f.2-ata-4",
1095+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-4_0",
1096+ "ID_REVISION": "M3CR023",
1097+ "ID_SERIAL": "CT500MX500SSD4_1928E21350E2",
1098+ "ID_SERIAL_SHORT": "1928E21350E2",
1099+ "ID_TYPE": "disk",
1100+ "ID_WWN": "0x500a0751e21350e2",
1101+ "ID_WWN_WITH_EXTENSION": "0x500a0751e21350e2",
1102+ "MAJOR": "8",
1103+ "MINOR": "2",
1104+ "PARTN": "2",
1105+ "SUBSYSTEM": "block",
1106+ "TAGS": ":systemd:",
1107+ "USEC_INITIALIZED": "2130845",
1108+ "attrs": {
1109+ "alignment_offset": "0",
1110+ "dev": "8:2",
1111+ "discard_alignment": "0",
1112+ "inflight": " 0 0",
1113+ "partition": "2",
1114+ "power/async": "disabled",
1115+ "power/autosuspend_delay_ms": null,
1116+ "power/control": "auto",
1117+ "power/runtime_active_kids": "0",
1118+ "power/runtime_active_time": "0",
1119+ "power/runtime_enabled": "disabled",
1120+ "power/runtime_status": "unsupported",
1121+ "power/runtime_suspended_time": "0",
1122+ "power/runtime_usage": "0",
1123+ "ro": "0",
1124+ "size": "2147483648",
1125+ "start": "2203648",
1126+ "stat": " 184 0 16176 58 6 0 0 1 0 188 60 0 0 0 0 0 0",
1127+ "subsystem": "block",
1128+ "trace/act_mask": "disabled",
1129+ "trace/enable": "0",
1130+ "trace/end_lba": "disabled",
1131+ "trace/pid": "disabled",
1132+ "trace/start_lba": "disabled",
1133+ "uevent": "MAJOR=8\nMINOR=2\nDEVNAME=sda2\nDEVTYPE=partition\nDISKSEQ=9\nPARTN=2"
1134+ }
1135+ },
1136+ "/dev/sda3": {
1137+ "CURRENT_TAGS": ":systemd:",
1138+ "DEVLINKS": "/dev/disk/by-id/ata-CT500MX500SSD4_1928E21350E2-part3 /dev/disk/by-id/wwn-0x500a0751e21350e2-part3 /dev/disk/by-path/pci-0000:00:1f.2-ata-4-part3 /dev/disk/by-path/pci-0000:00:1f.2-ata-4.0-part3 /dev/disk/by-id/lvm-pv-uuid-VwZ2D9-0XYj-qEDO-daxX-jl8g-INjt-1fudZF /dev/disk/by-partuuid/21445e85-0437-4c67-a5eb-d0d9bb11eab1",
1139+ "DEVNAME": "/dev/sda3",
1140+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda/sda3",
1141+ "DEVTYPE": "partition",
1142+ "DISKSEQ": "9",
1143+ "ID_ATA": "1",
1144+ "ID_ATA_DOWNLOAD_MICROCODE": "1",
1145+ "ID_ATA_FEATURE_SET_APM": "1",
1146+ "ID_ATA_FEATURE_SET_APM_CURRENT_VALUE": "254",
1147+ "ID_ATA_FEATURE_SET_APM_ENABLED": "1",
1148+ "ID_ATA_FEATURE_SET_PM": "1",
1149+ "ID_ATA_FEATURE_SET_PM_ENABLED": "1",
1150+ "ID_ATA_FEATURE_SET_SECURITY": "1",
1151+ "ID_ATA_FEATURE_SET_SECURITY_ENABLED": "0",
1152+ "ID_ATA_FEATURE_SET_SECURITY_ENHANCED_ERASE_UNIT_MIN": "2",
1153+ "ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN": "2",
1154+ "ID_ATA_FEATURE_SET_SECURITY_FROZEN": "1",
1155+ "ID_ATA_FEATURE_SET_SMART": "1",
1156+ "ID_ATA_FEATURE_SET_SMART_ENABLED": "1",
1157+ "ID_ATA_ROTATION_RATE_RPM": "0",
1158+ "ID_ATA_SATA": "1",
1159+ "ID_ATA_SATA_SIGNAL_RATE_GEN1": "1",
1160+ "ID_ATA_SATA_SIGNAL_RATE_GEN2": "1",
1161+ "ID_ATA_WRITE_CACHE": "1",
1162+ "ID_ATA_WRITE_CACHE_ENABLED": "1",
1163+ "ID_BUS": "ata",
1164+ "ID_FS_TYPE": "LVM2_member",
1165+ "ID_FS_USAGE": "raid",
1166+ "ID_FS_UUID": "VwZ2D9-0XYj-qEDO-daxX-jl8g-INjt-1fudZF",
1167+ "ID_FS_UUID_ENC": "VwZ2D9-0XYj-qEDO-daxX-jl8g-INjt-1fudZF",
1168+ "ID_FS_VERSION": "LVM2 001",
1169+ "ID_MODEL": "CT500MX500SSD4",
1170+ "ID_MODEL_ENC": "CT500MX500SSD4\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20",
1171+ "ID_PART_ENTRY_DISK": "8:0",
1172+ "ID_PART_ENTRY_NUMBER": "3",
1173+ "ID_PART_ENTRY_OFFSET": "6397952",
1174+ "ID_PART_ENTRY_SCHEME": "gpt",
1175+ "ID_PART_ENTRY_SIZE": "970373120",
1176+ "ID_PART_ENTRY_TYPE": "0fc63daf-8483-4772-8e79-3d69d8477de4",
1177+ "ID_PART_ENTRY_UUID": "21445e85-0437-4c67-a5eb-d0d9bb11eab1",
1178+ "ID_PART_TABLE_TYPE": "gpt",
1179+ "ID_PART_TABLE_UUID": "4ed9f6c2-620c-4b7e-997d-2f5c14d45402",
1180+ "ID_PATH": "pci-0000:00:1f.2-ata-4.0",
1181+ "ID_PATH_ATA_COMPAT": "pci-0000:00:1f.2-ata-4",
1182+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-4_0",
1183+ "ID_REVISION": "M3CR023",
1184+ "ID_SERIAL": "CT500MX500SSD4_1928E21350E2",
1185+ "ID_SERIAL_SHORT": "1928E21350E2",
1186+ "ID_TYPE": "disk",
1187+ "ID_WWN": "0x500a0751e21350e2",
1188+ "ID_WWN_WITH_EXTENSION": "0x500a0751e21350e2",
1189+ "MAJOR": "8",
1190+ "MINOR": "3",
1191+ "PARTN": "3",
1192+ "SUBSYSTEM": "block",
1193+ "TAGS": ":systemd:",
1194+ "USEC_INITIALIZED": "2556860",
1195+ "attrs": {
1196+ "alignment_offset": "0",
1197+ "dev": "8:3",
1198+ "discard_alignment": "0",
1199+ "holders/dm-0": null,
1200+ "inflight": " 0 0",
1201+ "partition": "3",
1202+ "power/async": "disabled",
1203+ "power/autosuspend_delay_ms": null,
1204+ "power/control": "auto",
1205+ "power/runtime_active_kids": "0",
1206+ "power/runtime_active_time": "0",
1207+ "power/runtime_enabled": "disabled",
1208+ "power/runtime_status": "unsupported",
1209+ "power/runtime_suspended_time": "0",
1210+ "power/runtime_usage": "0",
1211+ "ro": "0",
1212+ "size": "496831037440",
1213+ "start": "6397952",
1214+ "stat": " 324 0 28336 93 5 0 0 3 0 224 96 0 0 0 0 0 0",
1215+ "subsystem": "block",
1216+ "trace/act_mask": "disabled",
1217+ "trace/enable": "0",
1218+ "trace/end_lba": "disabled",
1219+ "trace/pid": "disabled",
1220+ "trace/start_lba": "disabled",
1221+ "uevent": "MAJOR=8\nMINOR=3\nDEVNAME=sda3\nDEVTYPE=partition\nDISKSEQ=9\nPARTN=3"
1222+ }
1223+ },
1224+ "/dev/dm-0": {
1225+ "CURRENT_TAGS": ":systemd:",
1226+ "DEVLINKS": "/dev/disk/by-id/dm-name-ubuntu--vg-ubuntu--lv /dev/disk/by-id/dm-uuid-LVM-vjZscAAy83XNNqeEkaGQgHK8Pdy8tBJBJ6R9tnZKbJ8463e1VusW21heH9SdS9Up /dev/ubuntu-vg/ubuntu-lv /dev/mapper/ubuntu--vg-ubuntu--lv /dev/disk/by-uuid/d71c8dc6-92b2-4c28-9aba-95f102280064",
1227+ "DEVNAME": "/dev/dm-0",
1228+ "DEVPATH": "/devices/virtual/block/dm-0",
1229+ "DEVTYPE": "disk",
1230+ "DISKSEQ": "10",
1231+ "DM_LV_NAME": "ubuntu-lv",
1232+ "DM_NAME": "ubuntu--vg-ubuntu--lv",
1233+ "DM_SUSPENDED": "0",
1234+ "DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG": "1",
1235+ "DM_UDEV_PRIMARY_SOURCE_FLAG": "1",
1236+ "DM_UDEV_RULES": "1",
1237+ "DM_UDEV_RULES_VSN": "2",
1238+ "DM_UUID": "LVM-vjZscAAy83XNNqeEkaGQgHK8Pdy8tBJBJ6R9tnZKbJ8463e1VusW21heH9SdS9Up",
1239+ "DM_VG_NAME": "ubuntu-vg",
1240+ "ID_FS_TYPE": "ext4",
1241+ "ID_FS_USAGE": "filesystem",
1242+ "ID_FS_UUID": "d71c8dc6-92b2-4c28-9aba-95f102280064",
1243+ "ID_FS_UUID_ENC": "d71c8dc6-92b2-4c28-9aba-95f102280064",
1244+ "ID_FS_VERSION": "1.0",
1245+ "MAJOR": "253",
1246+ "MINOR": "0",
1247+ "SUBSYSTEM": "block",
1248+ "SYSTEMD_READY": "1",
1249+ "TAGS": ":systemd:",
1250+ "USEC_INITIALIZED": "2570521",
1251+ "attrs": {
1252+ "alignment_offset": "0",
1253+ "bdi": null,
1254+ "capability": "4",
1255+ "dev": "253:0",
1256+ "discard_alignment": "0",
1257+ "diskseq": "10",
1258+ "dm/name": "ubuntu--vg-ubuntu--lv",
1259+ "dm/rq_based_seq_io_merge_deadline": "0",
1260+ "dm/suspended": "0",
1261+ "dm/use_blk_mq": "1",
1262+ "dm/uuid": "LVM-vjZscAAy83XNNqeEkaGQgHK8Pdy8tBJBJ6R9tnZKbJ8463e1VusW21heH9SdS9Up",
1263+ "events": "",
1264+ "events_async": "",
1265+ "events_poll_msecs": "-1",
1266+ "ext_range": "1",
1267+ "hidden": "0",
1268+ "inflight": " 0 0",
1269+ "integrity/device_is_integrity_capable": "0",
1270+ "integrity/format": "none",
1271+ "integrity/protection_interval_bytes": "0",
1272+ "integrity/read_verify": "0",
1273+ "integrity/tag_size": "0",
1274+ "integrity/write_generate": "0",
1275+ "power/async": "disabled",
1276+ "power/autosuspend_delay_ms": null,
1277+ "power/control": "auto",
1278+ "power/runtime_active_kids": "0",
1279+ "power/runtime_active_time": "0",
1280+ "power/runtime_enabled": "disabled",
1281+ "power/runtime_status": "unsupported",
1282+ "power/runtime_suspended_time": "0",
1283+ "power/runtime_usage": "0",
1284+ "queue/add_random": "0",
1285+ "queue/chunk_sectors": "0",
1286+ "queue/dax": "0",
1287+ "queue/discard_granularity": "4096",
1288+ "queue/discard_max_bytes": "2147450880",
1289+ "queue/discard_max_hw_bytes": "2147450880",
1290+ "queue/discard_zeroes_data": "0",
1291+ "queue/dma_alignment": "511",
1292+ "queue/fua": "0",
1293+ "queue/hw_sector_size": "512",
1294+ "queue/io_poll": "0",
1295+ "queue/io_poll_delay": "0",
1296+ "queue/iostats": "0",
1297+ "queue/logical_block_size": "512",
1298+ "queue/max_discard_segments": "1",
1299+ "queue/max_hw_sectors_kb": "32767",
1300+ "queue/max_integrity_segments": "0",
1301+ "queue/max_sectors_kb": "1280",
1302+ "queue/max_segment_size": "65536",
1303+ "queue/max_segments": "168",
1304+ "queue/minimum_io_size": "4096",
1305+ "queue/nomerges": "0",
1306+ "queue/nr_requests": "128",
1307+ "queue/nr_zones": "0",
1308+ "queue/optimal_io_size": "0",
1309+ "queue/physical_block_size": "4096",
1310+ "queue/read_ahead_kb": "128",
1311+ "queue/rotational": "0",
1312+ "queue/rq_affinity": "0",
1313+ "queue/scheduler": "none",
1314+ "queue/stable_writes": "0",
1315+ "queue/virt_boundary_mask": "0",
1316+ "queue/wbt_lat_usec": null,
1317+ "queue/write_cache": "write back",
1318+ "queue/write_same_max_bytes": "0",
1319+ "queue/write_zeroes_max_bytes": "0",
1320+ "queue/zone_append_max_bytes": "0",
1321+ "queue/zone_write_granularity": "0",
1322+ "queue/zoned": "none",
1323+ "range": "1",
1324+ "removable": "0",
1325+ "ro": "0",
1326+ "size": "107374182400",
1327+ "slaves/sda3": null,
1328+ "stat": " 266 0 12712 40 5 0 0 8 0 104 48 0 0 0 0 0 0",
1329+ "subsystem": "block",
1330+ "trace/act_mask": "disabled",
1331+ "trace/enable": "0",
1332+ "trace/end_lba": "disabled",
1333+ "trace/pid": "disabled",
1334+ "trace/start_lba": "disabled",
1335+ "uevent": "MAJOR=253\nMINOR=0\nDEVNAME=dm-0\nDEVTYPE=disk\nDISKSEQ=10"
1336+ }
1337+ },
1338+ "/dev/dm-1": {
1339+ "CURRENT_TAGS": ":systemd:",
1340+ "DEVLINKS": "/dev/mapper/ventoy",
1341+ "DEVNAME": "/dev/dm-1",
1342+ "DEVPATH": "/devices/virtual/block/dm-1",
1343+ "DEVTYPE": "disk",
1344+ "DISKSEQ": "12",
1345+ "DM_NAME": "ventoy",
1346+ "DM_SUSPENDED": "0",
1347+ "DM_UDEV_DISABLE_DISK_RULES_FLAG": "1",
1348+ "DM_UDEV_DISABLE_OTHER_RULES_FLAG": "1",
1349+ "DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG": "1",
1350+ "DM_UDEV_RULES": "1",
1351+ "DM_UDEV_RULES_VSN": "2",
1352+ "MAJOR": "253",
1353+ "MINOR": "1",
1354+ "SUBSYSTEM": "block",
1355+ "TAGS": ":systemd:",
1356+ "USEC_INITIALIZED": "4473234",
1357+ "attrs": {
1358+ "alignment_offset": "0",
1359+ "bdi": null,
1360+ "capability": "4",
1361+ "dev": "253:1",
1362+ "discard_alignment": "0",
1363+ "diskseq": "12",
1364+ "dm/name": "ventoy",
1365+ "dm/rq_based_seq_io_merge_deadline": "0",
1366+ "dm/suspended": "0",
1367+ "dm/use_blk_mq": "1",
1368+ "dm/uuid": "",
1369+ "events": "",
1370+ "events_async": "",
1371+ "events_poll_msecs": "-1",
1372+ "ext_range": "1",
1373+ "hidden": "0",
1374+ "inflight": " 3 0",
1375+ "integrity/device_is_integrity_capable": "0",
1376+ "integrity/format": "none",
1377+ "integrity/protection_interval_bytes": "0",
1378+ "integrity/read_verify": "0",
1379+ "integrity/tag_size": "0",
1380+ "integrity/write_generate": "0",
1381+ "power/async": "disabled",
1382+ "power/autosuspend_delay_ms": null,
1383+ "power/control": "auto",
1384+ "power/runtime_active_kids": "0",
1385+ "power/runtime_active_time": "0",
1386+ "power/runtime_enabled": "disabled",
1387+ "power/runtime_status": "unsupported",
1388+ "power/runtime_suspended_time": "0",
1389+ "power/runtime_usage": "0",
1390+ "queue/add_random": "0",
1391+ "queue/chunk_sectors": "0",
1392+ "queue/dax": "0",
1393+ "queue/discard_granularity": "0",
1394+ "queue/discard_max_bytes": "0",
1395+ "queue/discard_max_hw_bytes": "0",
1396+ "queue/discard_zeroes_data": "0",
1397+ "queue/dma_alignment": "511",
1398+ "queue/fua": "0",
1399+ "queue/hw_sector_size": "512",
1400+ "queue/io_poll": "0",
1401+ "queue/io_poll_delay": "0",
1402+ "queue/iostats": "0",
1403+ "queue/logical_block_size": "512",
1404+ "queue/max_discard_segments": "1",
1405+ "queue/max_hw_sectors_kb": "1024",
1406+ "queue/max_integrity_segments": "0",
1407+ "queue/max_sectors_kb": "1024",
1408+ "queue/max_segment_size": "65536",
1409+ "queue/max_segments": "2048",
1410+ "queue/minimum_io_size": "512",
1411+ "queue/nomerges": "0",
1412+ "queue/nr_requests": "128",
1413+ "queue/nr_zones": "0",
1414+ "queue/optimal_io_size": "0",
1415+ "queue/physical_block_size": "512",
1416+ "queue/read_ahead_kb": "128",
1417+ "queue/rotational": "1",
1418+ "queue/rq_affinity": "0",
1419+ "queue/scheduler": "none",
1420+ "queue/stable_writes": "0",
1421+ "queue/virt_boundary_mask": "0",
1422+ "queue/wbt_lat_usec": null,
1423+ "queue/write_cache": "write through",
1424+ "queue/write_same_max_bytes": "0",
1425+ "queue/write_zeroes_max_bytes": "0",
1426+ "queue/zone_append_max_bytes": "0",
1427+ "queue/zone_write_granularity": "0",
1428+ "queue/zoned": "none",
1429+ "range": "1",
1430+ "removable": "0",
1431+ "ro": "0",
1432+ "size": "4839829504",
1433+ "slaves/sdb1": null,
1434+ "stat": " 15628 0 2364154 38764 0 0 0 0 3 33900 38764 0 0 0 0 0 0",
1435+ "subsystem": "block",
1436+ "trace/act_mask": "disabled",
1437+ "trace/enable": "0",
1438+ "trace/end_lba": "disabled",
1439+ "trace/pid": "disabled",
1440+ "trace/start_lba": "disabled",
1441+ "uevent": "MAJOR=253\nMINOR=1\nDEVNAME=dm-1\nDEVTYPE=disk\nDISKSEQ=12"
1442+ },
1443+ "partitiontable": {
1444+ "label": "gpt",
1445+ "id": "ACA58DA5-EEF8-4E61-A479-A4A7B29BED12",
1446+ "device": "/dev/dm-1",
1447+ "unit": "sectors",
1448+ "firstlba": 64,
1449+ "lastlba": 9452728,
1450+ "table-length": "248",
1451+ "sectorsize": 512,
1452+ "partitions": [
1453+ {
1454+ "node": "/dev/mapper/ventoy-part1",
1455+ "start": 64,
1456+ "size": 9441996,
1457+ "type": "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7",
1458+ "uuid": "ACA58DA5-EEF8-4E61-A478-A4A7B29BED12",
1459+ "name": "ISO9660",
1460+ "attrs": "RequiredPartition GUID:60"
1461+ },
1462+ {
1463+ "node": "/dev/mapper/ventoy-part2",
1464+ "start": 9442060,
1465+ "size": 10068,
1466+ "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
1467+ "uuid": "ACA58DA5-EEF8-4E61-A47B-A4A7B29BED12",
1468+ "name": "Appended2"
1469+ },
1470+ {
1471+ "node": "/dev/mapper/ventoy-part3",
1472+ "start": 9452128,
1473+ "size": 600,
1474+ "type": "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7",
1475+ "uuid": "ACA58DA5-EEF8-4E61-A47A-A4A7B29BED12",
1476+ "name": "Gap1",
1477+ "attrs": "RequiredPartition GUID:60"
1478+ }
1479+ ]
1480+ }
1481+ }
1482+ },
1483+ "dmcrypt": {}
1484+}
1485\ No newline at end of file
1486diff --git a/tests/unittests/test_storage_config.py b/tests/unittests/test_storage_config.py
1487index 71cd528..a538ece 100644
1488--- a/tests/unittests/test_storage_config.py
1489+++ b/tests/unittests/test_storage_config.py
1490@@ -8,6 +8,7 @@ from curtin.storage_config import (BcacheParser, BlockdevParser, DasdParser,
1491 DmcryptParser, FilesystemParser, LvmParser,
1492 RaidParser, MountParser, ZfsParser)
1493 from curtin.storage_config import ptable_uuid_to_flag_entry, select_configs
1494+from curtin.storage_config import LOG as SCLogger
1495 from curtin import util
1496
1497
1498@@ -906,6 +907,17 @@ class TestMountParser(CiTestCase):
1499 self.assertEqual(4, len(configs))
1500 self.assertEqual(0, len(errors))
1501
1502+ @skipUnlessJsonSchema()
1503+ def test_mount_ignore_ventoy(self):
1504+ probe_data = _get_data('probert_storage_ventoy.json')
1505+ mountp = MountParser(probe_data)
1506+ with self.assertLogs(SCLogger, level='WARN') as warn:
1507+ configs, errors = mountp.parse()
1508+ self.assertEqual(0, len(configs))
1509+ self.assertEqual(0, len(errors))
1510+ self.assertIn('ignoring mount for device /dev/dm-1',
1511+ [record.getMessage() for record in warn.records])
1512+
1513
1514 class TestZfsParser(CiTestCase):
1515
1516@@ -1138,6 +1150,19 @@ class TestExtractStorageConfig(CiTestCase):
1517 self.assertEqual(1, len(bitlocker))
1518 self.assertEqual(expected_dict, bitlocker[0])
1519
1520+ @skipUnlessJsonSchema()
1521+ def test_booted_using_ventoy(self):
1522+ # Make sure we ignore the ventoy DM device and partitions
1523+ self.probe_data = _get_data('probert_storage_ventoy.json')
1524+ extracted = storage_config.extract_storage_config(self.probe_data)
1525+ config = extracted['storage']['config']
1526+ for disk in [cfg for cfg in config if cfg['type'] == 'disk']:
1527+ self.assertNotEqual(disk['path'], '/dev/mapper/ventoy')
1528+ self.assertNotEqual(disk['path'], '/dev/dm-1')
1529+ for part in [cfg for cfg in config if cfg['type'] == 'partition']:
1530+ self.assertFalse(
1531+ part['path'].startswith('/dev/mapper/ventoy-part'))
1532+
1533
1534 class TestSelectConfigs(CiTestCase):
1535 def test_basic(self):

Subscribers

People subscribed via source and target branches