[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#868848: debian-installer-utils: "list-devices partition" should report LVM logical volumes too



Source: debian-installer-utils
Version: 1.119
Severity: normal
Tags: patch
User: devel@kali.org
Usertags: origin-kali kali-patch

Just like "list-devices partition" reports back RAID partitions, it should
also report LVM logical volumes. The attached patch does this.

My goal is to extend the "hd-media" image to be able to find the ISO image
within an LVM logical volume too. This is a preliminary step in this
project.

Currently, I'm not hiding the partitions used by the various volume
groups. This is unlike what has been done for RAID partitions. But
I don't know all the places where list-devices is used and I'm not
convinced that it's really required either (it's not a requirement
for iso-scan at least). I'm ccing Colin, he might have some insight to
share on this.

Let me know if anybody has any objection against this patch.

Raphaël.

-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: https://www.freexian.com/services/debian-lts.html
Learn to master Debian: https://debian-handbook.info/get/
>From 6a3ece02614a1d729c5438f4192aed8a399e27cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= <hertzog@debian.org>
Date: Tue, 18 Jul 2017 16:41:46 +0200
Subject: [PATCH] Fix "list-devices partition" to also report LVM logical
 volumes

---
 debian/changelog   |  6 ++++++
 list-devices-linux | 20 ++++++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 8026b68..9181908 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+debian-installer-utils (1.120) UNRELEASED; urgency=medium
+
+  * Fix "list-devices partition" to also report LVM logical volumes.
+
+ -- Raphaël Hertzog <hertzog@debian.org>  Tue, 18 Jul 2017 16:39:00 +0200
+
 debian-installer-utils (1.119) unstable; urgency=medium
 
   * fix: propagate dot-containing options to target kernel cmdline
diff --git a/list-devices-linux b/list-devices-linux
index 9eb3c71..fa9596c 100755
--- a/list-devices-linux
+++ b/list-devices-linux
@@ -38,6 +38,10 @@ device_name () {
 	echo "/dev/$name"
 }
 
+is_lvm() {
+	grep -qs ^LVM- "$1/dm/uuid"
+}
+
 is_sataraid () {
 	grep -qs ^DMRAID- "$1/dm/uuid"
 }
@@ -79,7 +83,13 @@ case $TYPE in
 	done
 	for x in /sys/block/dm-*; do
 		[ -d "$x" ] || continue
-		(is_sataraid "$x" && is_sataraid_partition "$x") || continue
+		if is_lvm "$x"; then
+			: # Keep LVM logical volumes
+		elif is_sataraid "$x" && is_sataraid_partition "$x"; then
+			: # Keep dmraid partitions
+		else
+			continue  # Skip unknown entries
+		fi
 		syspaths="${syspaths:+$syspaths }$x"
 	done
 	TYPE=disk
@@ -100,6 +110,9 @@ case $TYPE in
 			if is_sataraid "$x" && is_sataraid_partition "$x"; then
 				continue
 			fi
+			if is_lvm "$x"; then
+				continue
+			fi
 			;;
 		    *)
 			name="$(device_name "$x")"
@@ -141,10 +154,13 @@ for x in $syspaths; do
 			match=:
 			;;
 		    /block/dm-*)
-			# for now, we only understand dmraid
+			# for now, we only understand dmraid and LVM
 			if is_sataraid "/sys$devpath"; then
 				match=:
 			fi
+			if is_lvm "/sys$devpath"; then
+				match=:
+			fi
 			;;
 		esac
 	fi
-- 
2.13.3


Reply to: