blob: 456f8206a0d5895a761c976678db40778637a8c9 [file] [log] [blame] [edit]
#!/bin/sh -ue
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# A script to locate the rootfs that corresponds to the kernel. Used in the
# initramfs on the recovery image. The hard drive *should* be constant and so
# won't need an initramfs.
# Load functions and constants for chromeos-install.
. "$(dirname "$0")/chromeos-common.sh" || exit 1
if [ "0" == $(id -u) ]; then
local sudo=""
else
local sudo=sudo
fi
# Extract the kernel partition's UniqueGuid from the command line.
guid=$(sed 's/.*kern_guid=\([0-9a-fA-F-]\+\).*/\1/' /proc/cmdline)
# Look through all the known devices to find that one partition.
kern_dev=$($sudo cgpt find -1 -u $guid)
# That's the kernel, so increment the partition number to find the rootfs.
base_dev=$(get_block_dev_from_partition_dev $kern_dev)
kern_num=$(get_partition_number $kern_dev)
root_num=$(expr $kern_num + 1)
root_dev=$(make_partition_dev $base_dev $root_num)
# done
echo $root_dev