MacOS 磁盘管理工具 diskutil 介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS 磁盘管理工具 diskutil 介绍相关的知识,希望对你有一定的参考价值。

参考技术A

diskutil 命令的格式为: diskutil <verb> <options>
不带任何选项的 diskutil 命令会列出该命令支持的 verb 及其对应的介绍:

上面列出的 verb 主要分为以下几类:

如不清楚某个 verb 的具体命令格式,可以直接使用 diskutil 命令加上该 verb 并且不带任何其他选项,命令行即输出该 verb 的使用介绍。如 eraseDisk 的使用介绍:

可以使用 list 选项简要列出 MacOS 系统的磁盘及分区信息,包括分区类型( TYPE )、分区名( NAME )、容量大小( SIZE )和标志符( IDENTIFIER )等。如此时系统挂载了 dmg 映像文件,其信息也会显示在列表中(下表中的 disk3 )。

其中的 /dev/disk0 为内置磁盘, /dev/disk2 为外置磁盘(U 盘,已在 Windows系统下格式化为 FAT32 格式), /dev/disk3 为 DMG 映像文件。而 /dev/disk1 其实就是 disk0s2 作为 APFS 文件系统容器的具体信息。

info 选项可以列出指定磁盘或分区的详细信息。如查看 disk2 (即 8 G 优盘)的信息:

输出的信息包括设备标志符( Device Identifier )、设备节点( Device Node )、设备名( Device / Media Name )、容量大小( Disk Size )、块大小( Block Size )等。

也可以查看某个分区的详细信息:

eraseDisk 选项用于擦除整个磁盘并重新格式化。该命令的格式为:
diskutil eraseDisk <format> <name> [APM|MBR|GPT] MountPoint|DiskIdentifier|DeviceNode
format 用于指定擦除数据后需要重新建立的文件系统类型。可以为 %noformat% 来跳过初始化文件系统的操作。其他支持的类型可以通过 listFilesystems 选项查看。

用来测试的优盘如下所示,已在 Windows 下格式化为 FAT32 格式。

分区表变为 GPT 类型,且多了一个 EFI 分区。

也可以在擦除磁盘时指定分区表类型:

其他擦除命令如 eraseVolume (完全擦除整个磁盘或某个磁盘分区,创建新的文件系统)、 zeroDisk (向整个磁盘或某个分区全部写入 \'0\')
使用 zeroDisk 命令擦除磁盘(该过程会花费很长的时间,我试了)后,该磁盘上的全部信息被抹除,同时也不再包含分区和文件系统信息:

可以通过 partionDisk 选项完成对磁盘的分区操作。该命令的格式为:

命令选项中的 Size 用来指定分区的大小(以 扇区 数计量),合法的值包括带有指定后缀的浮点数。其中的 后缀 有 B(ytes), S(512-byte-
blocks), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes),也可以是 % 来表示对整个磁盘的占比。
最后一个分区会自动扩展到占用整个磁盘的剩余空间,如果想为最后一个分区指定固定的大小,可在其后再创建一个类型为『free space』的分区。

上面的命令在优盘(disk2)上创建了 3 个分区,第一个(F01)格式为 FAT32,大小是 3 Gb。第二个(F02)格式为 JHFS+,大小为 3 Gb。最后一个是『自由空间』,大小为剩余的容量。所以实际上只是分了两个区,整体的分区表类型为 MBR。

splitPartition 选项可以用来将已存在的某个分区再分割成数个更小的分区,注意原分区上的所有数据都会丢失。
该选项的第一个参数为需要分割的分区的挂载点/标志符/设备节点,其余参数和使用 partitionDisk 时相同。

上面的命令将优盘的第二个分区(disk2s2)又分割成了两个更小的分区,分别是 FAT32 格式的 F01(disk2s2),和 JHFS+ 格式的 F02(disk2s3)。虽然命令中指定了 F02 的大小是 3G,因为是最后一个分区,所以自动扩展到占用剩余的磁盘空间。最后它的实际大小是 4.5G。

mergePartitions 选项用来将多个已存在的分区合并为一个大的分区。该选项的格式为:
diskutil mergePartitions [force] format name DiskIdentifier|DeviceNode DiskIdentifier|DeviceNode
第一个分区参数为起始分区,第二个分区参数为结束分区。这两个分区 之间 的所有分区都将被合并。
如果 force 选项没有被指定,且合并前的第一个分区是可调整大小的文件系统(如 JHFS+),则第一个分区上的数据会保留到合并后的分区。

resizeVolume 选项可以 无损 调整(增加或缩减)分区大小。

将 disk2s2 分区缩减为 4g 大小,腾出的空间作为『free space』:

此时 disk2s2 内的文件如下:

将 disk2s2 分区扩展,并尽可能占用所有可用的自由空间。

此时 disk2s2 内的文件如下:

man diskutil

以上是关于MacOS 磁盘管理工具 diskutil 介绍的主要内容,如果未能解决你的问题,请参考以下文章

制作macOS U盘启动盘

linux 磁盘和文件系统管理

磁盘管理

Linux中的磁盘管理

使用UniBeast安装Hackintosh(黑苹果)

磁盘性能测试工具之fio