สร้างพาร์ติชันใหม่ในพื้นที่ที่ไม่ได้ปันส่วนด้วย diskutil


14

ฉันได้ลบพาร์ติชั่นแรกใน HD ภายนอกของฉันจนตอนนี้มีพื้นที่ว่าง 100GB ที่จุดเริ่มต้นของพาร์ติชัน ฉันต้องการเรียกคืนพื้นที่นั้น แต่ Disk Utility ไม่อนุญาตให้ฉันสร้างพาร์ติชันใหม่ที่นั่น (มันจะไม่ทำอะไรเลยเมื่อฉันคลิก 'ใช้') มีวิธีที่จะทำให้สำเร็จด้วยdiskutilหรือไม่ ฉันเพิ่งค้นพบวิธีที่จะเปลี่ยน (หรือลบหรือแยก ฯลฯ ) พาร์ติชันที่มีอยู่โดยการป้อน disk2s2 เป็น ID อุปกรณ์ แต่พื้นที่ว่างไม่มี ID อุปกรณ์ดังกล่าว

ขาออก:

$ 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.github.com/211c2bd5bc00a2f87b4c
MrMage

คุณสามารถบู๊ตจาก HD ภายนอกได้หรือไม่? ถ้าใช่ฉันมีคำตอบ
duci9y

ไม่ได้ลอง แต่ฉันคิดอย่างนั้น (อย่างน้อยมันก็ใช้งานได้ในอดีต)
MrMage

คำตอบ:


19

(ก่อนดำเนินการต่อโปรดตรวจสอบให้แน่ใจว่าดิสก์ที่มีปัญหานั้นยังคงเป็น disk2 คุณมีการสำรองข้อมูลของคุณ ฯลฯ - ที่กล่าวว่าการเปลี่ยนแปลงที่นี่ไม่เป็นอันตรายโดยเฉพาะอ่านคำแนะนำทั้งหมดก่อนทำสิ่งใด ๆ เพื่อให้แน่ใจว่าคุณเข้าใจ ขั้นตอน)

ตกลงตารางพาร์ติชันของคุณดูดี (GPT ที่ถูกต้องและการป้องกัน MBR ที่ถูกต้อง) ดังนั้นฉันไม่ทราบว่าเหตุใด Disk Utility จึงล้มเหลวในกรณีนี้ แต่คุณควรจะสร้างพาร์ติชันในพื้นที่ว่างโดยใช้gptคำสั่ง -line โปรแกรมอรรถประโยชน์ 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 ไบต์ดังนั้นพื้นที่ว่างต่ำกว่า 100GB:

      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
pduey

1
@AeroCross นโยบายของพวกเขาได้รับการเผยแพร่ที่นี่developer.apple.com/library/mac/technotes/tn2166/_index.html#//…ในทางปฏิบัติมันถูกใช้เป็นพาร์ติชันสำหรับบูตหากคุณใช้ซอฟต์แวร์ RAID หรือ Core Storage (Fusion Drive และ / หรือ File Vault) หรือซอฟต์แวร์ที่คล้ายกัน
pmdj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.