本文内容
假如要访问Windows不支持的Linuxc盘格式,可以使用WSL2装载c盘并访问其内容。本教程将介绍标示要附加到WSL2的c盘和分区的步骤、如何装载它们以及怎样对其进行访问。
假如要联接外部驱动器,但无法成功使用这种安装说明linux运维博客,则可能须要尝试联接USB设备的说明。命令wsl--mount当前不支持USB/闪存驱动器/SD卡读取器,()了解有关此问题的详尽信息。
注意
将c盘附加到WSL2须要管理员访问权限。WSL2mount命令不支持装载当前正在使用的c盘(或属于该c盘的分区)。虽然只恳求一个分区,wsl--mount也一直会附加整个c盘。未能装载Windows安装c盘。
先决条件
你须要Windows11版本22000或更高版本,或则运行WSL的MicrosoftStore版本。若要检测WSL和Windows版本,请使用命令:wsl.exe--version
使用Windows格式和Linux格式装载外部驱动器之间的差别
为Windows设置格式的外部驱动器一般使用NTFS文件系统格式设置。为Linux低格的外部驱动器一般使用Ext4文件系统格式设置。
假如已在Windows文件系统上装载了NTFS格式的驱动器,则可以使用WSL从Linux分发版访问该驱动器,技巧是创建装载的目录(sudomkdir/mnt/d,将“d”替换为要使用的任何驱动器号)之后使用drfs文件系统互操作插件,并使用命令:
sudo mount -t drvfs D: /mnt/d
详尽了解装载方案。
假如你有Ext4格式的驱动器,则不能将其装载到Windows文件系统上。若要使用WSL在Linux分发版上装载Ext4格式的驱动器,可以根据以下说明使用wsl--mount命令。
装载未分区的c盘
假如c盘没有任何分区,则可以使用wsl--mount命令直接装载它。首先须要标示c盘。
标示c盘-要列举Windows中的可用c盘,请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
c盘路径坐落“DeviceID”列下。一般采用\.PHYSICALDRIVE*格式。
装载c盘-使用PowerShell,可以使用前面发觉的c盘路径装载c盘linux 系统格式,请运行:
wsl --mount
装载分区c盘
假如不确定c盘的文件格式或其中的分区,可以根据以下步骤进行装载。
标示c盘-要列举Windows中的可用c盘,请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
c盘路径列在“DeviceID”之后,一般采用\.PHYSICALDRIVE*格式。
列举并选择要在WSL2中装载的分区-确定c盘后,运行:
wsl --mount --bare
这将使c盘在WSL2中可用。(在我们的示例中,为\.PHYSICALDRIVE*。
附加后,可以通过在WSL2中运行以下命令来列举分区:
lsblk
这会显示可用的块设备及其分区。
在Linux中,块设备被标示为/dev/
。诸如,/dev/sdb3是c盘sdb的分区号3。
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 1G 0 disk
├─sdb2 8:18 0 50M 0 part
├─sdb3 8:19 0 873M 0 part
└─sdb1 8:17 0 100M 0 part
sdc 8:32 0 256G 0 disk /
sda 8:0 0 256G 0 disk
标示文件系统类型
假如不晓得c盘或分区的文件系统类型,可以使用以下命令:
blkid
这将输出检查到的文件系统类型(采用TYPE=""格式)。
装载所选分区
确定要装载的分区后,请在每位分区上运行以下命令:
wsl --mount --partition --type
注意
假如希望将整个c盘装载为单个卷(即假如c盘未分区),则可以省略--partition。
假如省略,则默认文件系统类型为“ext4”。
访问c盘内容
装载后,可以通过配置值指向的路径访问c盘:automount.root。默认值为/mnt/wsl。
在Windows中,可以通过导航到以下位置从文件资源管理器访问c盘:\wsl$\\(选择任何Linux发行版)。
卸载c盘
假如要从WSL2卸载和分离c盘,请运行:
wsl --unmount
在WSL中装载VHD
注意
MicrosoftStore中的WSL引入了直接装载VHD的新参数:wsl--mount--vhd
还可以使用wsl--mount将虚拟硬碟文件(VHD)装载到WSL。因此,首先须要使用Windows中的Mount-VHD命令将VHD装载到Windows中。请确保以管理员权限运行此命令。下边是一个示例,我们使用此命令并输出c盘路径。请勿必将
替换为实际VHD路径。
Write-Output "\.PhysicalDrive$((Mount-VHD -Path -PassThru | Get-Disk).Number)"
可以使用前面的输出获取此VHD的c盘路径,之后根据上一部份中的说明将其装载到WSL中。
还可以使用此技术装载其他WSL发行版的虚拟硬碟并与之交互,由于每位WSL2发行版都通过名为ext4.vhdx的虚拟硬碟文件进行储存。默认情况下,WSL2发行版的VHD储存在以下路径中:C:Users[user]AppDataLocalPackages[distro]LocalState[distroPackageName],请慎重访问那些系统文件,这是一个中级用户工作流。确保在与该c盘交互之前运行wsl--shutdown以确保该c盘未被使用。
命令行参考装载特定文件系统
默认情况下,WSL2将尝试将设备装载为ext4。若要指定其他文件系统,请运行:
wsl --mount -t
比如,若要以fat方式装载c盘,请运行:
wsl --mount -t vfat
注意
若要列举WSL2中的可用文件系统,请运行:cat/proc/filesystems
假如c盘已通过WSL2(Linux文件系统)进行装载,则难以再通过Windows文件系统上的ext4驱动程序进行装载。
装载特定的分区
默认情况下,WSL2将尝试装载整个c盘。若要装载特定分区,请运行:
wsl --mount -p
仅当c盘是MBR(主启动记录)或GPT(GUID分区表)时,此操作才有效。。
指定装载选项
若要指定装载选项redhat linux 下载,请运行:
wsl --mount -o
示例:
wsl --mount -o "data=ordered"
注意
目前仅支持特定于文件系统的选项。不支持例如ro,rw,noatime,...之类的通用选项。
附加c盘而不装载它
假如上述任何选项都不支持c盘方案,则可以通过运行以下内容将c盘附加到WSL2而不对其进行装载:
wsl --mount --bare
这将使块设备在WSL2内可用,便于可以从哪里自动装载。使用lsblk列举WSL2中可用的块设备。
指定装载名称
注意
此选项仅适用于MicrosoftStore中的WSL
默认情况下,放入点名称是按照化学c盘或VHD名称生成的。这可以用--name覆盖。示例:
wsl --mount --name myDisk
分离c盘
若要从WSL2分离c盘,请运行:
wsl --unmount [DiskPath]
假如省略Diskpath,则将卸载和分离所有附加的c盘。
注意
假如未能卸载某个c盘,可以通过运行wsl--shutdown强制退出WSL2linux 系统格式,这将分离c盘。
限制