单位发的老 U盘是在 Windows 系统下通过软件加过密的,分为了启动区和交换区,通过 macOS 磁盘工具格式化的时候,只能格式化启动区,大概也就 10M左右的空间,剩下的 30 多个 G 却总是无法找到。
这时候即便插回 Windows 系统,该 U 盘也无法识别了,即便用大白菜等 U 盘制作工具也识别不到。
其实,即使没有通过 macOS 格式的正常加密 U盘,Windows 系统在没有专用工具下,也只能对其启动区部分进行操作。
好在以前对 macOS 系统的 diskutil
命令有一点了解,就想到用该命令进行操作试试。
终端下查看 U 盘等磁盘设备
我们可以使用 diskutil list
命令查看盘符列表,找到需要格式化的U盘
➜ ~ diskutil list
……
/dev/disk4 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *31.5 GB disk4
1: DOS_FAT_32 DBC 10.5 MB disk4s1
2: 0x08 512 B disk4s2
3: 0x08 512 B disk4s3
4: 0x08 512 B disk4s4
……
通过显示的结果可见,我们的 U 盘就是那个/dev/disk4
.
卸载该 U 盘挂载的所有分区/卷组
使用 diskutil unmountDisk /dev/disk4
卸载分区disk4
如下所示,即为成功.
➜ ~ diskutil unmountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
对U盘进行擦除并格式化为 JHFS+ 格式
执行diskutil eraseDisk JHFS+ udisk disk4
JHFS+
为 macOS 的扩展日志格式,你也可以格式为 ExFAT
等格式。
udisk
为你格式化后的U盘名称,disk4 为目标物理磁盘。
当出现如下提示表示成功。
➜ ~ diskutil eraseDisk JHFS+ udisk disk4
Started erase on disk4
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk4s2 as Mac OS Extended (Journaled) with name raspberry
Initialized /dev/rdisk4s2 as a 29 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished erase on disk4
此时,我们可以通过磁盘工具查看,U盘大小已经恢复为 31.11 GB。
Windows 下的类似操作命令
Windows 本身对磁盘管理的命令很弱。Win7 自带有 diskpart
命令,但该命令貌似只能识别 Windows 常规能识别的磁盘格式,对于像 HFS
等文件格式或者进行加密分区的磁盘貌似就无能为力了。
diskpart
常见操作如下,需要在管理员身份运行的命令行
下操作;
- 输入
diskpart
,回车 - 然后
list disk
,显示电脑连接的驱动器清单; - 记住优盘前面的编号,比如是4,输入
select disk 4
,选择优盘 - 然后输入
clean
,清空优盘,退出命令提示行。此时 U盘已清空为未格式化状态。 - 右键点击桌面上的计算机--管理--磁盘管理,右键点击U盘,进行分区和格式化就可以了。
另外,Windows 下 powershell 从 4.0 开始,已经有了磁盘管理的 cmdlets 和 Function,但 Win7 自带的 powershell 是 2.0 版本。具体升级方式和磁盘管理方法请自行百度。
一句话,对于磁盘和文件系统管理,到底还是类 Unix 系统更加强大哈。