vbox: support readonly overlay from disk
Add option to load the initial overlay*.vdi from disk, but keep the changes in a ram_fs. Used with AHCI model for vbox_auto_win7. Currently we have no way to tell rump_fs to unmount and write back data to disk before resetting the machine.
This commit is contained in:
parent
6726e6d7fe
commit
a876e655c0
|
@ -4,8 +4,10 @@
|
||||||
|
|
||||||
set flavor "win7"
|
set flavor "win7"
|
||||||
|
|
||||||
# Write overlay back to harddisk if set to 0
|
# Write overlay only into ram
|
||||||
set use_ram_fs 0
|
set use_ram_fs 1
|
||||||
|
# However read initial overlay from disk
|
||||||
|
set use_overlay_from_disk 1
|
||||||
|
|
||||||
set use_usb 1
|
set use_usb 1
|
||||||
set use_ps2 [have_spec ps2]
|
set use_ps2 [have_spec ps2]
|
||||||
|
|
|
@ -72,6 +72,7 @@ set flavor "win7"
|
||||||
set vdi_image "${flavor}.vdi"
|
set vdi_image "${flavor}.vdi"
|
||||||
# Write overlay back to harddisk if set to 0
|
# Write overlay back to harddisk if set to 0
|
||||||
set use_ram_fs 0
|
set use_ram_fs 0
|
||||||
|
set use_overlay_from_disk 0
|
||||||
set overlay_image "overlay_${flavor}.vdi"
|
set overlay_image "overlay_${flavor}.vdi"
|
||||||
|
|
||||||
set use_usb 0
|
set use_usb 0
|
||||||
|
|
|
@ -8,6 +8,7 @@ set flavor "win8"
|
||||||
|
|
||||||
# Write overlay back to harddisk if set to 0
|
# Write overlay back to harddisk if set to 0
|
||||||
set use_ram_fs 0
|
set use_ram_fs 0
|
||||||
|
set use_overlay_from_disk 0
|
||||||
|
|
||||||
set use_usb 1
|
set use_usb 1
|
||||||
set use_ps2 [have_spec ps2]
|
set use_ps2 [have_spec ps2]
|
||||||
|
|
|
@ -8,6 +8,7 @@ set flavor "win81_64"
|
||||||
|
|
||||||
# Write overlay back to harddisk if set to 0
|
# Write overlay back to harddisk if set to 0
|
||||||
set use_ram_fs 0
|
set use_ram_fs 0
|
||||||
|
set use_overlay_from_disk 0
|
||||||
|
|
||||||
set use_usb 1
|
set use_usb 1
|
||||||
set use_ps2 [have_spec ps2]
|
set use_ps2 [have_spec ps2]
|
||||||
|
|
|
@ -83,7 +83,12 @@ append config {
|
||||||
<start name="rump_fs" priority="-1">
|
<start name="rump_fs" priority="-1">
|
||||||
<resource name="RAM" quantum="32M"/>
|
<resource name="RAM" quantum="32M"/>
|
||||||
<provides><service name="File_system"/></provides>
|
<provides><service name="File_system"/></provides>
|
||||||
<config fs="ext2fs"> <default-policy root="/" writeable="yes"/> </config>
|
<config fs="ext2fs">}
|
||||||
|
append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
|
||||||
|
<policy label="overlay_from_disk" root="/ram" writeable="yes"/>}
|
||||||
|
append config {
|
||||||
|
<default-policy root="/" writeable="yes"/>
|
||||||
|
</config>
|
||||||
<route>
|
<route>
|
||||||
<any-service><child name="part_blk"/> <parent/><any-child/></any-service>
|
<any-service><child name="part_blk"/> <parent/><any-child/></any-service>
|
||||||
</route>
|
</route>
|
||||||
|
@ -103,6 +108,24 @@ append_if [expr $use_ram_fs] config {
|
||||||
<!-- constrain sessions according to their labels -->
|
<!-- constrain sessions according to their labels -->
|
||||||
<policy label="vbox -> from_ram_fs" root="/ram" writeable="yes"/>
|
<policy label="vbox -> from_ram_fs" root="/ram" writeable="yes"/>
|
||||||
</config>
|
</config>
|
||||||
|
<route>}
|
||||||
|
append_if [expr $use_ram_fs && $use_overlay_from_disk] config "<service name=\"ROM\" label=\"${overlay_image}\">"
|
||||||
|
append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
|
||||||
|
<child name="overlay_from_disk"/></service>}
|
||||||
|
append_if [expr $use_ram_fs] config {
|
||||||
|
<any-service> <parent/> <any-child/></any-service>
|
||||||
|
</route>
|
||||||
|
</start>}
|
||||||
|
|
||||||
|
append_if [expr $use_ram_fs && $use_overlay_from_disk] config {
|
||||||
|
<start name="overlay_from_disk" priority="-1">
|
||||||
|
<binary name="fs_rom"/>
|
||||||
|
<resource name="RAM" quantum="256M"/>
|
||||||
|
<provides><service name="ROM"/></provides>
|
||||||
|
<route>
|
||||||
|
<service name="File_system"><child name="rump_fs"/></service>
|
||||||
|
<any-service><parent/><any-child/></any-service>
|
||||||
|
</route>
|
||||||
</start>}
|
</start>}
|
||||||
|
|
||||||
append_platform_drv_config
|
append_platform_drv_config
|
||||||
|
@ -251,7 +274,7 @@ append boot_modules {
|
||||||
}
|
}
|
||||||
|
|
||||||
lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs
|
lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs
|
||||||
lappend_if [expr $use_ram_fs] boot_modules ${overlay_image}
|
lappend_if [expr $use_ram_fs && !$use_overlay_from_disk] boot_modules ${overlay_image}
|
||||||
|
|
||||||
# platform-specific modules
|
# platform-specific modules
|
||||||
lappend_if [expr $use_ps2] boot_modules ps2_drv
|
lappend_if [expr $use_ps2] boot_modules ps2_drv
|
||||||
|
|
Loading…
Reference in New Issue
Block a user