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

Side by Side Diff: build_image

Issue 5704004: Zero free space on rootfs so it's more compressible for auto-update (Closed) Base URL: http://git.chromium.org/git/crosutils.git@master
Patch Set: Address code review feedbacks Created 10 years 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 # Clean out unused packages 496 # Clean out unused packages
497 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ 497 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \
498 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ 498 --root="${ROOT_FS_DIR}" --root-deps=rdeps \
499 --usepkgonly --depclean ${EMERGE_JOBS} 499 --usepkgonly --depclean ${EMERGE_JOBS}
500 500
501 trap - EXIT 501 trap - EXIT
502 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \ 502 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \
503 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" 503 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}"
504 } 504 }
505 505
506 zero_free_space() {
507 local fs_mount_point=$1
508 info "Zeroing freespace in ${fs_mount_point}"
509 sudo dd if=/dev/zero of="${fs_mount_point}/filler" oflag=sync bs=4096 || true
510 sudo rm -f "${fs_mount_point}/filler"
511 sudo sync
512 }
513
506 create_base_image() { 514 create_base_image() {
507 local image_name=$1 515 local image_name=$1
508 516
509 trap "cleanup && delete_prompt" EXIT 517 trap "cleanup && delete_prompt" EXIT
510 518
511 # Create and format the root file system. 519 # Create and format the root file system.
512 520
513 # Check for loop device before creating image. 521 # Check for loop device before creating image.
514 LOOP_DEV=$(sudo losetup -f) 522 LOOP_DEV=$(sudo losetup -f)
515 if [ -z "${LOOP_DEV}" ] ; then 523 if [ -z "${LOOP_DEV}" ] ; then
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 setup_symlinks_on_root "/usr/local" "/var" "${STATEFUL_FS_DIR}" 684 setup_symlinks_on_root "/usr/local" "/var" "${STATEFUL_FS_DIR}"
677 685
678 # cros_make_image_bootable will clobber vmlinuz.image for x86. 686 # cros_make_image_bootable will clobber vmlinuz.image for x86.
679 # Until then, just copy the kernel to vmlinuz.image. It is 687 # Until then, just copy the kernel to vmlinuz.image. It is
680 # expected in build_gpt.sh. 688 # expected in build_gpt.sh.
681 cp "${ROOT_FS_DIR}/boot/vmlinuz" "${OUTPUT_DIR}/vmlinuz.image" 689 cp "${ROOT_FS_DIR}/boot/vmlinuz" "${OUTPUT_DIR}/vmlinuz.image"
682 690
683 # Create an empty esp image to be updated in by update_bootloaders.sh. 691 # Create an empty esp image to be updated in by update_bootloaders.sh.
684 ${SCRIPTS_DIR}/create_esp.sh --to="${ESP_FS_IMG}" 692 ${SCRIPTS_DIR}/create_esp.sh --to="${ESP_FS_IMG}"
685 693
694 # Zero rootfs free space to make it more compressible so auto-update
695 # payloads become smaller
696 zero_free_space "${ROOT_FS_DIR}"
697
686 cleanup 698 cleanup
687 699
688 trap delete_prompt EXIT 700 trap delete_prompt EXIT
689 701
690 # Create the GPT-formatted image. 702 # Create the GPT-formatted image.
691 ${SCRIPTS_DIR}/build_gpt.sh \ 703 ${SCRIPTS_DIR}/build_gpt.sh \
692 --arch=${ARCH} \ 704 --arch=${ARCH} \
693 --board=${FLAGS_board} \ 705 --board=${FLAGS_board} \
694 --rootfs_partition_size=${FLAGS_rootfs_partition_size} \ 706 --rootfs_partition_size=${FLAGS_rootfs_partition_size} \
695 "${OUTPUT_DIR}" \ 707 "${OUTPUT_DIR}" \
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}" 814 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}"
803 fi 815 fi
804 816
805 print_time_elapsed 817 print_time_elapsed
806 818
807 echo "To copy to USB keyfob, do something like:" 819 echo "To copy to USB keyfob, do something like:"
808 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" 820 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX"
809 echo "To convert to VMWare image, INSIDE the chroot, do something like:" 821 echo "To convert to VMWare image, INSIDE the chroot, do something like:"
810 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}" 822 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}"
811 echo "from the scripts directory where you entered the chroot." 823 echo "from the scripts directory where you entered the chroot."
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698