Який еквівалент команді 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

Але що робити, якщо я хочу знати кінцевий блок розділу?
johnboiles

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, тобто під час установки, але я завжди рекомендую читати wikipages з Archlinux -IMHO вони є кращими, за винятком того, що саме цей один в даний час не надто уточнений (30 грудня 2016) !
  • fdiskпризначений лише для розділів MBR. Якщо ви спробуєте змінити таблицю розділів на розділеному диску GPT, ви замість цього пошкодите "захисний MBR", який є частиною специфікації GPT. partedзаважатиме вам це робити!
  • pdiskбув перенесений з Дарвіна (база BSD Mac OS X) в Linux, тому ви також pdiskможете створити таблицю розділів APM та керувати її розділами. Проблема полягає в тому, що сучасні дистрибутиви Linux вже не включають попередньо складений пакет pdisk. Статус pdisk
  • mac-fdiskце шлях до Linux / PowerPC. Більшість дистрибутивів x86 (і x64) не включають, mac-fdiskоскільки вони є лише для великих ендіанів. Дивлячись на 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) Запис Master Partition Record (MBR).
  2. Intel Itanium (IA-64), x86-ПК (IA-32, це включає 64-бітові, тобто amd64, тобто x64, тобто x86-64 ) з UEFI та Intel-Macs, усі вони використовують 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.


І не будемо забувати про логічний диспетчер томів CoreStorage .
Даніель Б

Читаючи, хоча все це ще раз, я розумію, що коротка відповідь на питання справді полягає у використанні diskutil. Що я мав намір зазначити, це те, що вони fdiskможуть перераховувати розділи на Linux, а очевидно, не на macOS, але використовувати fdiskризиковано, оскільки це обмежено розділами MBR. Сучасні накопичувачі мають розділений GPT fdisk- застаріли і, таким чином, стають небезпечними, оскільки будуть лише перераховані захисні MBR-частини GPT. Версії Linux на fdiskякі були змінені , щоб показати розділів GPT , як добре, але Macos використання diskutil, так що здається , ніколи не було реальної необхідності використання -lз fdiskтак чи інакше.
luttztfz

Це стає ще більш заплутаним, оскільки існують версії, сумісні з GPT fdiskдля Linux. Особисто я вважаю, що це теж значно перевершує parted.
Даніель Б

@DanielB: Так, як я вже згадував, деякі версії Linux fdiskбули модифіковані для використання з GPT. IMHO - єдиний дійсно чудовий інструмент для GPT на Linux та macOS, gdiskтобто "gpt-fdisk", але gptвін також працюватиме і лише для Linux partedбуде робити цю роботу правильно. Це стає ще складніше з такими речами, як BootCamp або інші установки для багатозавантажувальних програм, не кажучи вже про нестандартне вирівнювання та сектори 4k, відомі як «Розширений формат». Мені просто цікаво, що - 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навіть отримав пароль для судо
Чанг Цянь

Працює для мене. Можливо, він працює лише для розділів MBR? Насправді я просто використовував, /dev/disk0а не /dev/rdisk0. Я не впевнений, що rозначає додане ; Я ніколи його не використовував.
інтуїтивно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.