Como entender as tabelas de partições

17

Esta é a saída de fdisk :

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT
/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

E esta é a saída de cfdisk :

Name         Flags       Part Type   FS Type           [Label]         Size (MB)
--------------------------------------------------------------------------------
                                     Unusable                               1.05  *
sda1                      Primary    ext4                              214744.18  *
sda2                      Primary    ext4                              429499.88  *
sda5         NC           Logical    swap                                8586.79  *
                          Logical    Free Space                         12889.10  *
sda4         Boot         Primary    ntfs                              209715.20  *
                                     Unusable                          124768.71  *

Devo ter 2 partições Linux, 1 partição estendida com partição do Windows de cerca de 20 GB com partição lógica de 8GB e até 130 GB de espaço não particionado.

Como se não bastasse, a saída de gparted também é diferente.

Estou confuso com os resultados que publiquei aqui.

  1. Por que /dev/sd4 está marcado como inicializável se eu inicializar no GRUB2?
  2. O que é / dev / sda3? Qual é o seu tipo (primário / lógico)? Por que não é exibido em cfdisk ?
  3. Por que esse espaço livre (suponho 124768 em cfdisk ) foi marcado como inutilizável?
  4. O que o sinalizador NC significa em cfdisk para a partição swap?
por Arkonix 14.07.2014 / 18:47

4 respostas

26

Por que o / dev / sd4 está marcado como inicializável se eu inicializar no GRUB2?

O inicializável é um sinalizador no MBR (na verdade, um byte que é comparado a 0x80). Essa entrada é marcada como inicializável. Um carregador de inicialização 'tradicional' lê o MBR, procura uma entrada com o sinalizador de boot e passa o controle a ele. Como você está usando o grub, ele faz algo completamente diferente, já que usa seu arquivo de configuração. Mas as ferramentas estão dizendo a você como as partições são configuradas (na verdade, você pode ter um gerenciador de inicialização no MBR saltando para / dev / sda4 e o grub2 instalado lá).

O que é / dev / sda3? Qual é o seu tipo (primário / lógico)? Por que não é exibido no cfdisk?

/ dev / sda3 é uma partição primária do tipo partição estendida . É uma partição usada como contêiner para outras partições. O gparted está mostrando muito bem em seu gráfico.

Você poderia argumentar se é realmente uma partição ou não, por um lado, ocupa um espaço no MBR, por outro lado, é um recipiente de partições , você não coloca um sistema de arquivos lá.

Ferramentas de partição tratam-nas especialmente, então o cfdisk parece preferir não mostrá-las. O fdisk, por exemplo, também não permite algumas ações nessas partições.

Por que esse espaço livre (suponho 124768 no cfdisk) está marcado como inutilizável?

Eu acho que esses são os 116.20 GiB mostrados por gparted no final

Você só pode ter até 4 partições primárias (contando a partição estendida). Isso vem do número de slots no final do MBR. Como você já tem 4 deles, esse espaço não alocado no final não pode ser particionado (você não pode colocar uma partição lógica lá, já que você só pode ter uma única partição estendida, e ela deve ser contígua).

Suas opções (fáceis) de usar esse espaço seriam:

  • extender / dev / sda4 para usá-lo
  • estenda / dev / sda3 para incluir / dev / sda4 (e de preferência também para o final do disco) e torne / dev / sda4 uma partição lógica

O que significa o sinalizador NC no cfdisk para a partição swap?

Citando a página do manual do cfdisk : "As bandeiras podem seja Boot, que designa uma partição inicializável, ou NC, que significa "Not Compatible with DOS ou OS / 2". " Não é algo com que se preocupar

    
por 14.07.2014 / 19:30
11

Vamos começar ...

  1. Está marcado como inicializável, para que o Windows possa carregar seu carregador de boot a partir dele. Mesmo que o Grub carregue primeiro, ele carregará "chainload" no gerenciador de inicialização do Windows, se o Windows for selecionado na lista. Para o Windows Bootloader executar, ele precisa estar em uma partição inicializável (alguém poderia verificar isso para mim? Eu nunca tentei remover o sinalizador de inicialização em uma instalação do Windows 7 ...)

  2. O SDA3 é, na verdade, uma partição Estendido . Seu disco está formatado como MBR , em vez de GPT . Uma das restrições é que o MBR só pode ter até 4 partições primárias . Para contornar isso, você pode usar uma partição primária estendida para criar várias partições lógicas menores (obtendo mais de 4 partições).

  3. Devido à limitação do MBR, ele não pode criar uma quinta partição primária fora da partição lógica estendida . Isto é normal. Se você estender a Partição Estendida, deverá ser capaz de criar uma nova partição dentro dela e usar o resto do disco.

  4. Nas páginas do manual do cfdisk :

