Что эквивалентно команде Linux «sudo fdisk -l» в MacOS?

41

В 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

Есть ли в MacOS команда для репликации поведения fdisk -lв Linux?

Вито Джентиле
источник

Ответы:

55

Для этого вы можете использовать инструмент «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
Теун Винк
источник
1
@VitoShadow - Обязательно примите правильный ответ, пожалуйста (я думаю, что вы можете на своем уровне).
nerdwaller
Но что, если я хочу знать конечный блок раздела?
Джонбойлс
6

Насколько я помню...

Для Mac OS X:

  1. diskutil( manpage ) - это инструмент командной строки для всего, что может обрабатывать Mac OS X, т. е. он предоставит столько же или больше, чем Disk Utility может сделать графически.
  2. Для разделенных дисков MS-DOS MBR (Master Boot Record) используйте fdisk( manpage ).
  3. Для разделенных дисков Apple APM (Apple Partition Map) используйте pdisk( manpage ).
  4. Для разделенных дисков Apple и (U) EFI GPT (таблица разделов GUID) используйте gpt( manpage ).

Если вам нужна команда GPT, похожая на fdisk, вам следует попробовать gdisk«GPT fdisk» от Rod Smith. Вы можете найти (важную) связанную информацию здесь и загрузить информацию здесь .

Для Linux:

Современный Linux использует partedдля разметки, так что fdiskможет все еще быть, но вы бы действительно хотели использовать partedвместо этого.

  • GNU Parted parted поддерживает все распространенные таблицы разделов, включая MBR, APM и GPT. В большинстве дистрибутивов Linux есть хорошие руководства по использованию parted, т. Е. Во время установки, но я всегда рекомендую прочитать вики-страницы из ArchLinux - ИМХО они лучшие, за исключением того, что этот конкретный в настоящее время не очень актуален (30 декабря 2016 г.) !
  • fdiskтолько для разделов MBR. Если вы попытаетесь изменить таблицу разделов на многораздельном диске GPT, вместо этого вы испортите «защитную MBR», которая является частью спецификации GPT. partedпомешает вам сделать это!
  • pdiskбыл перенесен из Darwin (базовая BSD Mac OS X) в Linux, так что вы также можете использовать pdiskдля создания таблицы разделов APM и управления ее разделами. Проблема в том, что современные дистрибутивы Linux больше не включают в себя предварительно скомпилированный пакет pdisk. Статус pdisk
  • mac-fdiskэто путь на Linux / PowerPC. Большинство дистрибутивов x86 (и x64) не включают в себя, mac-fdiskпотому что это только big-endian. Глядя на Debian, вы видите, что доступны только пакеты powerpc / powerpc64, за исключением экспериментальных пакетов для m68k, но не для x86. Единственный известный мне Linux, работающий mac-fdiskна x86 / amd64, - это Gentoo Linux .
  • Для разделов GPT partedотлично справляется. Если вам нужен инструмент командной строки, похожий на fdisk, вы можете использовать либо gptили gdisk, хотя их может быть больше ...

Чтобы ответить на ваш вопрос:

fdisk в macOS (ранее OS X, первоначально Mac OS X) действует точно так же, но вы должны проверить используемую схему разбиения:

  1. x86-ПК (16-битные, 32-битные "i386" и 64-битные "x64") с использованием BIOS (d) Запись основного раздела (MBR).
  2. Intel Itanium (IA-64), x86-ПК (IA-32, в том числе 64-разрядные, то есть amd64, то есть x64, то есть x86-64 ) с UEFI и Intel-Mac, все они используют EFI / UEFI ( универсальный расширяемый интерфейс встроенного ПО ), используйте таблицу разделов GUID (GPT).
  3. Apple Macintosh работает на m86k (процессоры Motorola серии 68000) и PowerPC используют Apple Partition Map (APM).

Естественно, это не ограничивает конкретную схему разбиения внешних дисков, поскольку все эти компьютеры могут использовать каждую схему разбиения на внешних носителях, если операционная система поддерживает ее. Но для внутренних дисков, а точнее для загрузочных дисков, может использоваться только одна схема разбиения.

Для этого: если вы используете fdiskMac на внутреннем диске, вам не повезет, поскольку на этом диске нет MBR. Это либо APM, либо GPT. Аналогично, если вы используете fdiskсовременный ПК с UEFI (или Intel Mac с EFI), вы увидите только защитную MBR GPT, а не реальную таблицу разделов.

Для создания / управления разделами работа fdiskна внешнем диске, использующем разделение MBR, будет работать в macOS так же, как в Linux.

Для получения списка существующих разделов в macOS (Mac OS X) используйте sudo diskutil list(см. Также эту замечательную статью на OSXDaily.com ). В Linux, то equivilant это sudo parted -l, или если вы хотите только конкретный диск, sudo parted /dev/sda print.

luttztfz
источник
И давайте не будем забывать о диспетчере логических томов CoreStorage .
Даниэль Б
Читая все это снова, я понимаю, что краткий ответ на этот вопрос действительно заключается в использовании diskutil. Я намеревался указать, что fdiskв Linux могут быть перечислены разделы, а не в macOS, но использование fdiskрискованно, поскольку оно ограничено разделами MBR. Современные накопители поставляются с разделами GPT fdisk- устарели и, следовательно, становятся опасными, поскольку в них указывается только защитная часть GPR GPT. Версии Linux fdiskбыли изменены, чтобы показать разделы GPT, но macOS используетdiskutil , так что кажется, что в любом случае не было реальной необходимости использовать -lс ними fdisk.
Luttztfz
Это становится еще более запутанным, потому что существуют версии с fdiskподдержкой GPT для Linux. Лично я думаю, что это тоже значительно превосходит parted.
Даниэль Б
@DanielB: Да, как я уже говорил, некоторые версии Linux fdisk были модифицированы для использования с GPT. IMHO, единственный действительно отличный инструмент для GPT в Linux и macOS - это, gdiskнапример, «gpt-fdisk», но gptон также будет работать, и только в Linux partedбудет работать правильно. Это становится еще сложнее с такими вещами, как BootCamp или другими настройками мультизагрузки, не говоря уже о нестандартном выравнивании и секторах 4k, называемых «Advanced Format». Мне просто интересно, что - fdiskявно историческое имя MS-DOS для инструмента разбиения - все еще в умах людей для перечисления разделов, даже в современных системах.
luttztfz
3

Просто используйте 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 
Катхед
источник
1
Я получил, fdisk: /dev/rdisk0: Operation not permittedдаже если дан пароль sudo
Чанг Цянь
Работает для меня. Возможно, это работает только для разделов MBR? На самом деле я просто использовал, /dev/disk0а не /dev/rdisk0. Я не уверен, что rподразумевает добавленное ; Я никогда не использовал это.
интуитивно