Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: build_image

Issue 3916002: cros_make_image_bootable, mount_gpt_image, common.sh: root filesystem changes: ext2, ro by default (Closed)
Patch Set: line len Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Script to build a bootable keyfob-based chromeos system image from within 7 # Script to build a bootable keyfob-based chromeos system image from within
8 # a chromiumos setup. This assumes that all needed packages have been built into 8 # a chromiumos setup. This assumes that all needed packages have been built into
9 # the given target's root with binary packages turned on. This script will 9 # the given target's root with binary packages turned on. This script will
10 # build the Chrome OS image using only pre-built binary packages. 10 # build the Chrome OS image using only pre-built binary packages.
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 trap - EXIT 469 trap - EXIT
470 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \ 470 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \
471 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" 471 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}"
472 } 472 }
473 473
474 create_base_image() { 474 create_base_image() {
475 local image_name=$1 475 local image_name=$1
476 476
477 trap "cleanup && delete_prompt" EXIT 477 trap "cleanup && delete_prompt" EXIT
478 478
479 UUID=$(uuidgen)
480
481 # Create and format the root file system. 479 # Create and format the root file system.
482 480
483 # Check for loop device before creating image. 481 # Check for loop device before creating image.
484 LOOP_DEV=$(sudo losetup -f) 482 LOOP_DEV=$(sudo losetup -f)
485 if [ -z "${LOOP_DEV}" ] ; then 483 if [ -z "${LOOP_DEV}" ] ; then
486 echo "No free loop device. Free up a loop device or reboot. exiting. " 484 echo "No free loop device. Free up a loop device or reboot. exiting. "
487 exit 1 485 exit 1
488 fi 486 fi
489 487
490 # Create root file system disk image. 488 # Create root file system disk image.
491 ROOT_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_rootfs_size})) 489 ROOT_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_rootfs_size}))
492 490
493 # Pad out for the hash tree. 491 # Pad out for the hash tree.
494 ROOT_HASH_PAD=$((FLAGS_rootfs_hash_pad * 1024 * 1024)) 492 ROOT_HASH_PAD=$((FLAGS_rootfs_hash_pad * 1024 * 1024))
495 info "Padding the rootfs image by ${ROOT_HASH_PAD} bytes for hash data" 493 info "Padding the rootfs image by ${ROOT_HASH_PAD} bytes for hash data"
496 494
497 dd if=/dev/zero of="${ROOT_FS_IMG}" bs=1 count=1 \ 495 dd if=/dev/zero of="${ROOT_FS_IMG}" bs=1 count=1 \
498 seek=$((ROOT_SIZE_BYTES + ROOT_HASH_PAD - 1)) 496 seek=$((ROOT_SIZE_BYTES + ROOT_HASH_PAD - 1))
499 sudo losetup "${LOOP_DEV}" "${ROOT_FS_IMG}" 497 sudo losetup "${LOOP_DEV}" "${ROOT_FS_IMG}"
500 # Specify a block size and block count to avoid using the hash pad. 498 # Specify a block size and block count to avoid using the hash pad.
501 sudo mkfs.ext3 -b 4096 "${LOOP_DEV}" "$((ROOT_SIZE_BYTES / 4096))" 499 sudo mkfs.ext2 -b 4096 "${LOOP_DEV}" "$((ROOT_SIZE_BYTES / 4096))"
502 500
503 # Tune and mount rootfs. 501 # Tune and mount rootfs.
504 # TODO(wad) rename the disk label to match the GPT since we 502 DISK_LABEL="C-ROOT"
505 # can't change it later. 503 # Disable checking and minimize metadata differences across builds
506 DISK_LABEL="C-KEYFOB" 504 # and wasted reserved space.
507 sudo tune2fs -L "${DISK_LABEL}" -U "${UUID}" -c 0 -i 0 "${LOOP_DEV}" 505 sudo tune2fs -L "${DISK_LABEL}" \
506 -U clear \
507 -T 20091119110000 \
508 -c 0 \
509 -i 0 \
510 -m 0 \
gauravsh 2010/10/20 19:06:55 do you expect any performance effected from changi
Will Drewry 2010/10/20 19:11:49 I actually just wanted to make sure we use our fil
511 -r 0 \
512 -e remount-ro \
513 "${LOOP_DEV}"
514 # TODO(wad) call tune2fs prior to finalization to set the mount count to 0.
508 sudo mount "${LOOP_DEV}" "${ROOT_FS_DIR}" 515 sudo mount "${LOOP_DEV}" "${ROOT_FS_DIR}"
509 516
510 # Create stateful partition of the same size as the rootfs. 517 # Create stateful partition of the same size as the rootfs.
511 STATEFUL_LOOP_DEV=$(sudo losetup -f) 518 STATEFUL_LOOP_DEV=$(sudo losetup -f)
512 if [ -z "${STATEFUL_LOOP_DEV}" ] ; then 519 if [ -z "${STATEFUL_LOOP_DEV}" ] ; then
513 echo "No free loop device. Free up a loop device or reboot. exiting. " 520 echo "No free loop device. Free up a loop device or reboot. exiting. "
514 exit 1 521 exit 1
515 fi 522 fi
516 STATEFUL_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_statefulfs_size})) 523 STATEFUL_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_statefulfs_size}))
517 dd if=/dev/zero of="${STATEFUL_FS_IMG}" bs=1 count=1 \ 524 dd if=/dev/zero of="${STATEFUL_FS_IMG}" bs=1 count=1 \
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}" 760 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}"
754 fi 761 fi
755 762
756 print_time_elapsed 763 print_time_elapsed
757 764
758 echo "To copy to USB keyfob, do something like:" 765 echo "To copy to USB keyfob, do something like:"
759 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" 766 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX"
760 echo "To convert to VMWare image, INSIDE the chroot, do something like:" 767 echo "To convert to VMWare image, INSIDE the chroot, do something like:"
761 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}" 768 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}"
762 echo "from the scripts directory where you entered the chroot." 769 echo "from the scripts directory where you entered the chroot."
OLDNEW
« no previous file with comments | « bin/cros_make_image_bootable ('k') | common.sh » ('j') | common.sh » ('J')

Powered by Google App Engine
This is Rietveld 408576698