mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-28 08:17:37 +00:00
Merge pull request #1405 from jodh-intel/update-collect-script-for-dax-nvdimm-images
Update collect script for dax nvdimm images
This commit is contained in:
commit
0d146738de
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2017-2018 Intel Corporation
|
||||
# Copyright (c) 2017-2019 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
@ -14,6 +14,7 @@ typeset -r script_version="@VERSION@ (commit @COMMIT@)"
|
||||
typeset -r unknown="unknown"
|
||||
|
||||
typeset -r osbuilder_file="/var/lib/osbuilder/osbuilder.yaml"
|
||||
typeset -r dax_header_size_bytes=$((2 * 1024 * 1024))
|
||||
|
||||
# Maximum number of errors to show for a single system component
|
||||
# (such as runtime or proxy).
|
||||
@ -400,19 +401,34 @@ get_image_details()
|
||||
local contents
|
||||
local expected
|
||||
|
||||
loop_device=$(loopmount_image "$img")
|
||||
if [ -z "$loop_device" ]; then
|
||||
echo "$unknown"
|
||||
return
|
||||
fi
|
||||
local found_valid_image=0
|
||||
|
||||
partitions=$(get_partitions "$loop_device")
|
||||
count=$(echo "$partitions"|wc -l)
|
||||
# Newer images contain a dax header, but check for both types.
|
||||
for use_dax_offset in true false
|
||||
do
|
||||
loop_device=$(loopmount_image "$img" "$use_dax_offset")
|
||||
[ -z "$loop_device" ] && continue
|
||||
|
||||
expected=1
|
||||
partitions=$(get_partitions "$loop_device")
|
||||
if [ -z "$partitions" ]; then
|
||||
release_device "$loop_device"
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$count" -ne "$expected" ]; then
|
||||
release_device "$loop_device"
|
||||
count=$(echo "$partitions"|wc -l)
|
||||
|
||||
expected=1
|
||||
|
||||
if [ "$count" -ne "$expected" ]; then
|
||||
release_device "$loop_device"
|
||||
continue
|
||||
fi
|
||||
|
||||
found_valid_image=1
|
||||
break
|
||||
done
|
||||
|
||||
if [ "$found_valid_image" = 0 ]; then
|
||||
echo "$unknown"
|
||||
return
|
||||
fi
|
||||
@ -434,7 +450,8 @@ get_image_details()
|
||||
unmount_partition "$mountpoint"
|
||||
release_device "$loop_device"
|
||||
|
||||
echo "$contents"
|
||||
# Supplement the output with details of whether the header was found
|
||||
printf -- "%s\ndax-nvdimm-header: \"%s\"\n" "${contents}" "$use_dax_offset"
|
||||
}
|
||||
|
||||
# Parameter 1: Path to the initrd file.
|
||||
@ -509,10 +526,16 @@ loopmount_image()
|
||||
{
|
||||
local img="$1"
|
||||
[ -n "$img" ] || die "need image file"
|
||||
local use_dax_offset="$2"
|
||||
[ -n "$use_dax_offset" ] || die "need dax offset value"
|
||||
|
||||
local device_path
|
||||
|
||||
losetup -fP "$img"
|
||||
local offset=0
|
||||
|
||||
[ "$use_dax_offset" = true ] && offset="$dax_header_size_bytes"
|
||||
|
||||
losetup -fP -o "$offset" "$img"
|
||||
|
||||
device_path=$(losetup -j "$img" |\
|
||||
cut -d: -f1 |\
|
||||
|
Loading…
Reference in New Issue
Block a user