From b43ca06ea69cebbdd774ed03bc0da63eb3955d66 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 14 Aug 2025 14:56:47 +0100 Subject: [PATCH] daemon/inspect_fs_windows.ml: Add debugging for MBR drive mappings The function 'map_registry_disk_blob_gpt' immediately below this one has a debugging statement. Add the equivalent to the function 'map_registry_disk_blob_mbr'. The output looks like: map_registry_disk_blob_mbr: searching for MBR disk ID 31 32 33 34 map_registry_disk_blob_mbr: searching for MBR partition offset 00 00 00 10 00 00 00 00 --- daemon/inspect_fs_windows.ml | 8 ++++++++ daemon/utils.ml | 4 ++++ daemon/utils.mli | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/daemon/inspect_fs_windows.ml b/daemon/inspect_fs_windows.ml index dbaf4c362..5991cdba3 100644 --- a/daemon/inspect_fs_windows.ml +++ b/daemon/inspect_fs_windows.ml @@ -376,6 +376,10 @@ and map_registry_disk_blob_mbr devices blob = * disk with this disk ID. *) let diskid = String.sub blob 0 4 in + if verbose () then + eprintf "map_registry_disk_blob_mbr: searching for MBR disk ID %s\n%!" + (hex_of_string diskid); + let device = List.find ( fun dev -> @@ -388,6 +392,10 @@ and map_registry_disk_blob_mbr devices blob = * partition byte offset from Parted.part_list. *) let offset = String.sub blob 4 8 in + if verbose () then + eprintf "map_registry_disk_blob_mbr: searching for MBR partition offset \ + %s\n%!" + (hex_of_string offset); let offset = int_of_le64 offset in let partitions = Parted.part_list device in let partition = diff --git a/daemon/utils.ml b/daemon/utils.ml index 40584c9f1..3aa1d7ed2 100644 --- a/daemon/utils.ml +++ b/daemon/utils.ml @@ -291,3 +291,7 @@ let parse_key_value_strings ?unquote lines = match unquote with | None -> lines | Some f -> List.map (fun (k, v) -> (k, f v)) lines + +let hex_of_string s = + let bytes = String.map_chars (fun c -> sprintf "%02x" (Char.code c)) s in + String.concat " " bytes diff --git a/daemon/utils.mli b/daemon/utils.mli index 0f2ae471f..e14735038 100644 --- a/daemon/utils.mli +++ b/daemon/utils.mli @@ -121,5 +121,9 @@ val parse_key_value_strings : ?unquote:(string -> string) -> string list -> (str it is applied on the values as unquote function. Empty lines, or that start with a comment character [#], are ignored. *) +val hex_of_string : string -> string +(** Return a string as a list of hex bytes. + Use this for debugging msgs only. *) + (**/**) val get_verbose_flag : unit -> bool -- 2.47.1