2

I'm using WSL2 with Ubuntu 20.04 on Windows 10. I have a disk that is not automatically connected to the WSL2 on its startup. The letter under which the disk is registered on Windows can change, I only know the name of the volume. I've written a bash script to find the disk letter and then mount it on the WSL2

#!/bin/bash

BACKUP_FOLDER=/mnt/autobackup
mkdir -p $BACKUP_FOLDER
VOLUME_LETTER="$(powershell.exe -Command '(Get-Volume -FriendlyName AUTOBACKUP | Select-Object -Index 0).DriveLetter' | awk -v RS='\r\n' '{ print $0 }')"
VOLUME_LETTER=$(echo "${VOLUME_LETTER}:\\")
sudo mount -t drvfs $(echo $VOLUME_LETTER) $(echo $BACKUP_FOLDER)

The script works fine when I run it as a normal user, asking me for my password. However, it raises an error when trying to run it as root (which is what I want because I want to put the script into /etc/init.d to run at startup)

./wsl_startup.sh: line 5: powershell.exe: command not found
mount: /mnt/autobackup: special device :\ does not exist.
<3>init: (1058) ERROR: UtilCreateProcessAndWait:501: /bin/mount failed with status 0x2000
<3>init: (1058) ERROR: MountPlan9:493: mount cache=mmap,rw,trans=fd,rfdno=3,wfdno=3,msize=65536,aname=drvfs;path=:\;symlinkroot=/mnt/ failed 2
No such file or directory

How to make root see the powershell.exe command? Or should I do it another way?

1 Answer 1

3

When running as root, $PATH contains only a minimal set of entries that doesn't include Windows file-system directories such as the one where powershell.exe is located.

Thus, you'll have to invoke powershell.exe by its full path:

VOLUME_LETTER="$(/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe -Command '(Get-Volume -FriendlyName AUTOBACKUP | Select-Object -Index 0).DriveLetter' | awk -v RS='\r\n' '{ print $0 }')"
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.