34 lines
691 B
Bash
Executable File
34 lines
691 B
Bash
Executable File
#!/bin/bash
|
|
# mounts a windows VHD in wsl
|
|
APP_DIR="$(dirname "$0")"
|
|
WINDOWS_MOUNT="$APP_DIR/windows-mount"
|
|
WSL_PATH="$APP_DIR/wsl-path"
|
|
WSL_INTEROP_READY="$APP_DIR/wsl-interop-ready"
|
|
SLEEP_INTERVAL=0.5
|
|
|
|
DRIVE="$1"
|
|
DISK_LABEL="$2"
|
|
DISK_PATH="/dev/disk/by-label/$DISK_LABEL"
|
|
|
|
if ! $WINDOWS_MOUNT >/dev/null; then
|
|
echo "Error: Windows not mounted" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! $WSL_INTEROP_READY; then
|
|
echo "Error: WSL Interop not ready" >&2
|
|
exit 1
|
|
fi
|
|
|
|
WSL="$($WSL_PATH)"
|
|
if ! [ -e "$DISK_PATH" ]; then
|
|
$WSL --mount --bare --vhd "$DRIVE"
|
|
|
|
# poll until the block device node appears or task times out
|
|
until [ -L "$DISK_PATH" ] && [ -b "$DISK_PATH" ]; do
|
|
sleep "$SLEEP_INTERVAL"
|
|
done
|
|
fi
|
|
|
|
exit 0
|