image_to_live verifies root_dev changed.

Without this, image_to_live can sometimes think that an update from the same version to same version worked when it failed.

BUG=chromium-os:9002
TEST=By hand (hardware && success only)

Review URL: http://codereview.chromium.org/6045004

Change-Id: Ic0835372a45a45785e21ba1527d478f447bcf42a
This commit is contained in:
Don Garrett 2010-12-21 13:41:57 -08:00
parent e82f07c262
commit c6c925d8ef

View File

@ -329,6 +329,11 @@ function verify_image {
fi
}
function find_root_dev {
remote_sh "rootdev -s"
echo ${REMOTE_OUT}
}
function main() {
assert_outside_chroot
@ -356,6 +361,8 @@ function main() {
remote_reboot
fi
local initial_root_dev=$(find_root_dev)
if [ -z "${FLAGS_update_url}" ]; then
# Start local devserver if no update url specified.
start_dev_server
@ -386,6 +393,13 @@ function main() {
remote_sh "grep ^CHROMEOS_RELEASE_DESCRIPTION= /etc/lsb-release"
if [ ${FLAGS_verify} -eq ${FLAGS_TRUE} ]; then
verify_image
if [ "${initial_root_dev}" == "$(find_root_dev)" ]; then
# At this point, the software version didn't change, but we didn't
# switch partitions either. Means it was an update to the same version
# that failed.
die "The root partition did NOT change. The update failed."
fi
else
local release_description=$(echo ${REMOTE_OUT} | cut -d '=' -f 2)
info "Update was successful and rebooted to $release_description"