Skip to content

Instantly share code, notes, and snippets.

@timsu92
Created December 21, 2023 02:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timsu92/ddd8558f4d2de0228b8fd7f5109341b3 to your computer and use it in GitHub Desktop.
Save timsu92/ddd8558f4d2de0228b8fd7f5109341b3 to your computer and use it in GitHub Desktop.
手動掛載磁碟區進WSL
#!/bin/bash
# 檢查是否有參數並處理 --help 選項
if [ $# -ne 1 ]; then
echo "參數數量不正確,請使用 --help 參數獲得說明。"
exit 1
elif [ "$1" == "--help" ]; then
echo "使用說明: $0 <drive_letter>"
echo " <drive_letter>: 單個字母參數 (a 到 z 或 A 到 Z)"
exit 0
fi
# 檢查參數是否為一個字母 (a 到 z 或 A 到 Z)
if [[ ! "$1" =~ ^[a-zA-Z]$ ]]; then
echo "參數必須為一個字母 (a 到 z 或 A 到 Z)。請使用 --help 參數獲得說明。"
exit 1
fi
# 轉換輸入字母參數為小寫
drive_letter=$(echo "$1" | tr '[:upper:]' '[:lower:]')
# 檢查/mnt/<drive_letter>是否存在
if [ -f "/mnt/$drive_letter" ]; then
sudo rm "/mnt/$drive_letter"
sudo mkdir "/mnt/$drive_letter"
elif [ -d "/mnt/$drive_letter" ]; then
# 檢查是否該資料夾已存在並且被掛載
if mountpoint -q "/mnt/$drive_letter"; then
echo "資料夾 /mnt/$drive_letter 已被掛載到以下裝置:"
mount | grep "/mnt/$drive_letter"
exit 1
fi
else
# 資料夾不存在,創建它
sudo mkdir "/mnt/$drive_letter"
fi
# 嘗試掛載裝置
if sudo mount -t drvfs "$drive_letter": "/mnt/$drive_letter" -o rw,noatime,dirsync,uid=$(id -u $USER),gid=$(id -g $USER),mmap,access=client,msize=262144,trans=virtio,metadata; then
echo "裝置 $drive_letter 成功掛載到 /mnt/$drive_letter。"
else
echo "無法掛載裝置 $drive_letter 到 /mnt/$drive_letter。"
exit 1
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment