MacOS 中 Linux 命令“sudo fdisk -l”的等价物是什么?

Vit*_*ile 51 linux command-line fdisk macos

在 Linux 中,该命令sudo fdisk -l会生成一个输出,其中列出了计算机中的所有磁盘和分区。下面是一个例子:

fdisk -l 输出示例

如果我尝试sudo fdisk -l在 MacOS X 10.7.5 中使用,输出如下:

fdisk: illegal option -- l
usage: fdisk [-ieu] [-f mbrboot] [-c cyl -h head -s sect] [-S size] [-r] [-a style] disk
    -i: initialize disk with new MBR
    -u: update MBR code, preserve partition table
    -e: edit MBRs on disk interactively
    -f: specify non-standard MBR template
    -chs: specify disk geometry
    -S: specify disk size
    -r: read partition specs from stdin (implies -i)
    -a: auto-partition with the given style
    -d: dump partition table
    -y: don't ask any questions
    -t: test if disk is partitioned
`disk' is of the form /dev/rdisk0.
auto-partition styles:
  boothfs     8Mb boot plus HFS+ root partition (default)
  hfs         Entire disk as one HFS+ partition
  dos         Entire disk as one DOS partition
  raid        Entire disk as one 0xAC partition
Run Code Online (Sandbox Code Playgroud)

MacOS 中是否有命令可以复制fdisk -lLinux 中的行为?

小智 64

您可以使用“diskutil”工具:

% diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage                         499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *498.9 GB   disk1
Run Code Online (Sandbox Code Playgroud)


lut*_*tfz 9

就目前我所记得的...

对于 Mac OS X:

  1. diskutil( manpage ) 是 Mac OS X 可以处理的所有命令行工具,也就是说,它提供的功能与磁盘工具以图形方式提供的功能一样多,甚至更多。
  2. 对于 MS-DOS MBR(主引导记录)分区驱动器,请使用fdisk( manpage )。
  3. 对于 Apple APM (Apple Partition Map) 分区驱动器,请使用pdisk( manpage )。
  4. 对于 Apple 和 (U)EFI GPT(GUID 分区表)分区驱动器,请使用gpt( manpage )。

如果您想要一个类似于 fdisk 的 GPT 命令,您应该尝试gdiskRod Smith 的“GPT fdisk”。您可以在此处找到(重要)相关信息在此处下载信息

对于 Linux:

现代 Linuxparted用于分区,因此fdisk可能仍然存在,但您确实想parted改用它。

  • GNU Parted parted支持所有常见的分区表,包括 MBR、APM 和 GPT。大多数 Linux 发行版都有很好的使用手册parted,即在安装过程中,但我总是建议阅读ArchLinux 的维基页面——恕我直言,它们是最好的,除了这个特定的版本目前不是最新的(2016 年 12 月 30 日) !
  • fdisk仅适用于 MBR 分区。如果您尝试更改 GPT 分区磁盘上的分区表,则会损坏作为 GPT 规范一部分的“保护性 MBR”。parted会阻止你这样做!
  • pdisk已从 Darwin(Mac OS X 的 BSD 基础)移植到 Linux,因此您还可以pdisk用于创建 APM 分区表并管理其分区。问题是现代 Linux 发行版不再包含预编译包pdiskpdisk的状态
  • mac-fdisk是在 Linux/PowerPC 上运行的方法。大多数 x86(和 x64)发行版不包括在内,mac-fdisk因为它仅是 big-endian。查看Debian,您会看到只有 powerpc/ powerpc64 包可用,除了 m68k 的实验包,而不是 x86。我所知道的唯一可以mac-fdisk在 x86/amd64 上运行的 LinuxGentoo Linux
  • 对于 GPT 分区parted做得很好。如果你想要一个类似 fdisk 的命令行工具,你可以使用gptgdisk,尽管可能还有更多......

回答你的问题:

fdisk 在 macOS(以前是 OS X,最初是 Mac OS X)上的行为是一样的,但你应该检查使用的分区方案:

  1. 使用 BIOS(d)主分区记录(MBR) 的x86-PC(16 位、32 位“i386”和 64 位“x64” )。
  2. Intel Itanium (IA-64)、x86-PCs (IA-32,这包括 64-Bit ie amd64 ie x64 ie x86-64 ) 与 UEFI 和 Intel-Macs,它们都使用 EFI/ UEFI(通用可扩展固件接口) ),使用GUID 分区表(GPT)。
  3. 运行在 m86k(Motorola 68000 系列处理器)和 PowerPC 上的 Apple Macintosh 使用Apple Partition Map (APM)。

这自然不会限制外部驱动器的特定分区方案,因为如果操作系统支持,所有这些计算机都可以在外部介质上使用每个分区方案。但是对于内部驱动器,更具体地说:引导驱动器,只能使用一种分区方案。

因此:如果您fdisk在 Mac 上的内部驱动器上使用,您将不会走运,因为该驱动器上没有 MBR。它是 APM 或 GPT。同样,如果您fdisk在带有 UEFI 的现代 PC(或带有 EFI 的 Intel Mac)上使用,您将只能看到 GPT 的保护 MBR,而不是真正的分区表。

对于创建/管理分区,fdisk在使用 MBR 分区的外部驱动器上运行将在 macOS 上运行,就像在 Linux 上一样。

要在 macOS (Mac OS X) 上列出现有分区,请使用sudo diskutil list(另请参阅OSXDaily.com 上的这篇精彩文章)。在 Linux 上,等效的是sudo parted -l,或者如果您只想要一个特定的驱动器,则sudo parted /dev/sda print.


小智 6

只需使用 fdisk /dev/rdisk0 即可获取分区的 CHS 和结束块

LiuJianweis-iMac:~ liujianwei$ sudo fdisk /dev/rdisk0
Password:
Disk: /dev/rdisk0   geometry: 15566/255/63 [250069680 sectors]
Signature: 0xAA55
        Starting       Ending
 : id  cyl  hd sec -  cyl  hd sec [     start -       size]
1: EE 1023 254  63 - 1023 254  63 [         1 -  250069679] <Unknown ID>
2: 00    0   0   0 -    0   0   0 [         0     -      0] unused      
3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
4: 00    0   0   0 -    0   0   0 [         0 -          0] unused 
Run Code Online (Sandbox Code Playgroud)