diff options
author | Iliyan Malchev <malchev@google.com> | 2012-04-05 13:49:45 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2012-04-05 17:54:44 -0700 |
commit | e05d6d16852cbf8b568d2f42000702c7f0e4ffab (patch) | |
tree | aa24eb9810b5058fb5278e127f850fa07677ef1c | |
parent | f4190db208d376fc6dbf3cf2e3506d00eb27e24e (diff) | |
download | diskinstaller-e05d6d16852cbf8b568d2f42000702c7f0e4ffab.tar.gz |
vbox_x86: have separate system and data disks
The boot, recovery, and system partitions are now mounted from /dev/sda, while
userdata and cache are mounted from /dev/sdb. To this end, we have two new
build targets, in addition to android_disk_vdi:
make android_system_disk_vdi will build /dev/sda
make android_user_disk_vdi will build /dev/sdb
android_disk_vdi will build both disks.
Change-Id: I7389194429d42eca4800c5bb41d32099b7eeafa1
Signed-off-by: Iliyan Malchev <malchev@google.com>
-rw-r--r-- | CleanSpec.mk | 2 | ||||
-rw-r--r-- | android_img_data_layout.conf (renamed from android_img_layout.conf) | 8 | ||||
-rw-r--r-- | android_img_system_layout.conf | 50 | ||||
-rw-r--r-- | config.mk | 91 |
4 files changed, 113 insertions, 38 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index b84e1b6..27ccfc2 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -44,6 +44,8 @@ #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/android_disk.*) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/android_img_layout.conf b/android_img_data_layout.conf index 0b81d83..a02d374 100644 --- a/android_img_layout.conf +++ b/android_img_data_layout.conf @@ -28,9 +28,10 @@ device { } # /dev/sdX3 - inst_boot { + boot { active y type linux + len 8064 } # /dev/sdX4 @@ -43,11 +44,6 @@ device { } # /dev/sdX6 - inst_system { - type linux - } - - # /dev/sdX7 inst_data { type linux } diff --git a/android_img_system_layout.conf b/android_img_system_layout.conf new file mode 100644 index 0000000..4030a60 --- /dev/null +++ b/android_img_system_layout.conf @@ -0,0 +1,50 @@ +device { + scheme mbr + + # bytes in a disk "block", must be a power of 2! + sector_size 512 + + # What LBA should the partitions start at? + start_lba 2048 + + # Autodetect disk size if == 0 + num_lba 800000 + + partitions { + # /dev/sdX1 + sysloader { + active y + type linux + # 8 cyls in length... about 8M + len 8064 + } + + # /dev/sdX2 + recovery { + active y + type linux + # 8 cyls in length... about 8M + len 8064 + } + + # /dev/sdX3 + inst_boot { + active y + type linux + } + + # /dev/sdX4 + # (extended partion begins) + + # /dev/sdX5 + third_party { + type linux + len 8064 + } + + # /dev/sdX6 + inst_system { + type linux + } + } +} @@ -179,8 +179,8 @@ grub_bin := $(PRODUCT_OUT)/grub/grub.bin installer_layout := $(diskinstaller_root)/installer_img_layout.conf edit_mbr := $(HOST_OUT_EXECUTABLES)/editdisklbl -INSTALLED_DISKINSTALLERIMAGE_TARGET := $(PRODUCT_OUT)/installer.img -$(INSTALLED_DISKINSTALLERIMAGE_TARGET): \ +INSTALLED_DISK_INSTALLER_IMAGE_TARGET := $(PRODUCT_OUT)/installer.img +$(INSTALLED_DISK_INSTALLER_IMAGE_TARGET): \ $(installer_tmp_img) \ $(installer_data_img) \ $(grub_bin) \ @@ -194,61 +194,88 @@ $(INSTALLED_DISKINSTALLERIMAGE_TARGET): \ inst_data=$(installer_data_img) @echo "Done with bootable installer image -[ $@ ]-" -# Ditto for the android_disk image -INSTALLED_ANDROIDIMAGE_TARGET := $(PRODUCT_OUT)/android_disk.img -android_layout := $(diskinstaller_root)/android_img_layout.conf -$(INSTALLED_ANDROIDIMAGE_TARGET): \ +# +# Ditto for the android_system_disk and android_data_disk images +# + +INSTALLED_ANDROID_IMAGE_SYSTEM_TARGET := $(PRODUCT_OUT)/android_system_disk.img +android_system_layout := $(diskinstaller_root)/android_img_system_layout.conf + +INSTALLED_ANDROID_IMAGE_DATA_TARGET := $(PRODUCT_OUT)/android_data_disk.img +android_data_layout := $(diskinstaller_root)/android_img_data_layout.conf + +$(INSTALLED_ANDROID_IMAGE_SYSTEM_TARGET): \ $(INSTALLED_SYSTEMIMAGE) \ - $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_BOOTIMAGE_TARGET) \ $(grub_bin) \ $(edit_mbr) \ - $(android_layout) - @echo "Creating bootable android disk image: $@" + $(android_system_layout) + @echo "Creating bootable android system-disk image: $@" @rm -f $@ $(hide) cat $(grub_bin) > $@ - $(hide) $(edit_mbr) -l $(android_layout) -i $@ \ + $(hide) $(edit_mbr) -l $(android_system_layout) -i $@ \ inst_boot=$(INSTALLED_BOOTIMAGE_TARGET) \ - inst_system=$(INSTALLED_SYSTEMIMAGE) \ + inst_system=$(INSTALLED_SYSTEMIMAGE) + @echo "Done with bootable android system-disk image -[ $@ ]-" + +$(INSTALLED_ANDROID_IMAGE_DATA_TARGET): \ + $(INSTALLED_USERDATAIMAGE_TARGET) \ + $(grub_bin) \ + $(edit_mbr) \ + $(android_data_layout) + @echo "Creating bootable android data-disk image: $@" + @rm -f $@ + $(hide) cat $(grub_bin) > $@ + $(hide) $(edit_mbr) -l $(android_data_layout) -i $@ \ inst_data=$(INSTALLED_USERDATAIMAGE_TARGET) - @echo "Done with bootable android disk image -[ $@ ]-" + @echo "Done with bootable android data-disk image -[ $@ ]-" + ###################################################################### # now convert the installer_img (disk image) to a VirtualBox image -INSTALLED_VBOXINSTALLERIMAGE_TARGET := $(PRODUCT_OUT)/installer.vdi +INSTALLED_VBOX_INSTALLER_IMAGE_TARGET := $(PRODUCT_OUT)/installer.vdi virtual_box_manager := VBoxManage -virtual_box_manager_options := convertfromraw +# hrd-code the UUID so we don't have to release the disk manually in the VirtualBox manager. +virtual_box_manager_options := convertfromraw --format VDI -$(INSTALLED_VBOXINSTALLERIMAGE_TARGET): $(INSTALLED_DISKINSTALLERIMAGE_TARGET) - @rm -f $(INSTALLED_VBOXINSTALLERIMAGE_TARGET) - $(hide) $(virtual_box_manager) $(virtual_box_manager_options) $(INSTALLED_DISKINSTALLERIMAGE_TARGET) $(INSTALLED_VBOXINSTALLERIMAGE_TARGET) +$(INSTALLED_VBOX_INSTALLER_IMAGE_TARGET): $(INSTALLED_DISK_INSTALLER_IMAGE_TARGET) + @rm -f $(INSTALLED_VBOX_INSTALLER_IMAGE_TARGET) + $(hide) $(virtual_box_manager) $(virtual_box_manager_options) $(INSTALLED_DISK_INSTALLER_IMAGE_TARGET) $(INSTALLED_VBOX_INSTALLER_IMAGE_TARGET) @echo "Done with VirtualBox bootable installer image -[ $@ ]-" -# Ditto for the android_disk image -INSTALLED_VBOXDISKIMAGE_TARGET := $(PRODUCT_OUT)/android_disk.vdi -$(INSTALLED_VBOXDISKIMAGE_TARGET): $(INSTALLED_ANDROIDIMAGE_TARGET) - @rm -f $(INSTALLED_VBOXDISKIMAGE_TARGET) - $(hide) $(virtual_box_manager) $(virtual_box_manager_options) $(INSTALLED_ANDROIDIMAGE_TARGET) $(INSTALLED_VBOXDISKIMAGE_TARGET) - @echo "Done with VirtualBox bootable disk image -[ $@ ]-" +# +# Ditto for the android_system_disk and android_user_disk images +# +INSTALLED_VBOX_SYSTEM_DISK_IMAGE_TARGET := $(PRODUCT_OUT)/android_system_disk.vdi +$(INSTALLED_VBOX_SYSTEM_DISK_IMAGE_TARGET): $(INSTALLED_ANDROID_IMAGE_SYSTEM_TARGET) + @rm -f $@ + $(hide) $(virtual_box_manager) $(virtual_box_manager_options) $^ $@ + @echo "Done with VirtualBox bootable system-disk image -[ $@ ]-" + +INSTALLED_VBOX_DATA_DISK_IMAGE_TARGET := $(PRODUCT_OUT)/android_data_disk.vdi +$(INSTALLED_VBOX_DATA_DISK_IMAGE_TARGET): $(INSTALLED_ANDROID_IMAGE_DATA_TARGET) + @rm -f $@ + $(hide) $(virtual_box_manager) $(virtual_box_manager_options) $^ $@ + @echo "Done with VirtualBox bootable data-disk image -[ $@ ]-" .PHONY: installer_img -installer_img: $(INSTALLED_DISKINSTALLERIMAGE_TARGET) +installer_img: $(INSTALLED_DISK_INSTALLER_IMAGE_TARGET) .PHONY: installer_vdi -installer_vdi: $(INSTALLED_VBOXINSTALLERIMAGE_TARGET) - -.PHONY: android_disk_img -android_disk_img: $(INSTALLED_ANDROIDIMAGE_TARGET) +installer_vdi: $(INSTALLED_VBOX_INSTALLER_IMAGE_TARGET) -.PHONY: android_disk_vdi -android_disk_vdi: $(INSTALLED_VBOXDISKIMAGE_TARGET) +.PHONY: android_disk_vdi android_system_disk_vdi android_data_disk_vdi +android_system_disk_vdi: $(INSTALLED_VBOX_SYSTEM_DISK_IMAGE_TARGET) +android_data_disk_vdi: $(INSTALLED_VBOX_DATA_DISK_IMAGE_TARGET) +android_disk_vdi: android_system_disk_vdi android_data_disk_vdi else # ! TARGET_USE_DISKINSTALLER -INSTALLED_DISKINSTALLERIMAGE_TARGET := -INSTALLED_VBOXINSTALLERIMAGE_TARGET := +INSTALLED_DISK_INSTALLER_IMAGE_TARGET := +INSTALLED_VBOX_SYSTEM_DISK_IMAGE_TARGET := +INSTALLED_VBOX_DATA_DISK_IMAGE_TARGET := endif endif # TARGET_ARCH == x86 |