V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MasterCai
V2EX  ›  程序员

[请教] wsl2 物理挂载硬盘最佳实践

  •  
  •   MasterCai · 253 天前 · 1117 次点击
    这是一个创建于 253 天前的主题,其中的信息可能已经有所发展或是发生改变。

    wsl2 的空间快用完了,想加一块新的硬盘给 wsl2 用,不想通过网络方式访问。

    参考了微软的官方教程, 尝试了“装载未分区的磁盘”(删除分区后尝试的)和“装载分区磁盘”(新建简单卷后尝试的)都不成功,甚至一度把硬盘玩脱机了。 也看到了 csdn 上有一些其他方案,但是感觉不太靠谱没有尝试。

    想请教一下各位是怎么给 wsl2 挂载硬盘的呢,不通过 windows 这一层,直接挂载到 wsl2 上(整盘挂载就行),希望能分享一下。

    3 条回复    2023-08-19 07:31:30 +08:00
    ikas
        1
    ikas  
       253 天前   ❤️ 1
    找个磁盘工具直接格式化为 ext4,然后挂载就好了
    目前我就是挂了一个 ssd 用来编译 aosp

    找到你要的序号与分区
    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    挂载
    wsl --mount \\.\PHYSICALDRIVE1 -p 4
    Projection
        2
    Projection  
       253 天前   ❤️ 2
    看了一下文档,文档说的「未分区硬盘」和「分区硬盘」确实有一定误导性。


    「未分区硬盘」不是指分了区但分区数量为 0 的硬盘。「未分区硬盘」是说把文件系统直接部署上整个硬盘上,不进行分区。比如 Linux 命令 `mkfs.ext4 /dev/nvme0` 是把 ext4 文件系统直接建立在一个块设备上。
    「分区硬盘」是说需要提前对硬盘进行分区,使用 GPT 或 MBR 分区表的那种。「分区硬盘」确实就是字面意思,不过你新建的 NTFS 分区肯定是不好用的,后面代码说明了如何不使用其他工具来创建 ext4 分区。

    创建「分区硬盘」的操作方法是:

    # 👇 PowerShell 中执行
    Get-CimInstance -query "SELECT * from Win32_DiskDrive"
    # 一定要加 --bare 因为此时还没有 Linux 用的文件系统
    wsl --mount \\.\PHYSICALDRIVE3 --bare
    # 👇 WSL 中执行
    lsblk # 找到需要分区的块设备
    sudo fdisk /dev/sdd # 创建分区
    sudo mkfs.ext4 /dev/sdd1 # 创建文件系统
    # 👇 PowerShell 中执行
    wsl --unmount \\.\PHYSICALDRIVE3
    wsl --mount \\.\PHYSICALDRIVE3 -p 1
    # 👇 WSL 中执行
    cd /mnt/wsl/PHYSICALDRIVE3p1 # 开始你的操作

    以后挂载和卸载使用如下命令就可以了:
    wsl --mount \\.\PHYSICALDRIVE3 -p 1
    wsl --unmount \\.\PHYSICALDRIVE3
    MasterCai
        3
    MasterCai  
    OP
       253 天前
    @Projection 原来是这样,明白了。感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5711 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:38 · PVG 10:38 · LAX 19:38 · JFK 22:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.