* main - pvscan: warn about /dev/sda excluded by devices file
@ 2022-04-01 18:38 David Teigland
0 siblings, 0 replies; only message in thread
From: David Teigland @ 2022-04-01 18:38 UTC (permalink / raw)
To: lvm-devel
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f840dbb3205754db1a339aba8e0f68fa40138ba1
Commit: f840dbb3205754db1a339aba8e0f68fa40138ba1
Parent: 8db3b11e4ed94974bc25c26e2f1271c34f6ccf15
Author: David Teigland <teigland@redhat.com>
AuthorDate: Thu Mar 31 14:47:42 2022 -0500
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Fri Apr 1 13:38:21 2022 -0500
pvscan: warn about /dev/sda excluded by devices file
In most installations, /dev/sda* or /dev/vda* should be included
in system.devices because the root, home, etc LVs are usually on
sda or vda.
Add a special case warning when a pvscan autoactivation command
sees that /dev/sda* or /dev/vda* are excluded by system.devices,
either not listed or having a different device id.
---
tools/pvscan.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/tools/pvscan.c b/tools/pvscan.c
index cf1772165..1e47d754a 100644
--- a/tools/pvscan.c
+++ b/tools/pvscan.c
@@ -19,6 +19,7 @@
#include "lib/metadata/metadata.h"
#include "lib/label/hints.h"
#include "lib/device/online.h"
+#include "lib/filters/filter.h"
#include <dirent.h>
@@ -1435,6 +1436,27 @@ static int _pvscan_cache_all(struct cmd_context *cmd, int argc, char **argv,
return 1;
}
+/*
+ * If /dev/sda* of /dev/vda* is excluded by the devices file
+ * it's usually a misconfiguration that prevents proper booting,
+ * so make it a special case to give extra info to help debugging.
+ */
+static void _warn_excluded_root(struct cmd_context *cmd, struct device *dev)
+{
+ struct dev_use *du;
+ const char *cur_idname;
+
+ if (!(du = get_du_for_devname(cmd, dev_name(dev)))) {
+ log_warn("WARNING: no autoactivation for %s: not found in system.devices.", dev_name(dev));
+ return;
+ }
+
+ cur_idname = device_id_system_read(cmd, dev, du->idtype);
+
+ log_warn("WARNING: no autoactivation for %s: system.devices %s current %s.",
+ dev_name(dev), du->idname, cur_idname ?: "missing device id");
+}
+
static int _pvscan_cache_args(struct cmd_context *cmd, int argc, char **argv,
struct dm_list *complete_vgnames)
{
@@ -1545,6 +1567,12 @@ static int _pvscan_cache_args(struct cmd_context *cmd, int argc, char **argv,
log_print_pvscan(cmd, "%s excluded: %s.",
dev_name(devl->dev), dev_filtered_reason(devl->dev));
dm_list_del(&devl->list);
+
+ /* Special case warning when probable root dev is missing from system.devices */
+ if ((devl->dev->filtered_flags & DEV_FILTERED_DEVICES_FILE) &&
+ (!strncmp(dev_name(devl->dev), "/dev/sda", 8) ||
+ !strncmp(dev_name(devl->dev), "/dev/vda", 8)))
+ _warn_excluded_root(cmd, devl->dev);
}
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-01 18:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-01 18:38 main - pvscan: warn about /dev/sda excluded by devices file David Teigland
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.