diskutil을 사용하여 할당되지 않은 공간에 새 파티션 생성


14

외부 HD에서 첫 번째 파티션을 삭제하여 파티션 시작 부분에 100GB의 여유 공간이 생겼습니다. 이 공간을 되찾고 싶지만 디스크 유틸리티를 사용하여 새 파티션을 만들 수 없습니다 ( '적용'을 클릭해도 아무 것도 수행하지 않음). 이 작업을 수행하는 방법이 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/disk2sudo pdisk --list /dev/disk2? 디스크 유틸리티가 작동하지 않는 이유는 확실하지 않습니다. 아마도 파티션 테이블 중 하나에 문제가있을 수 있습니다. 또한 전체 하드 디스크와 그 파티션에서 "복구"를 실행 해 보셨습니까?
pmdj

이 요지는 당신이 요청한 모든 데이터를 보여줍니다 : gist.github.com/211c2bd5bc00a2f87b4c
MrMage

외부 HD로 부팅 할 수 있습니까? 그렇다면 대답이 있습니다.
duci9y

시도하지 않았지만 그렇게 생각합니다 (적어도 과거에는 효과가있었습니다).
MrMage

답변:


19

(진행하기 전에 문제의 디스크가 여전히 디스크 2인지, 데이터 백업 등이 있는지 확인하십시오. 즉, 여기의 변경 사항은 특별히 위험하지는 않습니다. 모든 것을 이해하기 전에 모든 지시 사항을 읽으십시오 단계들.)

좋습니다, 파티션 테이블이 잘 보입니다 (유효한 GPT 및 올바른 보호 MBR).이 경우 디스크 유틸리티가 왜 실패하는지 모르겠지만 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 바이트 섹터이므로 100GB 미만의 여유 공간 :

      409640   195575768         

Apple은 파티션 뒤에 128MiB (262144 섹터)의 여유 공간이 필요하므로 새 파티션은 195575768-262144 = 195313624 섹터가 될 수 있습니다. 다음을 사용하여 디스크의 모든 볼륨을 마운트 해제하십시오.

diskutil unmountDisk disk2

그런 다음이 명령은 여유 공간에 HFS + 파티션을 만듭니다.

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

파일 시스템이 아닌 파티션 만 작성합니다. 제대로 작동하는지 확인하려면 이제 disk2s8if가 실행되는지 확인하십시오 diskutil list disk2. 이 경우 실제로 파티션을 다음과 같이 포맷 할 수 있습니다.

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

disk2s8이 나타나지 않으면 포맷하기 전에 재부팅해야합니다. 실행하는 대신 newfs_hfs디스크 유틸리티에서 파티션을 지울 수도 있습니다.

gpt 유틸리티는 파티션 번호를 다시 정렬하지 않지만 실제로는 문제가되지 않습니다. 디스크 유틸리티로 추가 변경을하면 어쨌든 순서가 수정 될 것입니다.


글쎄, 이것은 효과가 있었던 것 같습니다. 그러나 디스크 유틸리티는 이제 엉망인 파티션 레이아웃을 보여줍니다 : i50.tinypic.com/2qxc3r6.jpg (맨 위의 여유 공간이 조금 더 확장되었습니다-파티션보기에는 스크롤 막대가 있습니다).
MrMage

흠, 그것은 번호 매기기와 다른 디스크 유틸리티 버그를 일으키는 원인으로 인해 발생할 수 있습니다. 현실적으로, 다른 모든 것이 작동한다면, 당신은이 상태에서 계속할 수 있습니다. 그렇지 않으면 파티션 번호를 다시 매길 수 있습니다. 표준을 사용하면 gpt지루하고 다소 오류가 발생하기 쉽고 위험이 있습니다. 기본 제공되는 유일한 방법은 각 파티션을 삭제하고 다시 만드는 것입니다. 실제로 gpt번호를 다시 매기기 및 유형 변경 명령을 추가 하는 패치 가 있습니다 gpt. XCode의 소스에서 다시
작성해도 괜찮다

gtp소스에서 빌드 하는 데 문제가 없지만 코드가 잘 테스트 되었습니까? 파티션 테이블을 망치고 싶지 않습니다. 또한 백업하는 방법이 있습니까?
MrMage

파티션을 추가하려면 gpt add입니다.
pduey

1
@AeroCross 정책은 developer.apple.com/library/mac/technotes/tn2166/_index.html#//… 에 게시되어 있으며, 실제로 소프트웨어 RAID 또는 코어 스토리지 (Fusion Drive 및 / 또는 File Vault) 또는 이와 유사한 소프트웨어.
pmdj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.