diskutilを使用して、未割り当て領域に新しいパーティションを作成します


14

外付けHDの最初のパーティションを削除し、パーティションの先頭に100GBの空き領域ができるようにしました。そのスペースを再利用したいのですが、ディスクユーティリティでは新しいパーティションを作成できません([適用]をクリックしても何も起こりません)。これを達成する方法はありdiskutilますか?デバイスIDとしてdisk2s2を入力するなどして既存のパーティションを変更(または消去、分割など)する方法を見つけましたが、空き領域にはそのようなデバイス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 disk2sudo gpt -r show disk2sudo fdisk /dev/disk2sudo pdisk --list /dev/disk2?ディスクユーティリティが動作しない理由は明らかではありません。おそらく、パーティションテーブル(の1つ)に問題がある可能性があります。また、ハードディスク全体とその上のパーティションの両方で「修復」を実行しようとしましたか?
pmdj

このGistには、リクエストしたすべてのデータが表示されます:gist.github.com/211c2bd5bc00a2f87b4c
MrMage

外部HDから起動できますか?はいの場合、答えがあります。
duci9y

試しませんでしたが、私はそう思います(少なくとも過去にはうまくいきました)。
MrMage

回答:


18

(先に進む前に、問題のディスクがまだdisk2であることを確認してください。データのバックアップなどがあります。つまり、ここでの変更は特に危険ではありません。手順。)

パーティションテーブルは正常に表示されます(有効なGPTと適切な保護MBR)。したがって、このインスタンスでディスクユーティリティが失敗する理由はわかりませんが、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を実行するとifが表示されるはずです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のソースから再構築しても問題ない場合は、それらを整理して公開できます...
pmdj

gtpソースからビルドするのに問題はありませんが、コードは十分にテストされていますか?パーティションテーブルを台無しにしたくありません。また、それをバックアップする方法はありますか?
MrMage

パーティションを追加するには、gpt addです。
pduey

1
彼らのポリシーをここで公開されて@AeroCross、developer.apple.com/library/mac/technotes/tn2166/_index.html#//...実際には、それはあなたがソフトウェアRAIDまたはCoreストレージ(Fusionのドライブとを使用している場合、ブートパーティションとして使われています/またはFile Vault)または同様のソフトウェア。
pmdj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.