[Windows]让Windows虚拟机可以读取U盘数据(手动版)

本教程讲指导您如何让Olares的Windows虚拟机可以读取您U盘/移动硬盘上的内容

前置条件

  1. 您的Olares OS系统需要在1.11.5版本以上
  2. U盘已插入Olares主机,并能被正确识别出来

1. 检查USB是否被正常识别

  • 插入U盘后,打开Files > External 文件夹,能够看到新增一个USB的文件夹。此时说明U盘已被系统识别到了。下一步需要将其挂载到Windows虚拟机中。

2. 查看usb设备信息

  • 打开控制面板,选择 Olares 终端,输入以下命令查看USB设备信息

     lsusb
    

  • 找到设备的ID信息。例如在本例中,U盘的ID为1aa6:0201。记录这个信息,一会需要用

3. 修改windows虚拟机的yaml,挂载这个U盘

注意
修改Yaml后会重启windows虚拟机,请先保存您在Windows虚拟机上的工作再挂载U盘。
Windows挂载U盘后,Files中就无法再看到这个U盘文件了。

  • 打开控制面板,进入浏览,找到Windows虚拟机的应用,点击右上角的 编辑YAML 按钮

  • 在YAML中添加以下内容,其中

    • vendorid 是步骤2中的设备ID的前半部分。在ID前添加0x就是verdorid的参数,本例中vendorid=0x1aa6

    • productid 是步骤2中的设备ID的后半部分。在ID前添加0x就是productid的参数,本例中productid=0x0201

注意
请确保高亮内容与示例代码的字段填写位置和一致,并注意字段缩进是否正确。

spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: windows
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.bytetrade.app: "true"
        name: windows
    spec:
      containers:
      - env:
        - name: VERSION
          value: https://cdn.joinolares.cn/iso/Win11_24H2_English_x64.iso
        - name: RAM_SIZE
          value: 4G
        - name: CPU_CORES
          value: "4"
        - name: DISK_SIZE
          value: 128G
        - name: USERNAME
          value: olares
        - name: PASSWORD
          value: olares
        - name: GPU
          value: "Y"
        - name: ARGUMENTS # 请添加此内容
          value: -device usb-host,vendorid=0x1aa6,productid=0x0201 # 请添加此内容
        image: bytetrade/windows:4.09
        imagePullPolicy: IfNotPresent
        name: windows
        ports:
        - containerPort: 8006
          protocol: TCP
        - containerPort: 3389
          protocol: TCP
        - containerPort: 3389
          protocol: UDP
        volumeMounts:
        - mountPath: /storage
          name: storage
        - mountPath: /dev/kvm
          name: dev-kvm
        - mountPath: /dev/net/tun
          name: dev-tun
        - mountPath: /dev/dri
          name: dev-dri
        - mountPath: /dev/bus/usb  # 请添加此内容
          name: dev-usb  # 请添加此内容
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 300
      volumes:
      - hostPath:
          path: /dev/kvm
          type: ""
        name: dev-kvm
      - hostPath:
          path: /dev/net/tun
          type: CharDevice
        name: dev-tun
      - hostPath:
          path: /dev/dri
          type: ""
        name: dev-dri
      - hostPath:  # 请添加此内容
          path: /dev/bus/usb  # 请添加此内容
          type: ""  # 请添加此内容
        name: dev-usb  # 请添加此内容
  • 保存更改,系统会自动重启Windows虚拟机的容器

您可以点击修改记录查看重启后的Windows虚拟机是否已应用了更改后的YAML内容


4. 查看usb设备

打开windows虚拟机,进入此电脑,可以看到U盘已成功被识别到了。

5. 推出U盘

您只需在Windows虚拟机中点击弹出,就可以推出U盘,安全的将其从主机上拔下了


己知问题

  1. 推出U盘后重新插入U盘,需要重启windows对应的pod才能识别

  2. 如果有多个相同厂商ID,产品ID的USB设备,只能识别一个