Entendendo as tabelas de partição

17

Isso é resultado 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 isso é resultado 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  *

Eu deveria ter duas partições Linux, uma partição estendida de uma partição do Windows de cerca de 20 GB com uma partição de troca lógica de 8 GB e cerca de 130 GB de espaço não particionado.

Como se não bastasse, a saída gpartedtambém é diferente. insira a descrição da imagem aqui

Estou confuso com os resultados que publiquei aqui.

  1. Por que está /dev/sd4marcado 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 cfdisk?
  3. Por que esse espaço livre (suponho 124768 pol cfdisk) está marcado como inutilizável?
  4. O que o sinalizador NC significa cfdiskpara a partição swap?
ps-aux
fonte

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 comparado a 0x80). Essa entrada está marcada como inicializável. Um carregador de inicialização 'tradicional' lê o MBR, procura uma entrada com o sinalizador inicializável e passa o controle para ele. Como você está usando o grub, ele faz algo completamente diferente, pois usa seu arquivo de configuração. Mas as ferramentas estão dizendo como as partições estão configuradas (na verdade, você pode ter um gerenciador de inicialização no MBR pulando você 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 isso muito bem em seu gráfico.

Você pode argumentar que, na verdade, é uma partição ou não, por um lado, ocupa um espaço no MBR, por outro lado, é um contêiner de partições , você não coloca um sistema de arquivos lá.

As ferramentas de partição os tratam especialmente, portanto, o cfdisk parece preferir não mostrá-lo. 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 pelo gparted no final

Você pode ter apenas 4 partições primárias (contando a partição estendida). Isso vem do número de slots no final do MBR. Como você já possui 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á, pois você pode ter apenas uma única partição estendida e será contígua).

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

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

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

Citando a página de manual do cfdisk : "Os sinalizadores podem ser Boot, que designa uma partição inicializável, ou NC, que significa" Incompatível com DOS ou OS / 2 "." Não é algo para se preocupar

Anjo
fonte
11

Vamos começar ...

  1. Está marcado como inicializável, para que o Windows possa carregar seu carregador de inicialização. Mesmo que o Grub possa carregar primeiro, ele será "carregado em cadeia" no carregador de inicialização do Windows, se o Windows estiver selecionado na lista. Para que o Windows Bootloader seja executado, ele precisa estar em uma partição inicializável (alguém pode verificar isso duas vezes por mim? Nunca tentei remover o sinalizador Inicializável em uma instalação do Windows 7 ...)

  2. SDA3 é realmente uma partição estendida . Seu disco está formatado como MBR , em vez de GPT . Uma das restrições é que o MBR pode ter apenas 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 dentro (obtendo mais de 4 partições).

  3. Por causa da 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, poderá criar uma nova partição dentro dela e usar o restante do seu disco.

  4. Nas páginas de manual do cfdisk :

Os sinalizadores podem ser Boot , que designa uma partição inicializável ou NC , que significa "Não compatível com DOS ou OS / 2".

O canadense Luke REINSTATE MONICA
fonte
Sem problemas. Eu estava postando as mesmas respostas, e essa foi a única que você não identificou melhor do que eu. ;)
Ƭᴇcʜιᴇ007 14/07
3

As partições 1 a 4 são por convenção "físicas" (elas eram o único tipo disponível na época). 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 em que 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 inicializa com prazer a partição que você deseja, mas o Windows deseja estar em uma partição inicializável.

Agora, dentro da partição lógica sda3, que cfdisknão aparece como tal, há o equivalente a mais partições físicas. Apenas neste caso sda5.

E desde que sda3passa do setor 1258M para o setor 1300M, mas os sda5usa apenas até 1275M, os setores 1275062272 a 1300236287 são gratuitos (mas alocáveis ​​para sda6).

Por fim, sua sda4(a última partição física possível - o MBR comporta apenas quatro) não é preenchida 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 sda3não pode aumentar, 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

Nenhum indolor, eu tenho medo. Dependendo da geometria, você pode excluir sda4e anotar seus limites. Em seguida, cresça sda3para incluir o disco inteiro (mesma inicialização, 1258291200, mas até o final do disco) ou exclua-o e recrie-o com a mesma partida e o final máximo. Agora você pode criar uma partição sda6interna sda3e fazer com que ela termine no cilindro imediatamente antes do setor 1300236288. Isso ocupará o espaço livre atualmente deixado no existente sda3. Finalmente, você cria uma partição interna 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. Isto é

Claro que, se tudo der errado, você perderá todos os seus dados. Partições físicas (como a do Windows é agora sda4) e partições físico-lógicas (como seria quando se tornaram sda7) não necessariamente se misturam; algumas ferramentas se recusam a criá-las. Eu sugeriria fazer um teste em um disco virtual do mesmo tamanho, criado dentro de um arquivo esparso (o arquivo em si seria realmente de apenas alguns gigabytes) ou em um disco externo.

Outra maneira, talvez mais segura, é excluir sda5(é apenas swap) e sda3mover os sda4parâmetros para sda3(isso pode implicar excluir sda4e recriar sda3com os sda4parâmetros antigos ), e isso deixará o sda4slot livre (e um "buraco" no meio) do disco). A maioria dos BIOSs permite tabelas de partição fora de sequência. Novamente, isso não deve exigir a cópia de nada. sda4agora se torna sda3e continua sendo uma partição física; portanto, sua geometria deve concordar melhor com as suposições de uma ferramenta de particionamento.

Obviamente, a maneira mais segura e recomendada (e mais lenta) de todas é fazer backup de todas as partições, reformatar todas e restaurá-las depois de "reposicioná-las" adequadamente, com a partição estendida por último e ocupando todo o disco rígido restante. Isso livrará o espaço livre dentro do sda3 e recuperará o espaço indisponível no final, sem riscos (se o backup for feito corretamente - verifique-o após o backup. Certa vez, fiz o backup em um disco externo com defeito, que morreu em cima de mim. não foi nada divertido).

LSerni
fonte
0

Além do que já foi dito sobre o significado de tudo isso, acho que a solução mais indolor 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 for utilizado e também a partição estendida que o contém
  • estenda seu arquivo sda2para incluir o espaço vazio completo depois dele (você precisará excluí-lo e recriá-lo).
  • recrie a partição estendida para ficar sentada sda3e use-a para armazenar quantas partições desejar (bem, dentro de certos limites).

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

Depois de estender o tamanho da partição, é necessário redimensionar o sistema de arquivos fechado para utilizar todo o espaço.

glglgl
fonte