curtin-dev team mailing list archive
-
curtin-dev team
-
Mailing list archive
-
Message #00244
[Merge] ~raharper/curtin:fix/block-discover-skip-invalid-wwn-serial into curtin:master
Ryan Harper has proposed merging ~raharper/curtin:fix/block-discover-skip-invalid-wwn-serial into curtin:master.
Commit message:
block-discover: ignore invalid id_serial/id_wwn values
When obtaining unique ids for identifying a block storage
device, block-discover looks for ID_WWN and ID_SERIAL values
and will use them in the rendered storage config. In some cases
the value of these attributes may be invalid. For example, some
consumer disks might have an invalid WWN number:
0x00000000000000000000
Curtin will also ignore empty values, like
ID_SERIAL=' '
Excluded ids will not be emitted in the final storage config.
LP: #1876848
Requested reviews:
curtin developers (curtin-dev)
Related bugs:
Bug #1876848 in subiquity (Ubuntu): "Installation of Focal on a linux raid consistently fails"
https://bugs.launchpad.net/ubuntu/+source/subiquity/+bug/1876848
For more details, see:
https://code.launchpad.net/~raharper/curtin/+git/curtin/+merge/383547
--
Your team curtin developers is requested to review the proposed merge of ~raharper/curtin:fix/block-discover-skip-invalid-wwn-serial into curtin:master.
diff --git a/curtin/storage_config.py b/curtin/storage_config.py
index eccb96b..51efd82 100644
--- a/curtin/storage_config.py
+++ b/curtin/storage_config.py
@@ -664,6 +664,13 @@ class BlockdevParser(ProbertParser):
configs.append(entry)
return (configs, errors)
+ def valid_id(self, id_value):
+ # reject wwn=0x0+
+ if id_value.lower().startswith('0x'):
+ return int(id_value, 16) > 0
+ # accept non-empty (removing whitspace) strings
+ return len(''.join(id_value.split())) > 0
+
def get_unique_ids(self, blockdev):
""" extract preferred ID_* keys for www and serial values.
@@ -679,7 +686,8 @@ class BlockdevParser(ProbertParser):
for skey, id_keys in source_keys.items():
for id_key in id_keys:
if id_key in blockdev and skey not in uniq:
- uniq[skey] = blockdev[id_key]
+ if self.valid_id(blockdev[id_key]):
+ uniq[skey] = blockdev[id_key]
return uniq
diff --git a/tests/data/probert_storage_bogus_wwn.json b/tests/data/probert_storage_bogus_wwn.json
new file mode 100644
index 0000000..b3211fd
--- /dev/null
+++ b/tests/data/probert_storage_bogus_wwn.json
@@ -0,0 +1,1258 @@
+{
+ "filesystem": {
+ "/dev/sdc": {
+ "BOOT_SYSTEM_ID": "EL\\x20TORITO\\x20SPECIFICATION",
+ "LABEL": "Ubuntu-Server_20.04_LTS_amd64",
+ "LABEL_ENC": "Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "TYPE": "iso9660",
+ "USAGE": "filesystem",
+ "UUID": "2020-04-23-08-02-07-00",
+ "UUID_ENC": "2020-04-23-08-02-07-00",
+ "VERSION": "Joliet Extension"
+ },
+ "/dev/sdc1": {
+ "BOOT_SYSTEM_ID": "EL\\x20TORITO\\x20SPECIFICATION",
+ "LABEL": "Ubuntu-Server_20.04_LTS_amd64",
+ "LABEL_ENC": "Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "TYPE": "iso9660",
+ "USAGE": "filesystem",
+ "UUID": "2020-04-23-08-02-07-00",
+ "UUID_ENC": "2020-04-23-08-02-07-00",
+ "VERSION": "Joliet Extension"
+ },
+ "/dev/sdc2": {
+ "TYPE": "vfat",
+ "USAGE": "filesystem",
+ "UUID": "1AC3-20ED",
+ "UUID_ENC": "1AC3-20ED",
+ "VERSION": "FAT12"
+ },
+ "/dev/sdc3": {
+ "LABEL": "writable",
+ "LABEL_ENC": "writable",
+ "TYPE": "ext4",
+ "USAGE": "filesystem",
+ "UUID": "8bcd1ba9-a05d-4f66-b64a-2d9042753ee7",
+ "UUID_ENC": "8bcd1ba9-a05d-4f66-b64a-2d9042753ee7",
+ "VERSION": "1.0"
+ }
+ },
+ "dmcrypt": {},
+ "mount": [
+ {
+ "target": "/",
+ "source": "/cow",
+ "fstype": "overlay",
+ "options": "rw,relatime,lowerdir=/installer.squashfs:/filesystem.squashfs,upperdir=/cow/upper,workdir=/cow/work",
+ "children": [
+ {
+ "target": "/sys",
+ "source": "sysfs",
+ "fstype": "sysfs",
+ "options": "rw,nosuid,nodev,noexec,relatime",
+ "children": [
+ {
+ "target": "/sys/kernel/security",
+ "source": "securityfs",
+ "fstype": "securityfs",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ },
+ {
+ "target": "/sys/fs/cgroup",
+ "source": "tmpfs",
+ "fstype": "tmpfs",
+ "options": "ro,nosuid,nodev,noexec,mode=755",
+ "children": [
+ {
+ "target": "/sys/fs/cgroup/unified",
+ "source": "cgroup2",
+ "fstype": "cgroup2",
+ "options": "rw,nosuid,nodev,noexec,relatime,nsdelegate"
+ },
+ {
+ "target": "/sys/fs/cgroup/systemd",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,xattr,name=systemd"
+ },
+ {
+ "target": "/sys/fs/cgroup/rdma",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,rdma"
+ },
+ {
+ "target": "/sys/fs/cgroup/cpu,cpuacct",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,cpu,cpuacct"
+ },
+ {
+ "target": "/sys/fs/cgroup/pids",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,pids"
+ },
+ {
+ "target": "/sys/fs/cgroup/memory",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,memory"
+ },
+ {
+ "target": "/sys/fs/cgroup/devices",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,devices"
+ },
+ {
+ "target": "/sys/fs/cgroup/freezer",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,freezer"
+ },
+ {
+ "target": "/sys/fs/cgroup/net_cls,net_prio",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,net_cls,net_prio"
+ },
+ {
+ "target": "/sys/fs/cgroup/perf_event",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,perf_event"
+ },
+ {
+ "target": "/sys/fs/cgroup/blkio",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,blkio"
+ },
+ {
+ "target": "/sys/fs/cgroup/hugetlb",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,hugetlb"
+ },
+ {
+ "target": "/sys/fs/cgroup/cpuset",
+ "source": "cgroup",
+ "fstype": "cgroup",
+ "options": "rw,nosuid,nodev,noexec,relatime,cpuset"
+ }
+ ]
+ },
+ {
+ "target": "/sys/fs/pstore",
+ "source": "pstore",
+ "fstype": "pstore",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ },
+ {
+ "target": "/sys/fs/bpf",
+ "source": "none",
+ "fstype": "bpf",
+ "options": "rw,nosuid,nodev,noexec,relatime,mode=700"
+ },
+ {
+ "target": "/sys/kernel/debug",
+ "source": "debugfs",
+ "fstype": "debugfs",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ },
+ {
+ "target": "/sys/kernel/tracing",
+ "source": "tracefs",
+ "fstype": "tracefs",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ },
+ {
+ "target": "/sys/kernel/config",
+ "source": "configfs",
+ "fstype": "configfs",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ },
+ {
+ "target": "/sys/fs/fuse/connections",
+ "source": "fusectl",
+ "fstype": "fusectl",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ }
+ ]
+ },
+ {
+ "target": "/proc",
+ "source": "proc",
+ "fstype": "proc",
+ "options": "rw,nosuid,nodev,noexec,relatime",
+ "children": [
+ {
+ "target": "/proc/sys/fs/binfmt_misc",
+ "source": "systemd-1",
+ "fstype": "autofs",
+ "options": "rw,relatime,fd=28,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=17022"
+ }
+ ]
+ },
+ {
+ "target": "/dev",
+ "source": "udev",
+ "fstype": "devtmpfs",
+ "options": "rw,nosuid,noexec,relatime,size=16353256k,nr_inodes=4088314,mode=755",
+ "children": [
+ {
+ "target": "/dev/pts",
+ "source": "devpts",
+ "fstype": "devpts",
+ "options": "rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000"
+ },
+ {
+ "target": "/dev/shm",
+ "source": "tmpfs",
+ "fstype": "tmpfs",
+ "options": "rw,nosuid,nodev"
+ },
+ {
+ "target": "/dev/hugepages",
+ "source": "hugetlbfs",
+ "fstype": "hugetlbfs",
+ "options": "rw,relatime,pagesize=2M"
+ },
+ {
+ "target": "/dev/mqueue",
+ "source": "mqueue",
+ "fstype": "mqueue",
+ "options": "rw,nosuid,nodev,noexec,relatime"
+ }
+ ]
+ },
+ {
+ "target": "/run",
+ "source": "tmpfs",
+ "fstype": "tmpfs",
+ "options": "rw,nosuid,nodev,noexec,relatime,size=3279500k,mode=755",
+ "children": [
+ {
+ "target": "/run/lock",
+ "source": "tmpfs",
+ "fstype": "tmpfs",
+ "options": "rw,nosuid,nodev,noexec,relatime,size=5120k"
+ }
+ ]
+ },
+ {
+ "target": "/cdrom",
+ "source": "/dev/sdc1",
+ "fstype": "iso9660",
+ "options": "ro,noatime,nojoliet,check=s,map=n,blocksize=2048"
+ },
+ {
+ "target": "/rofs",
+ "source": "/dev/loop0",
+ "fstype": "squashfs",
+ "options": "ro,noatime"
+ },
+ {
+ "target": "/var/log",
+ "source": "/dev/disk/by-label/writable[/install-logs-2020-05-04.0/log]",
+ "fstype": "ext4",
+ "options": "rw,relatime"
+ },
+ {
+ "target": "/var/crash",
+ "source": "/dev/disk/by-label/writable[/install-logs-2020-05-04.0/crash]",
+ "fstype": "ext4",
+ "options": "rw,relatime"
+ },
+ {
+ "target": "/usr/lib/modules",
+ "source": "/dev/loop2",
+ "fstype": "squashfs",
+ "options": "ro,relatime"
+ },
+ {
+ "target": "/media/filesystem",
+ "source": "/dev/loop0",
+ "fstype": "squashfs",
+ "options": "ro,relatime"
+ },
+ {
+ "target": "/tmp",
+ "source": "tmpfs",
+ "fstype": "tmpfs",
+ "options": "rw,nosuid,nodev,relatime"
+ },
+ {
+ "target": "/snap/snapd/7264",
+ "source": "/dev/loop3",
+ "fstype": "squashfs",
+ "options": "ro,nodev,relatime"
+ },
+ {
+ "target": "/snap/core18/1705",
+ "source": "/dev/loop4",
+ "fstype": "squashfs",
+ "options": "ro,nodev,relatime"
+ },
+ {
+ "target": "/snap/subiquity/1772",
+ "source": "/dev/loop5",
+ "fstype": "squashfs",
+ "options": "ro,nodev,relatime"
+ }
+ ]
+ }
+ ],
+ "multipath": {
+ "paths": [
+ {
+ "device": "nvme0n1",
+ "serial": "S4EVNJ0N203359W ",
+ "multipath": "[orphan]",
+ "host_wwnn": "[undef]",
+ "target_wwnn": "[undef]",
+ "host_wwpn": "[undef]",
+ "target_wwpn": "[undef]",
+ "host_adapter": "[undef]"
+ },
+ {
+ "device": "sda",
+ "serial": "13207907000097410026",
+ "multipath": "[orphan]",
+ "host_wwnn": "[undef]",
+ "target_wwnn": "ata-1.00",
+ "host_wwpn": "[undef]",
+ "target_wwpn": "[undef]",
+ "host_adapter": "[undef]"
+ },
+ {
+ "device": "sdb",
+ "serial": "1320790700009741003D",
+ "multipath": "[orphan]",
+ "host_wwnn": "[undef]",
+ "target_wwnn": "ata-2.00",
+ "host_wwpn": "[undef]",
+ "target_wwpn": "[undef]",
+ "host_adapter": "[undef]"
+ }
+ ]
+ },
+ "lvm": {},
+ "dasd": {},
+ "raid": {
+ "/dev/md127": {
+ "DEVLINKS": "/dev/md/ubuntu-server:0 /dev/disk/by-id/md-name-ubuntu-server:0 /dev/disk/by-id/md-uuid-079fa971:c86dcd37:05c54ec1:b343dc99",
+ "DEVNAME": "/dev/md127",
+ "DEVPATH": "/devices/virtual/block/md127",
+ "DEVTYPE": "disk",
+ "MAJOR": "9",
+ "MD_DEVICES": "2",
+ "MD_DEVICE_ev_sda2_DEV": "/dev/sda2",
+ "MD_DEVICE_ev_sda2_ROLE": "0",
+ "MD_DEVICE_ev_sdb2_DEV": "/dev/sdb2",
+ "MD_DEVICE_ev_sdb2_ROLE": "1",
+ "MD_DEVNAME": "ubuntu-server:0",
+ "MD_LEVEL": "raid1",
+ "MD_METADATA": "1.2",
+ "MD_NAME": "ubuntu-server:0",
+ "MD_UUID": "079fa971:c86dcd37:05c54ec1:b343dc99",
+ "MINOR": "127",
+ "SUBSYSTEM": "block",
+ "SYSTEMD_WANTS": "mdmonitor.service",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1083467",
+ "raidlevel": "raid1",
+ "devices": [
+ "/dev/sda2",
+ "/dev/sdb2"
+ ],
+ "spare_devices": []
+ }
+ },
+ "zfs": {
+ "zpools": {}
+ },
+ "blockdev": {
+ "/dev/sdc": {
+ "DEVLINKS": "/dev/disk/by-uuid/2020-04-23-08-02-07-00 /dev/disk/by-path/pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0 /dev/disk/by-id/usb-Generic_Flash_Disk_72FFA457-0:0 /dev/disk/by-label/Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "DEVNAME": "/dev/sdc",
+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host6/target6:0:0/6:0:0:0/block/sdc",
+ "DEVTYPE": "disk",
+ "ID_BUS": "usb",
+ "ID_FS_BOOT_SYSTEM_ID": "EL\\x20TORITO\\x20SPECIFICATION",
+ "ID_FS_LABEL": "Ubuntu-Server_20.04_LTS_amd64",
+ "ID_FS_LABEL_ENC": "Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "ID_FS_TYPE": "iso9660",
+ "ID_FS_USAGE": "filesystem",
+ "ID_FS_UUID": "2020-04-23-08-02-07-00",
+ "ID_FS_UUID_ENC": "2020-04-23-08-02-07-00",
+ "ID_FS_VERSION": "Joliet Extension",
+ "ID_INSTANCE": "0:0",
+ "ID_MODEL": "Flash_Disk",
+ "ID_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "ID_MODEL_ID": "6387",
+ "ID_PART_TABLE_TYPE": "dos",
+ "ID_PART_TABLE_UUID": "36b64baf",
+ "ID_PATH": "pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0",
+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_11_1_0-scsi-0_0_0_0",
+ "ID_REVISION": "8.07",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Generic_Flash_Disk_72FFA457-0:0",
+ "ID_SERIAL_SHORT": "72FFA457",
+ "ID_TYPE": "disk",
+ "ID_USB_DRIVER": "usb-storage",
+ "ID_USB_INTERFACES": ":080650:",
+ "ID_USB_INTERFACE_NUM": "00",
+ "ID_VENDOR": "Generic",
+ "ID_VENDOR_ENC": "Generic\\x20",
+ "ID_VENDOR_ID": "058f",
+ "MAJOR": "8",
+ "MINOR": "32",
+ "MPATH_SBIN_PATH": "/sbin",
+ "SCSI_MODEL": "Flash_Disk",
+ "SCSI_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "SCSI_REVISION": "8.07",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "Generic",
+ "SCSI_VENDOR_ENC": "Generic\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "2376183",
+ "attrs": {
+ "alignment_offset": "0",
+ "bdi": null,
+ "capability": "51",
+ "dev": "8:32",
+ "device": null,
+ "discard_alignment": "0",
+ "events": "media_change",
+ "events_async": "",
+ "events_poll_msecs": "-1",
+ "ext_range": "256",
+ "hidden": "0",
+ "inflight": " 0 0",
+ "range": "16",
+ "removable": "1",
+ "ro": "0",
+ "size": "33409990656",
+ "stat": " 15770 95 1885214 86569 1333 1088 284936 138030 0 40216 204400 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=32\nDEVNAME=sdc\nDEVTYPE=disk"
+ },
+ "partitiontable": {
+ "label": "dos",
+ "id": "0x36b64baf",
+ "device": "/dev/sdc",
+ "unit": "sectors",
+ "partitions": [
+ {
+ "node": "/dev/sdc1",
+ "start": 0,
+ "size": 1859584,
+ "type": "0",
+ "bootable": true
+ },
+ {
+ "node": "/dev/sdc2",
+ "start": 21052,
+ "size": 7936,
+ "type": "ef"
+ },
+ {
+ "node": "/dev/sdc3",
+ "start": 1859584,
+ "size": 63394304,
+ "type": "83"
+ }
+ ]
+ }
+ },
+ "/dev/sdc1": {
+ "DEVLINKS": "/dev/disk/by-id/usb-Generic_Flash_Disk_72FFA457-0:0-part1 /dev/disk/by-partuuid/36b64baf-01 /dev/disk/by-uuid/2020-04-23-08-02-07-00 /dev/disk/by-path/pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0-part1 /dev/disk/by-label/Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "DEVNAME": "/dev/sdc1",
+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host6/target6:0:0/6:0:0:0/block/sdc/sdc1",
+ "DEVTYPE": "partition",
+ "ID_BUS": "usb",
+ "ID_FS_BOOT_SYSTEM_ID": "EL\\x20TORITO\\x20SPECIFICATION",
+ "ID_FS_LABEL": "Ubuntu-Server_20.04_LTS_amd64",
+ "ID_FS_LABEL_ENC": "Ubuntu-Server\\x2020.04\\x20LTS\\x20amd64",
+ "ID_FS_TYPE": "iso9660",
+ "ID_FS_USAGE": "filesystem",
+ "ID_FS_UUID": "2020-04-23-08-02-07-00",
+ "ID_FS_UUID_ENC": "2020-04-23-08-02-07-00",
+ "ID_FS_VERSION": "Joliet Extension",
+ "ID_INSTANCE": "0:0",
+ "ID_MODEL": "Flash_Disk",
+ "ID_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "ID_MODEL_ID": "6387",
+ "ID_PART_ENTRY_DISK": "8:32",
+ "ID_PART_ENTRY_FLAGS": "0x80",
+ "ID_PART_ENTRY_NUMBER": "1",
+ "ID_PART_ENTRY_OFFSET": "0",
+ "ID_PART_ENTRY_SCHEME": "dos",
+ "ID_PART_ENTRY_SIZE": "1859584",
+ "ID_PART_ENTRY_TYPE": "0x0",
+ "ID_PART_ENTRY_UUID": "36b64baf-01",
+ "ID_PART_TABLE_TYPE": "dos",
+ "ID_PART_TABLE_UUID": "36b64baf",
+ "ID_PATH": "pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0",
+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_11_1_0-scsi-0_0_0_0",
+ "ID_REVISION": "8.07",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Generic_Flash_Disk_72FFA457-0:0",
+ "ID_SERIAL_SHORT": "72FFA457",
+ "ID_TYPE": "disk",
+ "ID_USB_DRIVER": "usb-storage",
+ "ID_USB_INTERFACES": ":080650:",
+ "ID_USB_INTERFACE_NUM": "00",
+ "ID_VENDOR": "Generic",
+ "ID_VENDOR_ENC": "Generic\\x20",
+ "ID_VENDOR_ID": "058f",
+ "MAJOR": "8",
+ "MINOR": "33",
+ "PARTN": "1",
+ "SCSI_MODEL": "Flash_Disk",
+ "SCSI_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "SCSI_REVISION": "8.07",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "Generic",
+ "SCSI_VENDOR_ENC": "Generic\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "13873530",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:33",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "1",
+ "ro": "0",
+ "size": "952107008",
+ "start": "0",
+ "stat": " 15342 92 1866238 81581 0 0 0 0 0 34464 65564 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=33\nDEVNAME=sdc1\nDEVTYPE=partition\nPARTN=1"
+ },
+ "partitiontable": {
+ "label": "dos",
+ "id": "0x36b64baf",
+ "device": "/dev/sdc1",
+ "unit": "sectors",
+ "partitions": [
+ {
+ "node": "/dev/sdc1p1",
+ "start": 0,
+ "size": 1859584,
+ "type": "0",
+ "bootable": true
+ },
+ {
+ "node": "/dev/sdc1p2",
+ "start": 21052,
+ "size": 7936,
+ "type": "ef"
+ },
+ {
+ "node": "/dev/sdc1p3",
+ "start": 1859584,
+ "size": 63394304,
+ "type": "83"
+ }
+ ]
+ }
+ },
+ "/dev/sdc2": {
+ "DEVLINKS": "/dev/disk/by-partuuid/36b64baf-02 /dev/disk/by-id/usb-Generic_Flash_Disk_72FFA457-0:0-part2 /dev/disk/by-path/pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0-part2 /dev/disk/by-uuid/1AC3-20ED",
+ "DEVNAME": "/dev/sdc2",
+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host6/target6:0:0/6:0:0:0/block/sdc/sdc2",
+ "DEVTYPE": "partition",
+ "ID_BUS": "usb",
+ "ID_FS_TYPE": "vfat",
+ "ID_FS_USAGE": "filesystem",
+ "ID_FS_UUID": "1AC3-20ED",
+ "ID_FS_UUID_ENC": "1AC3-20ED",
+ "ID_FS_VERSION": "FAT12",
+ "ID_INSTANCE": "0:0",
+ "ID_MODEL": "Flash_Disk",
+ "ID_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "ID_MODEL_ID": "6387",
+ "ID_PART_ENTRY_DISK": "8:32",
+ "ID_PART_ENTRY_NUMBER": "2",
+ "ID_PART_ENTRY_OFFSET": "21052",
+ "ID_PART_ENTRY_SCHEME": "dos",
+ "ID_PART_ENTRY_SIZE": "7936",
+ "ID_PART_ENTRY_TYPE": "0xef",
+ "ID_PART_ENTRY_UUID": "36b64baf-02",
+ "ID_PART_TABLE_TYPE": "dos",
+ "ID_PART_TABLE_UUID": "36b64baf",
+ "ID_PATH": "pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0",
+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_11_1_0-scsi-0_0_0_0",
+ "ID_REVISION": "8.07",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Generic_Flash_Disk_72FFA457-0:0",
+ "ID_SERIAL_SHORT": "72FFA457",
+ "ID_TYPE": "disk",
+ "ID_USB_DRIVER": "usb-storage",
+ "ID_USB_INTERFACES": ":080650:",
+ "ID_USB_INTERFACE_NUM": "00",
+ "ID_VENDOR": "Generic",
+ "ID_VENDOR_ENC": "Generic\\x20",
+ "ID_VENDOR_ID": "058f",
+ "MAJOR": "8",
+ "MINOR": "34",
+ "PARTN": "2",
+ "SCSI_MODEL": "Flash_Disk",
+ "SCSI_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "SCSI_REVISION": "8.07",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "Generic",
+ "SCSI_VENDOR_ENC": "Generic\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "13544949",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:34",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "2",
+ "ro": "0",
+ "size": "4063232",
+ "start": "21052",
+ "stat": " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=34\nDEVNAME=sdc2\nDEVTYPE=partition\nPARTN=2"
+ },
+ "partitiontable": {
+ "label": "dos",
+ "id": "0x00000000",
+ "device": "/dev/sdc2",
+ "unit": "sectors",
+ "grain": "512",
+ "partitions": []
+ }
+ },
+ "/dev/sdc3": {
+ "DEVLINKS": "/dev/disk/by-partuuid/36b64baf-03 /dev/disk/by-id/usb-Generic_Flash_Disk_72FFA457-0:0-part3 /dev/disk/by-uuid/8bcd1ba9-a05d-4f66-b64a-2d9042753ee7 /dev/disk/by-label/writable /dev/disk/by-path/pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0-part3",
+ "DEVNAME": "/dev/sdc3",
+ "DEVPATH": "/devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host6/target6:0:0/6:0:0:0/block/sdc/sdc3",
+ "DEVTYPE": "partition",
+ "ID_BUS": "usb",
+ "ID_FS_LABEL": "writable",
+ "ID_FS_LABEL_ENC": "writable",
+ "ID_FS_TYPE": "ext4",
+ "ID_FS_USAGE": "filesystem",
+ "ID_FS_UUID": "8bcd1ba9-a05d-4f66-b64a-2d9042753ee7",
+ "ID_FS_UUID_ENC": "8bcd1ba9-a05d-4f66-b64a-2d9042753ee7",
+ "ID_FS_VERSION": "1.0",
+ "ID_INSTANCE": "0:0",
+ "ID_MODEL": "Flash_Disk",
+ "ID_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "ID_MODEL_ID": "6387",
+ "ID_PART_ENTRY_DISK": "8:32",
+ "ID_PART_ENTRY_NUMBER": "3",
+ "ID_PART_ENTRY_OFFSET": "1859584",
+ "ID_PART_ENTRY_SCHEME": "dos",
+ "ID_PART_ENTRY_SIZE": "63394304",
+ "ID_PART_ENTRY_TYPE": "0x83",
+ "ID_PART_ENTRY_UUID": "36b64baf-03",
+ "ID_PART_TABLE_TYPE": "dos",
+ "ID_PART_TABLE_UUID": "36b64baf",
+ "ID_PATH": "pci-0000:00:14.0-usb-0:11:1.0-scsi-0:0:0:0",
+ "ID_PATH_TAG": "pci-0000_00_14_0-usb-0_11_1_0-scsi-0_0_0_0",
+ "ID_REVISION": "8.07",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Generic_Flash_Disk_72FFA457-0:0",
+ "ID_SERIAL_SHORT": "72FFA457",
+ "ID_TYPE": "disk",
+ "ID_USB_DRIVER": "usb-storage",
+ "ID_USB_INTERFACES": ":080650:",
+ "ID_USB_INTERFACE_NUM": "00",
+ "ID_VENDOR": "Generic",
+ "ID_VENDOR_ENC": "Generic\\x20",
+ "ID_VENDOR_ID": "058f",
+ "MAJOR": "8",
+ "MINOR": "35",
+ "PARTN": "3",
+ "SCSI_MODEL": "Flash_Disk",
+ "SCSI_MODEL_ENC": "Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20",
+ "SCSI_REVISION": "8.07",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "Generic",
+ "SCSI_VENDOR_ENC": "Generic\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "12691034",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:35",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "3",
+ "ro": "0",
+ "size": "32457883648",
+ "start": "1859584",
+ "stat": " 211 3 10310 4443 1332 1088 284928 137320 0 5916 137836 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=35\nDEVNAME=sdc3\nDEVTYPE=partition\nPARTN=3"
+ }
+ },
+ "/dev/nvme0n1": {
+ "DEVLINKS": "/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4EVNJ0N203359W /dev/disk/by-id/nvme-eui.0025385201404936 /dev/disk/by-path/pci-0000:04:00.0-nvme-1",
+ "DEVNAME": "/dev/nvme0n1",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/nvme/nvme0/nvme0n1",
+ "DEVTYPE": "disk",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_MODEL": "Samsung SSD 970 EVO Plus 500GB",
+ "ID_PATH": "pci-0000:04:00.0-nvme-1",
+ "ID_PATH_TAG": "pci-0000_04_00_0-nvme-1",
+ "ID_REVISION": "2B2QEXM7",
+ "ID_SERIAL": "Samsung SSD 970 EVO Plus 500GB_S4EVNJ0N203359W",
+ "ID_SERIAL_SHORT": "S4EVNJ0N203359W",
+ "ID_WWN": "eui.0025385201404936",
+ "MAJOR": "259",
+ "MINOR": "0",
+ "MPATH_SBIN_PATH": "/sbin",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1075625",
+ "attrs": {
+ "alignment_offset": "0",
+ "bdi": null,
+ "capability": "50",
+ "dev": "259:0",
+ "device": null,
+ "discard_alignment": "0",
+ "eui": "00 25 38 52 01 40 49 36",
+ "events": "",
+ "events_async": "",
+ "events_poll_msecs": "-1",
+ "ext_range": "256",
+ "hidden": "0",
+ "inflight": " 0 0",
+ "nsid": "1",
+ "range": "0",
+ "removable": "0",
+ "ro": "0",
+ "size": "500107862016",
+ "stat": " 646 0 29360 93 0 0 0 0 0 172 28 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=259\nMINOR=0\nDEVNAME=nvme0n1\nDEVTYPE=disk",
+ "wwid": "eui.0025385201404936"
+ }
+ },
+ "/dev/sda": {
+ "DEVLINKS": "/dev/disk/by-id/scsi-30000000000000000 /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_13207907000097410026 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:00:1f.2-ata-1 /dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_13207907000097410026 /dev/disk/by-id/ata-Corsair_Force_GS_13207907000097410026 /dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_13207907000097410026",
+ "DEVNAME": "/dev/sda",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda",
+ "DEVTYPE": "disk",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-1",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-1",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_13207907000097410026",
+ "ID_SERIAL_SHORT": "13207907000097410026",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "0",
+ "MPATH_SBIN_PATH": "/sbin",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_VENDOR": "13207907000097410026",
+ "SCSI_IDENT_SERIAL": "13207907000097410026",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1078655",
+ "attrs": {
+ "alignment_offset": "0",
+ "bdi": null,
+ "capability": "50",
+ "dev": "8:0",
+ "device": null,
+ "discard_alignment": "0",
+ "events": "",
+ "events_async": "",
+ "events_poll_msecs": "-1",
+ "ext_range": "256",
+ "hidden": "0",
+ "inflight": " 0 0",
+ "range": "16",
+ "removable": "0",
+ "ro": "0",
+ "size": "128035676160",
+ "stat": " 711 0 27630 117 1 0 1 0 0 248 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=0\nDEVNAME=sda\nDEVTYPE=disk"
+ },
+ "partitiontable": {
+ "label": "gpt",
+ "id": "F3254C46-A7DC-4A2B-8ED1-ACB53A05CE0A",
+ "device": "/dev/sda",
+ "unit": "sectors",
+ "firstlba": 34,
+ "lastlba": 250069646,
+ "partitions": [
+ {
+ "node": "/dev/sda1",
+ "start": 2048,
+ "size": 1,
+ "type": "21686148-6449-6E6F-744E-656564454649",
+ "uuid": "91F8E67C-5675-4B6B-B0C4-54B990FBC684",
+ "name": "BIOS boot partition"
+ },
+ {
+ "node": "/dev/sda2",
+ "start": 4096,
+ "size": 247463936,
+ "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+ "uuid": "2942FC77-138E-4269-9850-9E80D0D1E13B",
+ "name": "Linux filesystem"
+ }
+ ]
+ }
+ },
+ "/dev/sda1": {
+ "DEVLINKS": "/dev/disk/by-id/ata-Corsair_Force_GS_13207907000097410026-part1 /dev/disk/by-id/wwn-0x0000000000000000-part1 /dev/disk/by-path/pci-0000:00:1f.2-ata-1-part1 /dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_13207907000097410026-part1 /dev/disk/by-partuuid/91f8e67c-5675-4b6b-b0c4-54b990fbc684 /dev/disk/by-partlabel/BIOS\\x20boot\\x20partition /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_13207907000097410026-part1 /dev/disk/by-id/scsi-30000000000000000-part1 /dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_13207907000097410026-part1",
+ "DEVNAME": "/dev/sda1",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ "DEVTYPE": "partition",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_ENTRY_DISK": "8:0",
+ "ID_PART_ENTRY_NAME": "BIOS\\x20boot\\x20partition",
+ "ID_PART_ENTRY_NUMBER": "1",
+ "ID_PART_ENTRY_OFFSET": "2048",
+ "ID_PART_ENTRY_SCHEME": "gpt",
+ "ID_PART_ENTRY_SIZE": "1",
+ "ID_PART_ENTRY_TYPE": "21686148-6449-6e6f-744e-656564454649",
+ "ID_PART_ENTRY_UUID": "91f8e67c-5675-4b6b-b0c4-54b990fbc684",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-1",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-1",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_13207907000097410026",
+ "ID_SERIAL_SHORT": "13207907000097410026",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "1",
+ "PARTN": "1",
+ "PARTNAME": "BIOS boot partition",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_VENDOR": "13207907000097410026",
+ "SCSI_IDENT_SERIAL": "13207907000097410026",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1081180",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:1",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "1",
+ "ro": "0",
+ "size": "512",
+ "start": "2048",
+ "stat": " 12 0 26 7 0 0 0 0 0 44 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=1\nDEVNAME=sda1\nDEVTYPE=partition\nPARTN=1\nPARTNAME=BIOS boot partition"
+ }
+ },
+ "/dev/sda2": {
+ "DEVLINKS": "/dev/disk/by-id/scsi-30000000000000000-part2 /dev/disk/by-partlabel/Linux\\x20filesystem /dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_13207907000097410026-part2 /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_13207907000097410026-part2 /dev/disk/by-id/ata-Corsair_Force_GS_13207907000097410026-part2 /dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_13207907000097410026-part2 /dev/disk/by-path/pci-0000:00:1f.2-ata-1-part2 /dev/disk/by-id/wwn-0x0000000000000000-part2 /dev/disk/by-partuuid/2942fc77-138e-4269-9850-9e80d0d1e13b",
+ "DEVNAME": "/dev/sda2",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda2",
+ "DEVTYPE": "partition",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_FS_LABEL": "ubuntu-server:0",
+ "ID_FS_LABEL_ENC": "ubuntu-server:0",
+ "ID_FS_TYPE": "linux_raid_member",
+ "ID_FS_USAGE": "raid",
+ "ID_FS_UUID": "079fa971-c86d-cd37-05c5-4ec1b343dc99",
+ "ID_FS_UUID_ENC": "079fa971-c86d-cd37-05c5-4ec1b343dc99",
+ "ID_FS_UUID_SUB": "383e86fc-6472-2d62-e62b-bec2529b2c2d",
+ "ID_FS_UUID_SUB_ENC": "383e86fc-6472-2d62-e62b-bec2529b2c2d",
+ "ID_FS_VERSION": "1.2",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_ENTRY_DISK": "8:0",
+ "ID_PART_ENTRY_NAME": "Linux\\x20filesystem",
+ "ID_PART_ENTRY_NUMBER": "2",
+ "ID_PART_ENTRY_OFFSET": "4096",
+ "ID_PART_ENTRY_SCHEME": "gpt",
+ "ID_PART_ENTRY_SIZE": "247463936",
+ "ID_PART_ENTRY_TYPE": "0fc63daf-8483-4772-8e79-3d69d8477de4",
+ "ID_PART_ENTRY_UUID": "2942fc77-138e-4269-9850-9e80d0d1e13b",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-1",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-1",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_13207907000097410026",
+ "ID_SERIAL_SHORT": "13207907000097410026",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "2",
+ "PARTN": "2",
+ "PARTNAME": "Linux filesystem",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_13207907000097410026",
+ "SCSI_IDENT_LUN_VENDOR": "13207907000097410026",
+ "SCSI_IDENT_SERIAL": "13207907000097410026",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1083076",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:2",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "2",
+ "ro": "0",
+ "size": "126701535232",
+ "start": "4096",
+ "stat": " 600 0 21796 80 1 0 1 0 0 188 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=2\nDEVNAME=sda2\nDEVTYPE=partition\nPARTN=2\nPARTNAME=Linux filesystem"
+ }
+ },
+ "/dev/sdb": {
+ "DEVLINKS": "/dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_1320790700009741003D /dev/disk/by-id/ata-Corsair_Force_GS_1320790700009741003D /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-id/scsi-30000000000000000 /dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_1320790700009741003D /dev/disk/by-path/pci-0000:00:1f.2-ata-2 /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_1320790700009741003D",
+ "DEVNAME": "/dev/sdb",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb",
+ "DEVTYPE": "disk",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-2",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-2",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_1320790700009741003D",
+ "ID_SERIAL_SHORT": "1320790700009741003D",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "16",
+ "MPATH_SBIN_PATH": "/sbin",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_VENDOR": "1320790700009741003D",
+ "SCSI_IDENT_SERIAL": "1320790700009741003D",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1079071",
+ "attrs": {
+ "alignment_offset": "0",
+ "bdi": null,
+ "capability": "50",
+ "dev": "8:16",
+ "device": null,
+ "discard_alignment": "0",
+ "events": "",
+ "events_async": "",
+ "events_poll_msecs": "-1",
+ "ext_range": "256",
+ "hidden": "0",
+ "inflight": " 0 0",
+ "range": "16",
+ "removable": "0",
+ "ro": "0",
+ "size": "128035676160",
+ "stat": " 298 0 12529 72 1 0 1 0 0 188 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=16\nDEVNAME=sdb\nDEVTYPE=disk"
+ },
+ "partitiontable": {
+ "label": "gpt",
+ "id": "F3254C46-A7DC-4A2B-8ED1-ACB53A05CE0A",
+ "device": "/dev/sdb",
+ "unit": "sectors",
+ "firstlba": 34,
+ "lastlba": 250069646,
+ "partitions": [
+ {
+ "node": "/dev/sdb1",
+ "start": 2048,
+ "size": 1,
+ "type": "21686148-6449-6E6F-744E-656564454649",
+ "uuid": "D997F579-F242-4C88-B51A-87BF5111545D",
+ "name": "BIOS boot partition"
+ },
+ {
+ "node": "/dev/sdb2",
+ "start": 4096,
+ "size": 247463936,
+ "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+ "uuid": "8B3C809D-54AC-4515-B719-CDE1F8A361B7",
+ "name": "Linux filesystem"
+ }
+ ]
+ }
+ },
+ "/dev/sdb1": {
+ "DEVLINKS": "/dev/disk/by-path/pci-0000:00:1f.2-ata-2-part1 /dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_1320790700009741003D-part1 /dev/disk/by-id/scsi-30000000000000000-part1 /dev/disk/by-id/ata-Corsair_Force_GS_1320790700009741003D-part1 /dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_1320790700009741003D-part1 /dev/disk/by-partlabel/BIOS\\x20boot\\x20partition /dev/disk/by-partuuid/d997f579-f242-4c88-b51a-87bf5111545d /dev/disk/by-id/wwn-0x0000000000000000-part1 /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_1320790700009741003D-part1",
+ "DEVNAME": "/dev/sdb1",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb1",
+ "DEVTYPE": "partition",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_ENTRY_DISK": "8:16",
+ "ID_PART_ENTRY_NAME": "BIOS\\x20boot\\x20partition",
+ "ID_PART_ENTRY_NUMBER": "1",
+ "ID_PART_ENTRY_OFFSET": "2048",
+ "ID_PART_ENTRY_SCHEME": "gpt",
+ "ID_PART_ENTRY_SIZE": "1",
+ "ID_PART_ENTRY_TYPE": "21686148-6449-6e6f-744e-656564454649",
+ "ID_PART_ENTRY_UUID": "d997f579-f242-4c88-b51a-87bf5111545d",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-2",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-2",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_1320790700009741003D",
+ "ID_SERIAL_SHORT": "1320790700009741003D",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "17",
+ "PARTN": "1",
+ "PARTNAME": "BIOS boot partition",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_VENDOR": "1320790700009741003D",
+ "SCSI_IDENT_SERIAL": "1320790700009741003D",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1082533",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:17",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "1",
+ "ro": "0",
+ "size": "512",
+ "start": "2048",
+ "stat": " 12 0 26 11 0 0 0 0 0 48 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=17\nDEVNAME=sdb1\nDEVTYPE=partition\nPARTN=1\nPARTNAME=BIOS boot partition"
+ }
+ },
+ "/dev/sdb2": {
+ "DEVLINKS": "/dev/disk/by-id/scsi-0ATA_Corsair_Force_GS_1320790700009741003D-part2 /dev/disk/by-path/pci-0000:00:1f.2-ata-2-part2 /dev/disk/by-partuuid/8b3c809d-54ac-4515-b719-cde1f8a361b7 /dev/disk/by-id/scsi-1ATA_Corsair_Force_GS_1320790700009741003D-part2 /dev/disk/by-id/scsi-SATA_Corsair_Force_GS_1320790700009741003D-part2 /dev/disk/by-id/scsi-30000000000000000-part2 /dev/disk/by-id/ata-Corsair_Force_GS_1320790700009741003D-part2 /dev/disk/by-id/wwn-0x0000000000000000-part2 /dev/disk/by-partlabel/Linux\\x20filesystem",
+ "DEVNAME": "/dev/sdb2",
+ "DEVPATH": "/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb2",
+ "DEVTYPE": "partition",
+ "DM_MULTIPATH_DEVICE_PATH": "0",
+ "ID_ATA": "1",
+ "ID_BUS": "ata",
+ "ID_FS_LABEL": "ubuntu-server:0",
+ "ID_FS_LABEL_ENC": "ubuntu-server:0",
+ "ID_FS_TYPE": "linux_raid_member",
+ "ID_FS_USAGE": "raid",
+ "ID_FS_UUID": "079fa971-c86d-cd37-05c5-4ec1b343dc99",
+ "ID_FS_UUID_ENC": "079fa971-c86d-cd37-05c5-4ec1b343dc99",
+ "ID_FS_UUID_SUB": "df50ba68-38bd-acc2-3ad1-057980954294",
+ "ID_FS_UUID_SUB_ENC": "df50ba68-38bd-acc2-3ad1-057980954294",
+ "ID_FS_VERSION": "1.2",
+ "ID_MODEL": "Corsair_Force_GS",
+ "ID_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "ID_PART_ENTRY_DISK": "8:16",
+ "ID_PART_ENTRY_NAME": "Linux\\x20filesystem",
+ "ID_PART_ENTRY_NUMBER": "2",
+ "ID_PART_ENTRY_OFFSET": "4096",
+ "ID_PART_ENTRY_SCHEME": "gpt",
+ "ID_PART_ENTRY_SIZE": "247463936",
+ "ID_PART_ENTRY_TYPE": "0fc63daf-8483-4772-8e79-3d69d8477de4",
+ "ID_PART_ENTRY_UUID": "8b3c809d-54ac-4515-b719-cde1f8a361b7",
+ "ID_PART_TABLE_TYPE": "gpt",
+ "ID_PART_TABLE_UUID": "f3254c46-a7dc-4a2b-8ed1-acb53a05ce0a",
+ "ID_PATH": "pci-0000:00:1f.2-ata-2",
+ "ID_PATH_TAG": "pci-0000_00_1f_2-ata-2",
+ "ID_REVISION": "A",
+ "ID_SCSI": "1",
+ "ID_SCSI_INQUIRY": "1",
+ "ID_SERIAL": "Corsair_Force_GS_1320790700009741003D",
+ "ID_SERIAL_SHORT": "1320790700009741003D",
+ "ID_TYPE": "disk",
+ "ID_VENDOR": "ATA",
+ "ID_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "ID_WWN": "0x0000000000000000",
+ "ID_WWN_WITH_EXTENSION": "0x0000000000000000",
+ "MAJOR": "8",
+ "MINOR": "18",
+ "PARTN": "2",
+ "PARTNAME": "Linux filesystem",
+ "SCSI_IDENT_LUN_ATA": "Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_NAA_LOCAL": "0000000000000000",
+ "SCSI_IDENT_LUN_T10": "ATA_Corsair_Force_GS_1320790700009741003D",
+ "SCSI_IDENT_LUN_VENDOR": "1320790700009741003D",
+ "SCSI_IDENT_SERIAL": "1320790700009741003D",
+ "SCSI_MODEL": "Corsair_Force_GS",
+ "SCSI_MODEL_ENC": "Corsair\\x20Force\\x20GS",
+ "SCSI_REVISION": "A",
+ "SCSI_TPGS": "0",
+ "SCSI_TYPE": "disk",
+ "SCSI_VENDOR": "ATA",
+ "SCSI_VENDOR_ENC": "ATA\\x20\\x20\\x20\\x20\\x20",
+ "SUBSYSTEM": "block",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1103395",
+ "attrs": {
+ "alignment_offset": "0",
+ "dev": "8:18",
+ "discard_alignment": "0",
+ "inflight": " 0 0",
+ "partition": "2",
+ "ro": "0",
+ "size": "126701535232",
+ "start": "4096",
+ "stat": " 187 0 6695 31 1 0 1 0 0 140 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=8\nMINOR=18\nDEVNAME=sdb2\nDEVTYPE=partition\nPARTN=2\nPARTNAME=Linux filesystem"
+ }
+ },
+ "/dev/md127": {
+ "DEVLINKS": "/dev/md/ubuntu-server:0 /dev/disk/by-id/md-name-ubuntu-server:0 /dev/disk/by-id/md-uuid-079fa971:c86dcd37:05c54ec1:b343dc99",
+ "DEVNAME": "/dev/md127",
+ "DEVPATH": "/devices/virtual/block/md127",
+ "DEVTYPE": "disk",
+ "MAJOR": "9",
+ "MD_DEVICES": "2",
+ "MD_DEVICE_ev_sda2_DEV": "/dev/sda2",
+ "MD_DEVICE_ev_sda2_ROLE": "0",
+ "MD_DEVICE_ev_sdb2_DEV": "/dev/sdb2",
+ "MD_DEVICE_ev_sdb2_ROLE": "1",
+ "MD_DEVNAME": "ubuntu-server:0",
+ "MD_LEVEL": "raid1",
+ "MD_METADATA": "1.2",
+ "MD_NAME": "ubuntu-server:0",
+ "MD_UUID": "079fa971:c86dcd37:05c54ec1:b343dc99",
+ "MINOR": "127",
+ "SUBSYSTEM": "block",
+ "SYSTEMD_WANTS": "mdmonitor.service",
+ "TAGS": ":systemd:",
+ "USEC_INITIALIZED": "1083467",
+ "attrs": {
+ "alignment_offset": "0",
+ "bdi": null,
+ "capability": "50",
+ "dev": "9:127",
+ "discard_alignment": "0",
+ "events": "",
+ "events_async": "",
+ "events_poll_msecs": "-1",
+ "ext_range": "256",
+ "hidden": "0",
+ "inflight": " 0 0",
+ "range": "1",
+ "removable": "0",
+ "ro": "0",
+ "size": "126633377792",
+ "stat": " 619 0 26848 0 0 0 0 0 0 0 0 0 0 0 0",
+ "subsystem": "block",
+ "uevent": "MAJOR=9\nMINOR=127\nDEVNAME=md127\nDEVTYPE=disk"
+ }
+ }
+ },
+ "bcache": {
+ "backing": {},
+ "caching": {}
+ }
+}
diff --git a/tests/unittests/test_storage_config.py b/tests/unittests/test_storage_config.py
index 1f2b833..ecdc565 100644
--- a/tests/unittests/test_storage_config.py
+++ b/tests/unittests/test_storage_config.py
@@ -232,6 +232,34 @@ class TestBlockdevParser(CiTestCase):
self.assertDictEqual(expected_ids,
self.bdevp.get_unique_ids(blockdev))
+ def test_get_unique_ids_ignores_empty_wwn_values(self):
+ """ BlockdevParser skips invalid ID_WWN_* values. """
+ self.bdevp.blockdev_data['/dev/sda'] = {
+ 'DEVTYPE': 'disk',
+ 'DEVNAME': 'sda',
+ 'ID_SERIAL': 'Corsair_Force_GS_1785234921906',
+ 'ID_SERIAL_SHORT': '1785234921906',
+ 'ID_WWN': '0x0000000000000000',
+ 'ID_WWN_WITH_EXTENSION': '0x0000000000000000',
+ }
+ blockdev = self.bdevp.blockdev_data['/dev/sda']
+ expected_ids = {'serial': 'Corsair_Force_GS_1785234921906'}
+ self.assertEqual(expected_ids,
+ self.bdevp.get_unique_ids(blockdev))
+
+ def test_get_unique_ids_ignores_empty_serial_values(self):
+ """ BlockdevParser skips invalid ID_SERIAL_* values. """
+ self.bdevp.blockdev_data['/dev/sda'] = {
+ 'DEVTYPE': 'disk',
+ 'DEVNAME': 'sda',
+ 'ID_SERIAL': ' ',
+ 'ID_SERIAL_SHORT': 'My Serial is My PassPort',
+ }
+ blockdev = self.bdevp.blockdev_data['/dev/sda']
+ expected_ids = {'serial': 'My Serial is My PassPort'}
+ self.assertEqual(expected_ids,
+ self.bdevp.get_unique_ids(blockdev))
+
def test_partition_parent_devname(self):
""" BlockdevParser calculate partition parent name. """
expected_parent = '/dev/sda'
@@ -984,5 +1012,22 @@ class TestExtractStorageConfig(CiTestCase):
self.assertEqual(1, len(disks))
self.assertEqual(expected_dict, disks[0])
+ @skipUnlessJsonSchema()
+ def test_blockdev_skips_invalid_wwn(self):
+ self.probe_data = _get_data('probert_storage_bogus_wwn.json')
+ extracted = storage_config.extract_storage_config(self.probe_data)
+ config = extracted['storage']['config']
+ disks = [cfg for cfg in config
+ if cfg['type'] == 'disk' and cfg['path'] == '/dev/sda']
+ expected_dict = {
+ 'id': 'disk-sda',
+ 'path': '/dev/sda',
+ 'ptable': 'gpt',
+ 'serial': 'Corsair_Force_GS_13207907000097410026',
+ 'type': 'disk',
+ }
+ self.assertEqual(1, len(disks))
+ self.assertEqual(expected_dict, disks[0])
+
# vi: ts=4 expandtab syntax=python
Follow ups