Buat partisi baru di ruang yang tidak terisi dengan diskutil

14

Saya telah menghapus partisi pertama pada HD eksternal saya sehingga sekarang memiliki 100GB ruang kosong di awal partisi. Saya ingin merebut kembali ruang itu, tetapi Disk Utility tidak membiarkan saya membuat partisi baru di sana (hanya tidak melakukan apa-apa ketika saya mengklik 'Terapkan'). Apakah ada cara untuk mencapai ini diskutil? Saya hanya menemukan cara untuk mengubah (atau menghapus, atau membelah dll) partisi yang ada dengan misalnya memasukkan disk2s2 sebagai ID perangkat, tetapi ruang kosong tidak memiliki ID perangkat tersebut.

Output:

$ 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'
MrMage
sumber
1
Di Terminal, dapat Anda jalankan perintah ini dan menambahkan output ke pertanyaan Anda: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2dan sudo pdisk --list /dev/disk2? Tidak jelas mengapa Utilitas Disk tidak berfungsi, mungkin ada masalah dengan (salah satu) tabel partisi. Juga, sudahkah Anda mencoba menjalankan "perbaikan" pada seluruh hard disk dan partisi di atasnya?
pmdj
Gist ini menunjukkan semua data yang Anda minta: gist.github.com/211c2bd5bc00a2f87b4c
MrMage
Bisakah Anda boot dari HD eksternal? Jika ya, saya punya jawaban.
duci9y
Tidak mencoba, tapi saya rasa begitu (setidaknya itu berhasil di masa lalu).
MrMage

Jawaban:

18

(Sebelum melanjutkan, pastikan disk yang dimaksud masih disk2, Anda memiliki cadangan data Anda, dll. - yang mengatakan, perubahan di sini tidak terlalu berbahaya. Baca seluruh petunjuk sebelum melakukan apa pun untuk memastikan Anda memahami semua langkah langkah.)

OK, tabel partisi Anda terlihat baik-baik saja (GPT yang valid dan MBR pelindung yang benar), jadi saya tidak tahu mengapa Disk Utility mengecewakan Anda dalam hal ini, tetapi Anda harus dapat membuat partisi di ruang kosong menggunakan gptperintah Utilitas-line. GPT Anda terlihat seperti ini:

       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

Ruang kosong ditunjukkan oleh baris ini (jumlahnya adalah sektor 512-byte, jadi hanya di bawah ruang kosong 100GB:

      409640   195575768         

Apple membutuhkan 128MiB (262144 sektor) ruang kosong setelah partisi, sehingga partisi baru tersebut bisa 195575768-262144 = 195313624 sektor. Lepas semua volume pada disk menggunakan:

diskutil unmountDisk disk2

Kemudian, perintah ini akan membuat partisi HFS + di ruang kosong:

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

Itu hanya menciptakan partisi, bukan sistem file. Untuk memeriksa apakah itu berjalan dengan baik, Anda sekarang harus melihat disk2s8jika Anda menjalankan diskutil list disk2. Jika memang demikian, Anda dapat memformat partisi seperti:

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

Jika disk2s8 belum muncul, Anda harus reboot sebelum memformat. Alih-alih menjalankan newfs_hfsAnda juga harus dapat menghapus partisi di Disk Utility.

Utilitas gpt tidak memesan ulang nomor partisi tetapi ini seharusnya tidak menjadi masalah dalam praktiknya. Jika Anda membuat perubahan lebih lanjut dengan utilitas disk, itu mungkin akan memperbaiki pemesanan pula.

pmdj
sumber
Sepertinya ini berhasil. Tetapi Disk Utility sekarang memperlihatkan tata letak partisi yang berantakan : i50.tinypic.com/2qxc3r6.jpg (ruang kosong di bagian atas melebar sedikit lebih jauh - tampilan partisi sekarang memiliki scrollbars sekarang).
MrMage
Hmm, itu mungkin disebabkan oleh penomoran dan mungkin apa pun yang menyebabkan bug Disk Utility lainnya. Secara realistis, jika semuanya berfungsi, Anda bisa melanjutkan dalam kondisi ini. Jika tidak, Anda bisa mencoba memberi nomor baru pada partisi. Menggunakan standar gptini membosankan dan agak error / riskan, karena satu-satunya cara bawaan adalah menghapus dan membuat ulang setiap partisi. Saya benar-benar memiliki beberapa tambalan terhadap gptpenambahan penomoran ulang dan ketik perintah pengubahan - Saya dapat merapikannya dan mempublikasikannya jika Anda setuju dengan pembangunan kembali gptdari sumber di
XCode
Saya tidak punya masalah membangun gtpdari sumber, tetapi kode diuji dengan baik? Saya tidak ingin mengacaukan tabel partisi saya. Juga, apakah ada cara untuk mencadangkannya?
MrMage
Untuk menambahkan partisi, itu gpt add.
pduey
1
@AeroCross Kebijakan mereka dipublikasikan di sini, developer.apple.com/library/mac/technotes/tn2166/_index.html# //... dalam praktiknya digunakan sebagai partisi boot jika Anda menggunakan perangkat lunak RAID atau Penyimpanan Inti (Fusion Drive dan / atau File Vault) atau perangkat lunak serupa.
pmdj