The flags can be Boot, which designates a bootable partition or NC, which stands for "Not Compatible with DOS or OS/2".

    
por 14.07.2014 / 19:10
3

As partições 1 a 4 são por convenção "físicas" (elas eram o único tipo disponível nos tempos antigos). Então você tem:

Device    Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT

/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

... sda1 é físico, Linux. sda2 é físico, Linux novamente. sda3 é uma partição lógica onde outras partições (5 em diante) podem residir. Finalmente sda4 é uma partição do Windows, marcada como inicializável - acho que apenas o Windows se importa mais com isso. O GRUB2 terá o prazer de inicializar qualquer partição desejada, mas o Windows quer estar em uma partição inicializável.

Agora, dentro da partição lógica sda3 , que cfdisk não mostra como tal, há o equivalente a mais partições físicas. Neste caso, apenas sda5 .

E como sda3 vai do setor 1258M para o setor 1300M, mas sda5 usa apenas até 1275M, os setores 1275062272 a 1300236287 são gratuitos (mas podem ser alocados para sda6 ).

Por fim, seu sda4 (a última partição física possível - o MBR contém apenas quatro) não é preenchido até o final do disco. Deixa cerca de 116Gb de folga. Esse espaço é inutilizável porque você não pode criar uma partição física para cobri-la (a partição estendida sda3 não pode crescer, porque sua extensão é "bloqueada" por sda4 ):

[SDA3...(sda5)...| FREE    ][...sda4...][ UNREACHABLE SPACE ]end-of-disk

Soluções para recuperar o espaço indisponível

Nada indolor, eu tenho medo. Dependendo da geometria, você pode excluir sda4 e anotar seus limites. Em seguida, cresça sda3 para incluir o disco inteiro (mesmo início, 1258291200, mas acabe até o final do disco) ou exclua-o e recrie com o mesmo início e fim máximo. Agora você pode criar uma partição sda6 dentro de sda3 e fazer com que ela termine no cilindro logo antes do setor 1300236288. Isso ocupará o espaço livre atualmente deixado no sda3 existente. Finalmente, você cria uma partição dentro de sda3 e será sda7 , informando ao sistema que ela se estende de 1300236288 a 1709836287 e é do tipo 7.

Se você não formatar essa partição, o conteúdo permanecerá como está e é uma partição válida do Windows. É

É claro que, se as coisas derem errado, você perderá todos os seus dados. Partições físicas (como o Windows é agora que é sda4 ) e partições físicas dentro de lógica (como seria uma vez que se tornou sda7 ) não necessariamente se misturam; algumas ferramentas recusam-se a criá-las. Eu sugiro fazer um teste em um disco virtual do mesmo tamanho, criado dentro de um arquivo esparso (o arquivo em si seria realmente apenas alguns gigabytes) ou em um disco externo.

Outra forma, talvez mais segura, é excluir os parâmetros sda5 (apenas trocar) e sda3 , mover sda4 para sda3 (isso pode implicar a exclusão de sda4 e a recriação de sda3 com o antigo parâmetros sda4 ), e isso deixará o slot sda4 livre (e um "buraco" no meio do disco). A maioria dos BIOS permite tabelas de partições fora de seqüência. Novamente, isso não deve exigir a cópia de nada. sda4 agora se torna sda3 e continua sendo uma partição física, portanto, sua geometria deve estar de acordo com as suposições de uma ferramenta de particionamento.

Claro que o recomendado e o modo mais seguro (e mais lento) de todos é fazer o backup de todas as partições, reformatá-las todas e restaurar depois de os ter "reposicionado" adequadamente, com a partição estendida por último e ocupando todo o disco rígido restante. Isso eliminará o espaço livre dentro de sda3 e recuperará o espaço indisponível no final, sem riscos (se o backup for feito corretamente - verifique depois de fazer o backup. Eu fiz o backup de um disco externo defeituoso, que morreu em cima de mim restaurar. Não foi nada divertido).

    
por 14.07.2014 / 23:22
0

Além do que já foi dito sobre o significado de tudo isso, acho que a solução mais simples seria ter o espaço de troca na grande área no final e adicionar o espaço vazio no meio ao seu /home .

Para fazer isso, você precisa

  • exclua seu arquivo de troca assim que não estiver em uso e também a partição estendida que o mantém
  • estenda seu sda2 para incluir o espaço vazio completo depois dele (você terá que excluir e recriá-lo).
  • recrie a partição estendida para assentar depois de sda3 e use-a para armazenar quantas partições você quiser (bem, dentro de certos limites).

Isso é feito com mais facilidade com cfdisk , pois ele manipula a partição estendida dinamicamente. Mas tome cuidado para que sda2 mantenha seu LBA inicial, caso contrário, você perderá seu conteúdo.

Após estender o tamanho da partição, você precisa redimensionar o sistema de arquivos incluído para usar o espaço total.

    
por 14.07.2014 / 23:51