From 906ceabaecf060e0720dd2c71e140f8347101b42 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Fri, 26 Feb 2021 14:54:25 +0100 Subject: [PATCH] Linux only: allow NVMe destination drives ON LINUX PLATFORM ONLY Allow NVMe destination drives as long as they are not mounted except under /media This does increase the risk of someone accidently selecting an internal NVMe drive that is not mounted under the current OS (Linux) but do is being used by the other operating system (e.g. Windows) on dual boot systems. But is deemed to be an acceptable risk. Ref #158 --- debian/changelog | 7 ++++++- linux/linuxdrivelist.cpp | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index f6ebd66..eb2336d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,13 @@ rpi-imager (1.6) unstable; urgency=medium * Wayland: fix "Client tried to set invalid geometry" error * Add advanced users option screen available under SHIFT-CTRL-X + * Disable high DPI scaling on incorrect EDID + * Fix handling of .iso files + * Update translations + * GUI: change "SD card" -> "Storage" + * Allow NVMe drives as destination drive (Linux only) - -- Floris Bos Fri, 15 Jan 2021 22:00:21 +0100 + -- Floris Bos Fri, 26 Feb 2021 14:32:21 +0100 rpi-imager (1.5) unstable; urgency=medium diff --git a/linux/linuxdrivelist.cpp b/linux/linuxdrivelist.cpp index 8332f07..dce1119 100644 --- a/linux/linuxdrivelist.cpp +++ b/linux/linuxdrivelist.cpp @@ -126,6 +126,25 @@ namespace Drivelist } dp.removeAll(""); d.description = dp.join(" ").toStdString(); + + /* Mark internal NVMe drives as non-system if not mounted + anywhere else than under /media */ + if (d.isSystem && subsystems.contains("nvme")) + { + bool isMounted = false; + for (std::string mp : d.mountpoints) + { + if (!QByteArray::fromStdString(mp).startsWith("/media/")) { + isMounted = true; + break; + } + } + if (!isMounted) + { + d.isSystem = false; + } + } + deviceList.push_back(d); }