Створіть новий розділ у нерозподіленому просторі за допомогою дискутилу


14

Я видалив перший розділ на своєму зовнішньому HD-диску таким чином, що він має 100 Гб вільного місця на початку розділу. Я хотів би відновити цей простір, але Disk Utility не дає мені створити там новий розділ (він просто нічого не робить, коли натискаю "Застосувати"). Чи є спосіб досягти цього diskutil? Я лише знайшов способи змінити (або видалити, або розділити і т.д.) існуючі розділи, наприклад, ввівши disk2s2 як ідентифікатор пристрою, але у вільному просторі немає такого ідентифікатора пристрою.

Виходи:

$ diskutil list disk2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Shared                  199.3 GB   disk2s2
   3:                 Apple_Boot Recovery HD             784.2 MB   disk2s3
   4:          Apple_CoreStorage                         500.0 GB   disk2s4
   5:                 Apple_Boot Boot OS X               134.2 MB   disk2s5
   6:          Apple_CoreStorage                         699.6 GB   disk2s6
   7:                 Apple_Boot Boot OS X               134.2 MB   disk2s7
$ sudo gpt -r show disk2
Password:
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640   195575768         
   195985408   389353696      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   585339104     1531680      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   586870784   976562504      4  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  1563433288      262144      5  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1563695432  1366319552      6  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  2930014984      262144      7  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  2930277128           7         
  2930277135          32         Sec GPT table
  2930277167           1         Sec GPT header
$ sudo fdisk /dev/disk2
Disk: /dev/disk2    geometry: -5415437/4/63 [-1364690128 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 - -1364690129] <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      
$ sudo pdisk --list /dev/disk2
pdisk: No valid block 1 on '/dev/disk2'

1
На терміналі, будь ласка , ви можете запустити ці команди і додати висновок на ваше запитання: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2і sudo pdisk --list /dev/disk2? Незрозуміло, чому Disk Utility не працює, можливо, є проблема з (однією з) таблиць (-ів) розділів. Також ви спробували запустити "ремонт" як на всьому жорсткому диску, так і на розділі на ньому?
pmdj

Цей Gist показує всі запитувані вами дані: gist.github.com/211c2bd5bc00a2f87b4c
MrMage

Чи можете ви завантажуватися із зовнішнього HD? Якщо так, у мене є відповідь.
duci9y

Не намагався, але я думаю, що так (принаймні, працювало раніше).
MrMage

Відповіді:


19

(Перш ніж продовжувати, переконайтесь, що диску на диску все ще є диском2, у вас є резервні копії даних тощо. - З цього приводу, зміни тут не є особливо небезпечними. Прочитайте всі інструкції, перш ніж робити що-небудь, щоб переконатися, що ви все зрозуміли. кроки.)

Гаразд, ваші таблиці розділів виглядають нормально (дійсний GPT та правильний захисний MBR), тому я не знаю, чому Disk Utility в цьому випадку виходить з ладу, але ви повинні мати змогу створити розділ у порожньому просторі за допомогою gptкоманди -лінійна утиліта. Ваш GPT виглядає так:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640   195575768         
   195985408   389353696      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   585339104     1531680      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   586870784   976562504      4  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  1563433288      262144      5  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1563695432  1366319552      6  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  2930014984      262144      7  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  2930277128           7         
  2930277135          32         Sec GPT table
  2930277167           1         Sec GPT header

Вільний простір позначається цим рядком (цифри - 512-байтові сектори, тобто трохи менше 100 Гб вільного місця:

      409640   195575768         

Apple вимагає 128MiB (262144 секторів) вільного місця після розділу, тому новий розділ може бути 195575768-262144 = 195313624 секторами. Відключіть усі томи на диску, використовуючи:

diskutil unmountDisk disk2

Потім ця команда створить розділ HFS + у вільному просторі:

sudo gpt add -b 409640 -s 195313624 -t hfs disk2

Це створює тільки розділ, а не файлову систему. Щоб перевірити, чи добре пішло, тепер слід побачити, disk2s8якщо ти біжиш diskutil list disk2. Якщо це дійсно так, ви можете відформатувати розділ так:

sudo newfs_hfs -v "Volume Name" -J /dev/rdisk2s8

Якщо disk2s8 не з’явився, вам потрібно буде перезавантажити перед форматуванням. Замість запуску newfs_hfsви також можете мати змогу стерти розділ у Disk Utility.

Утиліта gpt не перенапорядковує номери розділів, але це не повинно бути проблемою на практиці. Якщо ви внесете будь-які подальші зміни за допомогою утиліти диска, це, ймовірно, все одно виправить замовлення.


Ну, це, здається, спрацювало. Але утиліта Disk Utility тепер демонструє заплутаний макет розділів: i50.tinypic.com/2qxc3r6.jpg (вільний простір вгорі розширюється трохи далі - подання розділу тепер має смуги прокрутки).
MrMage

Хм, це може бути викликано нумерацією, а можливо, і тим, що спричиняє помилку, в першу чергу, іншу помилку Disk Utility. Реально, якби все інше спрацьовувало, ви могли просто продовжувати працювати в такому стані. В іншому випадку ви можете спробувати перенумерувати розділи. Використання стандартних стандартів - gptце виснажлива та ризикована помилка, оскільки єдиним вбудованим способом є видалення та відтворення кожного розділу. Насправді у мене є кілька виправлень, gptякі додають перенумерування та введення команд, що змінюються - я можу прибрати їх та опублікувати, якщо ви будете в порядку з перебудовою gptз джерела в XCode ...
pmdj

У мене немає проблем gtpзі створенням джерела, але чи добре перевірений код? Я не хочу накручувати таблицю розділів. Також, чи є спосіб створити резервну копію?
MrMage

Щоб додати розділ, це gpt add.
pduey

1
@AeroCross Їх політика опублікована тут, developer.apple.com/library/mac/technotes/tn2166/_index.html#//… на практиці використовується як завантажувальний розділ, якщо ви використовуєте програмне забезпечення RAID або Core Storage (Fusion Drive та / або File Vault) або подібного програмного забезпечення.
pmdj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.