diff --git a/src/DeviceId.Linux/Components/LinuxRootDriveSerialNumberDeviceIdComponent.cs b/src/DeviceId.Linux/Components/LinuxRootDriveSerialNumberDeviceIdComponent.cs
index 15f3cbe..6dad7cb 100644
--- a/src/DeviceId.Linux/Components/LinuxRootDriveSerialNumberDeviceIdComponent.cs
+++ b/src/DeviceId.Linux/Components/LinuxRootDriveSerialNumberDeviceIdComponent.cs
@@ -43,7 +43,7 @@ internal LinuxRootDriveSerialNumberDeviceIdComponent(ICommandExecutor commandExe
/// The component value.
public string GetValue()
{
- var outputJson = _commandExecutor.Execute("lsblk -f -J");
+ var outputJson = _commandExecutor.Execute("lsblk -f -J -o Name,MountPoint");
var output = JsonSerializer.Deserialize(outputJson, _jsonSerializerOptions);
var device = FindRootParent(output);
diff --git a/test/DeviceId.Tests/Components/LinuxRootDriveSerialNumberDeviceIdComponentTests.cs b/test/DeviceId.Tests/Components/LinuxRootDriveSerialNumberDeviceIdComponentTests.cs
index 4157a2a..edcbda5 100644
--- a/test/DeviceId.Tests/Components/LinuxRootDriveSerialNumberDeviceIdComponentTests.cs
+++ b/test/DeviceId.Tests/Components/LinuxRootDriveSerialNumberDeviceIdComponentTests.cs
@@ -141,10 +141,40 @@ public void DigitalOceanVmWithoutSerialId()
componentValue.Should().BeNull();
}
+ [Fact]
+ public void OnlyNameAndMountPointColumn()
+ {
+ const string deviceName = "nvme0n1";
+
+ const string lsblkOutput = @"
+ {
+ ""blockdevices"": [
+ { ""name"": ""loop0"", ""mountpoint"": ""/snap/bare/5"" },
+ { ""name"": ""loop1"", ""mountpoint"": ""/snap/core22/1612"" },
+ { ""name"": ""loop2"", ""mountpoint"": ""/snap/firefox/4848"" },
+ { ""name"": ""loop3"", ""mountpoint"": ""/snap/gnome-42-2204/176"" },
+ { ""name"": ""loop4"", ""mountpoint"": ""/snap/gtk-common-themes/1535"" },
+ { ""name"": ""loop5"", ""mountpoint"": ""/snap/snapd/21759"" },
+ { ""name"": ""nvme0n1"", ""mountpoint"": null,
+ ""children"": [
+ { ""name"": ""nvme0n1p1"", ""mountpoint"": ""/boot/efi"" },
+ { ""name"": ""nvme0n1p2"", ""mountpoint"": ""/"" }
+ ]
+ }
+ ]
+ }";
+
+ const string udevadmOutput = "E: ID_SERIAL=WDC_PC_SN520_SDAPNUW-128G-1006_191855800528_1";
+
+ var componentValue = GetComponentValue(deviceName, lsblkOutput, udevadmOutput);
+
+ componentValue.Should().Be("WDC_PC_SN520_SDAPNUW-128G-1006_191855800528_1");
+ }
+
private static string GetComponentValue(string rootParentDeviceName, string lsblkOutput, string udevadmOutput)
{
var commandExecutorMock = Substitute.For();
- commandExecutorMock.Execute("lsblk -f -J").Returns(lsblkOutput);
+ commandExecutorMock.Execute("lsblk -f -J -o Name,MountPoint").Returns(lsblkOutput);
commandExecutorMock.Execute($"udevadm info --query=all --name=/dev/{rootParentDeviceName} | grep ID_SERIAL=").Returns(udevadmOutput);
var component = new LinuxRootDriveSerialNumberDeviceIdComponent(commandExecutorMock);