Iterate over present disks to collect "sfdisk -d" information
authorMichael Prokop <mika@grml.org>
Mon, 14 Feb 2022 16:37:16 +0000 (17:37 +0100)
committerMichael Prokop <mika@grml.org>
Mon, 14 Feb 2022 16:37:16 +0000 (17:37 +0100)
AFAICT, up and until Debian/jessie the sfdisk executable could be
invoked without the need to specify any specific device name on the
command line. In "newer" versions of sfdisk this is no longer supported,
so we need to iterate over the list of present disk devices.

With this change, the sfdisk_... files can also be used standalone,
which is useful e.g. for restoring a partition table.

Development time sponsored by Sipwise GmbH

grml-hwinfo

index 4e1d9d5..c8d299f 100755 (executable)
@@ -329,7 +329,7 @@ cd "${OUTDIR}" || exit 1
   else
     echo "running as root" > root
     disk_info
-    exectest sfdisk     && sfdisk -d > ./sfdisk 2>./sfdisk.error
+
     exectest dmidecode  && dmidecode > ./dmidecode
 
     exectest dconf && dconf -o dconf
@@ -394,6 +394,10 @@ cd "${OUTDIR}" || exit 1
     fi
 
     for disk in $disklist; do
+      if exectest sfdisk && [[ -b "/dev/${disk}" ]] ; then
+        sfdisk -d "/dev/${disk}" > "./sfdisk_${disk}" 2>"./sfdisk_${disk}.error"
+      fi
+
       if exectest smartctl ; then
         echo -e "smartctl -a /dev/${disk}:\n" >> smartctl
         smartctl -a "/dev/$disk" >> ./smartctl