如何修改 USB 记忆棒以使设备节点为 /dev/sda1 而不是 /dev/sda?

如何修改 USB 记忆棒以使设备节点为 /dev/sda1 而不是 /dev/sda?

我有一个针对 fat32 格式的 USB 记忆棒的 udev 规则。该规则包含以下属性:

SUBSYSTEM=="block", KERNEL=="sd?1", ...

通常,它对于我到目前为止测试过的 USB 记忆棒效果很好,因为大多数 USB 记忆棒在设备节点中表示为/dev/sda1/dev/sdb1

现在,我有一个特殊的 USB,其设备节点为/dev/sda.该 USB 记忆棒的命令blkid返回如下输出:

/dev/sda: UUID="AC9E-6C58" TYPE="vfat"

与普通的(/dev/sda1)相比,我错过了这个PARTUUID属性。

此外,该命令sfdisk -l /dev/sda返回以下输出:

Disk /dev/sda: 1021 cylinders, 247 heads, 62 sectors/track
Units: cylinders of 7840768 bytes, blocks of 1024 bytes, counting from 0
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0       -       0          0    0  Empty
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

该 USB/dev/sda1行中有 0。然而,普通的U盘有这样的条目:

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+   2703-   2704-   7835620    b  W95 FAT32
            start: (c,h,s) expected (0,1,11) found (0,0,57)
            end: (c,h,s) expected (1023,125,46) found (975,125,46)
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

基于此讨论,这意味着该 U 盘没有分区表。

如果我不想更改我的 udev 规则,我该如何修改这个 U 盘?使用 Windows 工具或 Gparted 进行正常的重新分区不会更改此布局。

如果无法更改分区布局,我该如何更改我的 udev 规则,以便它可以处理在 /dev/sda 或 /dev/sda1 上识别的 USB 记忆棒?

谢谢。

更新:我将术语“安装”更改为“设备节点”以避免混淆。感谢奥斯汀。

答案1

如果您没有需要在 USB 记忆棒上保存的数据,并且它显示为/dev/sda,请以 root 身份运行以下命令:

wipefs -a /dev/sda

这将从设备中删除 FAT32 签名(以及任何其他文件系统签名),使其显示为空,此时,当您重新格式化设备时,GParted 和 Windows 磁盘管理器都应该创建一个分区表。

另外,为了澄清术语,内核不会将设备“挂载”到/dev,它会在那里创建可用于与设备交互的设备节点(不过,如果您有 udev,它可能会创建设备节点而不是内核),但挂载是专门指文件系统的操作(更具体地说,“将 X 挂载到 Y”意味着 X 包含一个文件系统,并且您要使该文件系统可直接在位置 Y 访问,但实际情况并非如此)当设备节点被创建时)。

答案2

Windows 下的另一个解决方案是使用diskpart

  1. 拔下 USB 记忆棒
  2. 运行 Windows 终端或cmd在 Windows 开始搜索字段中键入。
  3. 在新的 DiskPart 窗口中键入diskpart并键入list disk以查看当前设备
  4. 插上U盘,再次执行,list disk观察U盘正确的盘号
  5. 类型select disk=<number>。将 替换<number>为您要重置的 USB 记忆棒的磁盘编号。
  6. 运行clean,然后convert mbr在 U 盘上创建新的分区表。
  7. 执行create partition primary命令创建新的主分区。

相关内容