Criar nova partição no espaço não alocado com diskutil

14

Excluí a primeira partição no meu HD externo, de forma que agora ela tenha 100 GB de espaço livre no início da partição. Gostaria de recuperar esse espaço, mas o Utilitário de Disco não me permite criar uma nova partição (não faz nada quando clico em 'Aplicar'). Existe uma maneira de conseguir isso diskutil? Eu só encontrei maneiras de alterar (ou apagar, ou dividir etc.) partições existentes , digitando disk2s2 como ID do dispositivo, mas o espaço livre não possui esse ID do dispositivo.

Saídas:

$ 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
fonte
1
No Terminal, você pode por favor executar estes comandos e adicionar a saída à sua pergunta: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2e sudo pdisk --list /dev/disk2? Não está claro por que o Utilitário de Disco não está funcionando, talvez haja um problema com (uma) das tabelas de partição. Além disso, você tentou executar um "reparo" em todo o disco rígido e na partição nele?
Pmdj 13/09/12
Este Gist mostra todos os dados solicitados: gist.github.com/211c2bd5bc00a2f87b4c
MrMage
Você pode inicializar a partir de um HD externo? Se sim, eu tenho uma resposta.
duci9y
Não tentei, mas acho que sim (pelo menos funcionou no passado).
MrMage

Respostas:

18

(Antes de prosseguir, verifique se o disco em questão ainda é o disco2, se você possui backups de seus dados, etc. - as alterações aqui não são particularmente perigosas. Leia todas as instruções antes de fazer qualquer coisa para garantir que você entenda tudo. os passos.)

OK, suas tabelas de partição parecem bem (uma GPT válida e um MBR de proteção correto), então não sei por que o Disk Utility está falhando com você nesse caso, mas você deve conseguir criar uma partição no espaço vazio usando o gptcomando utilitário de linha. Sua GPT fica assim:

       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

O espaço livre é indicado por esta linha (os números são setores de 512 bytes, portanto, pouco menos de 100 GB de espaço livre:

      409640   195575768         

A Apple requer 128MiB (262144 setores) de espaço livre após uma partição; portanto, a nova partição pode ter 195575768-262144 = 195313624 setores. Desmonte todos os volumes no disco usando:

diskutil unmountDisk disk2

Em seguida, este comando criará uma partição HFS + no espaço livre:

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

Isso apenas cria a partição, não o sistema de arquivos. Para verificar se tudo correu bem, agora você deve ver um disk2s8se executar diskutil list disk2. Se esse for realmente o caso, você pode formatar a partição da seguinte maneira:

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

Se disk2s8 não aparecer, será necessário reiniciar antes da formatação. Em vez de executar, newfs_hfsvocê também deve poder apagar a partição no Utilitário de Disco.

O utilitário gpt não reordena os números da partição, mas isso não deve ser um problema na prática. Se você fizer outras alterações com o utilitário de disco, isso provavelmente corrigirá a ordem de qualquer maneira.

pmdj
fonte
Bem, isso parece ter funcionado. Mas o Disk Utility agora mostra um layout de partição bagunçado : i50.tinypic.com/2qxc3r6.jpg (o espaço livre na parte superior se expande um pouco mais - a exibição da partição agora possui barras de rolagem).
precisa saber é o seguinte
Hmm, isso pode ser causado pela numeração e possivelmente pelo que está causando o outro bug do Utilitário de Disco. Realisticamente, se tudo funcionar, você pode continuar nesse estado. Caso contrário, você pode tentar renumerar as partições. Usando o padrão, gptisso é entediante e propenso a erros / arriscado, pois a única maneira interna é excluir e recriar cada partição. Na verdade, tenho algumas manchas contra gptque renumeração add e digite mudando comandos - Eu poderia arrumar os para cima e publicá-los se você estaria OK com a reconstrução gptda fonte no Xcode ...
pmdj
Não tenho problemas para criar a gtppartir da fonte, mas o código está bem testado? Não quero estragar minha mesa de partição. Além disso, existe uma maneira de fazer backup?
MrMage
Para adicionar a partição, é gpt add.
Pduey
1
@AeroCross A política deles é publicada aqui, developer.apple.com/library/mac/technotes/tn2166/_index.html#//… na prática, é usada como uma partição de inicialização se você usar o software RAID ou o Core Storage (Fusion Drive e / ou File Vault) ou software similar.
Pmdj # 09/13