| #!/bin/bash |
| # Copyright 2023 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Example VM with a shared directory |
| |
| set -e |
| |
| SRC=$(realpath "$(dirname "${BASH_SOURCE[0]}")") |
| #If "example_simple" is executed, reuse its image. Otherwise, create one. |
| mkdir -p "$SRC/images/simple" && cd "$_" |
| mkdir -p "host_shared_dir" |
| HOST_SHARED_DIR="$SRC/images/simple/host_shared_dir" |
| |
| if ! [ -f rootfs ]; then |
| # Build a simple ubuntu image and create a user with no password. |
| virt-builder ubuntu-20.04 \ |
| --run-command "useradd -m -g sudo -p '' $USER ; chage -d 0 $USER" \ |
| -o ./rootfs |
| |
| virt-builder --get-kernel ./rootfs -o . |
| fi |
| |
| # Use crosvm/tools/examples/images/simple/host_shared_dir as mount point |
| cargo run -- run \ |
| --shared-dir "$HOST_SHARED_DIR:my_shared_tag:type=fs" \ |
| --rwdisk ./rootfs \ |
| --initrd ./initrd.img-* \ |
| -p "root=/dev/vda5 " \ |
| ./vmlinuz-* |
| |
| ## In guest OS, run following instructions to set up the shared directory |
| ## sudo su |
| ## mkdir /tmp/guest_shared_dir |
| ## mount -t virtiofs my_shared_tag /tmp/guest_shared_dir |