Mais uma vez, aqui estou tentando entender alguns conceitos de HDD e sistema de arquivos.
Quando o Windows exibe uma unidade como tendo "espaço não alocado" e solicita que a unidade seja inicializada, o que exatamente isso significa - que a unidade não possui sistema de arquivos ou apenas que o sistema de arquivos não é reconhecido pelo Windows?
O conceito de espaço não alocado é do Windows ou do disco rígido - em outras palavras, é possível que outros sistemas operacionais gravem em espaço não alocado ?
Em caso afirmativo, isso significa que fora do Windows, um sistema de arquivos não é necessário para gravar em um disco rígido?
Sim, qualquer sistema operacional sempre pode gravar em qualquer local do disco, seja dentro ou fora de uma partição.
As partições nada mais são do que uma lista de regiões que o sistema operacional concorda em usar – o disco sempre se comporta como um único meio de armazenamento contínuo e não
conhecerse preocupe em ser particionado.(Na verdade, a própria tabela de partição é armazenada no mesmo disco, nos setores 0–32, e quando as ferramentas gostam
fdisk
oudiskpart
editam partições, tudo o que fazem é atualizar a tabela armazenada nesses setores.)Não é estritamente necessário para a maioria dos sistemas operacionais. Um programa com direitos suficientes pode abrir o arquivo de dispositivo bruto, como
/dev/sda4
no Linux ou\\.\Device\Harddisk5\DR5
no Windows, e ler/gravar bytes em qualquer local.O programa poderia praticamente inventar seu próprio sistema de arquivos privado dessa forma, ou usar alguma outra estrutura (por exemplo, existem mecanismos de banco de dados SQL que gravam o banco de dados em uma partição bruta). Ou pode simplesmente despejar dados em qualquer lugar.
Os sistemas de arquivos como você os conhece apenas permitem que todos os programas no sistema operacional compartilhem a mesma unidade ou partição. O sistema operacional cuida da alocação de espaço, confiabilidade, etc. e os programas não precisam pensar em nada além de arquivos e pastas.
Quando o aplicativo "Gerenciamento de disco" solicita a inicialização da unidade , isso significa que ele nem reconhece a tabela de partições (que deve indicar quais áreas estão alocadas e quais não).
O Windows entende as tabelas de partições MBR e GPT, mas quando esse prompt aparece, significa que nenhuma delas foi encontrada. Portanto, o Windows nem chega ao ponto de examinar os sistemas de arquivos - ele não pode saber onde estão os sistemas de arquivos (se houver algum).
No entanto, quando o Windows encontra uma partição com um sistema de arquivos não reconhecido, o "Gerenciamento de disco" não solicita a formatação ou a substituição - ele simplesmente mostra essa partição como tendo um sistema de arquivos não reconhecido, geralmente abreviado como "RAW".
Quando outros sistemas operacionais criam suas partições em um disco MBR ou GPT, eles geralmente respeitam a tabela de partições existente e não começam a usar uma diferente. Portanto, se, por exemplo, o Linux ou o FreeBSD criarem suas próprias partições, elas ficarão visíveis como partições reais no Gerenciamento de disco - desde que estejam no MBR ou GPT, elas não se transformarão simplesmente em "espaço não alocado" apenas porque o sistema de arquivos foi não reconhecido.
No entanto, não confunda o prompt do DiskMgmt para inicializar o disco com o prompt do Windows Explorer para formatar o disco. O primeiro é sobre tabelas de partições desconhecidas, mas o último é sobre sistemas de arquivos desconhecidos em uma partição conhecida.
(Às vezes, o Windows atribui acidentalmente uma letra de unidade a um sistema de arquivos desconhecido e tentar abri-lo por meio do Windows Explorer causará um prompt "Format".)
Resumindo:
Solicitar a inicialização do disco ⇒ Nenhuma tabela de partição (MBR ou GPT) foi encontrada. O disco pode estar vazio ou pode usar uma tabela de partição não padrão, como APM.
Nenhum prompt, mas espaço não alocado mostrado ⇒ O espaço está realmente não alocado. A tabela de partição do disco não possui entradas que correspondam a essa área.
Nenhum prompt, mas uma partição desconhecida mostrada ⇒ A partição contém um sistema de arquivos não reconhecido.
Solicitar formatação do disco ⇒ A partição contém um sistema de arquivos não reconhecido.
Vamos primeiro explicar como funciona um disco rígido.
Um disco rígido tem espaço, obviamente. Você cria um esquema de partição em toda a unidade e o preenche com partições. Uma partição é uma reserva no espaço da partição com um tamanho fixo. (esta é uma explicação muito básica. Se eu adicionar RAID à mistura, temo que a resposta fique complexa e desnecessária)
Se o seu disco rígido tiver apenas uma partição e seu tamanho for menor que o tamanho do disco rígido, sobrará espaço para outra partição. Este bit é chamado de espaço não alocado.
Agora, isso significa que você sempre pode criar uma partição lá? Não. É possível que outro SO tenha criado uma partição naquele espaço que não é familiar para o seu SO.
Se for esse o caso, seu sistema operacional verá isso como uma partição desconhecida ou, na pior das hipóteses, como espaço não alocado. Se você criar uma partição em um espaço não alocado que é realmente alocado por outro sistema operacional, você destruirá a partição anterior na maioria dos casos.
Existe outra possibilidade, a unidade possui um esquema de partição que não é familiar ao seu sistema operacional. Se for esse o caso, o sistema operacional pensará que a unidade não foi inicializada e solicitará que você a inicialize. No Windows, será GPT ou MBR, mas há casos conhecidos em que a unidade (ou cartão SD, etc.) é formatada para um dispositivo especial e seu formato exclusivo é uma forma de segurança.
Um disco rígido (ou seu equivalente, como um pen drive USB) por convenção possui uma tabela de partições. Uma tabela de partição estilo MBR ( registro mestre de inicialização ) cabe em um setor (512 bytes) no início da unidade (setor número 0). Um MBR também contém um carregador de inicialização , de modo que o espaço da tabela de partições é limitado a quatro partições "primárias" (embora alguns softwares dos anos 80 suportassem oito partições). Cada entrada de partição MBR tem:
Como um máximo de quatro partições logo se tornou intolerável, um mecanismo para partições adicionais foi " partições estendidas " no MBR, onde uma partição especialmente marcada pode ter um MBR incorporado contendo outra tabela de partições. Assim, é possível dividir um disco em dezenas de partições, embora algumas ferramentas de particionamento possam impor algum limite artificial.
Uma GPT não está intrinsecamente limitada a quatro partições. Seu básico ocupa mais de 512 bytes em disco, geralmente algo na faixa de 4 a 16 megabytes. Mas o significado das partições é o mesmo.
A tabela de partição de um disco que contém todos os setores do disco não possui "espaço não alocado" pelo uso mais comum da frase. Portanto, a resposta usual à sua pergunta é que o espaço não alocado está fora de todas as partições . No entanto, a ambigüidade da terminologia ocorre se uma partição for marcada como tipo zero (raw), portanto, possivelmente pode existir uma ferramenta que considere uma partição bruta como, em certo sentido, não alocada.
Isso significa que não há tabela de partição ou todas as entradas de partição estão vazias. O Windows fica feliz em ignorar sistemas de arquivos não reconhecidos.
É uma convenção de disco rígido observada por todos os sistemas operacionais padrão que suportam software de PC. Não tenho certeza do que significa "em outras palavras" . Sim, é possível gravar em espaço não alocado (mesmo no Windows), mas a etiqueta adequada é criar uma partição contendo o espaço não alocado, formatar um sistema de arquivos dentro dela (que grava no "espaço não alocado") e, em seguida, gravar arquivos e diretórios para ele.
Para um sistema bem comportado, não. Os sistemas cooperativos requerem sistemas de arquivos, permissões definidas apropriadamente, etc. No entanto, seria trivial no Linux (por exemplo) abrir o próprio disco como um arquivo grande (acesso ao disco bruto) e gravar diretamente nele. Isso exigiria acesso administrativo e algumas orientações ou cálculos para determinar onde escrever.
No entanto, ignorar sistemas de arquivos e partições é ruim . Eles melhoram muito o gerenciamento de disco e tornam a vida muito mais fácil e sensata. Em última análise, é possível escrever um software renegado que ignore completamente a sanidade e as boas maneiras e grave em qualquer lugar do disco que desejar.
No entanto, a metanice que percebo a partir desta pergunta pode ser um mal-entendido se você pretende obedecer às permissões e limites impostos pelo modo não administrador/sem sistema no Windows, Linux, etc.
Outras respostas já contam muito, apenas adicionarei um pouco mais de detalhes para preencher algumas lacunas.
Uma das perguntas que o autor faz é:
Na verdade, você não precisa nem dentro do Windows. Mas o diabo está nos detalhes:
Em um nível baixo, o disco rígido é apenas um monte de bytes que podem ser lidos e gravados. Cada byte tem um número - o 1º byte, o 2º byte, etc. E... é isso. Apenas um monte de bytes numerados. Observe que não há conceito de "arquivo" ou "diretório" ou "partição" ou qualquer outra coisa. Quando um sistema operacional deseja ler ou gravar na unidade, no nível mais baixo, ele apenas diz "por favor, me dê os bytes 123 a 456" ou "por favor, escreva esses dados nos bytes 789 a 1234". Ou algo assim.
Na verdade, você também pode facilmente escrever um programa como esse. Se você é um programador, tudo o que precisa fazer é abrir um nome de arquivo especial
\\.\PhysicalDrive0
como um arquivo normal e obter acesso total a TODOS os bytes na unidade, exatamente como foram gravados. (Observação: isso é no Windows. No Linux, você abre um dos arquivos/dev
e outros sistemas operacionais ainda podem ter outros mecanismos)Lembre-se, você precisará de privilégios de administrador para isso, pois obtém acesso a todas as informações confidenciais da unidade. Mas fora isso, é só isso. Eu mesmo fiz isso.
Agora, na verdade, eu menti um pouco para você. Uma pequena mentira inocente. A unidade não lida com bytes individuais. Ele lê e escreve dados em "setores". Isso é apenas um nome chique para "um monte de bytes de cada vez". Para unidades do tipo "ferrugem giratória", os setores geralmente têm 512 bytes de tamanho. Portanto, quando você lê ou grava na unidade, precisa fazer isso em blocos grandes de 512 bytes. Portanto, o Windows realmente diz à unidade "obtenha-me os setores 1 a 5" ou "escreva nos setores 6 a 8". Mas isso realmente não muda toda a ideia.
Os SSDs geralmente têm setores maiores e os tamanhos podem variar entre as unidades. Normalmente são 4096 bytes, mas existem unidades com setores de 2048 bytes e provavelmente outros valores também. Novamente - realmente não importa, apenas algo para se manter em mente. O sistema operacional geralmente o abstrai e permite que você leia e escreva o que quer que seja e, em seguida, faz um pouco de trabalho extra para garantir que o resultado seja o que você espera.
O próximo passo são as "tabelas de partição" que wallyk explicou muito bem em sua resposta .
As tabelas de partição não são nada com o qual a unidade se preocupa - tudo o que importa é ler e gravar setores de bytes. Mas nós, humanos, gostaríamos de dividir o drive em "partições" e é aí que entram as tabelas de partições. Uma tabela de partições é, por convenção, armazenada bem no início do drive. Provavelmente também está documentado em algum padrão em algum lugar, para que todas as ferramentas e sistemas operacionais tenham o mesmo entendimento sobre eles.
A tabela MBR (Master Boot Record) é um padrão mais antigo, existe desde 1982. Como naquela época ninguém sequer sonhava com SSDs ou setores diferentes de 512 bytes, o MBR foi projetado para ocupar exatamente 1 setor (512 bytes) e tinha um monte de outras limitações, particularmente relacionadas a tamanhos de unidade maiores.
Eventualmente, as unidades ficaram grandes o suficiente para que o MBR não fosse suficiente, e o GPT (GUID Partition Table) foi introduzido para contornar esses limites.
Agora, seja qual for o formato que você usar, tudo o que a tabela de partições realmente diz é algo como "A partição 1 existe nos setores 50 a 5000 e é formatada com o sistema de arquivos FAT32; A partição 2 existe nos setores 5001 a 10000 e é formatada com o sistema de arquivos EXT4" e assim por diante.
A partir disso, o sistema operacional pode encontrar as partições reais e analisar os sistemas de arquivos. E é aí que você obtém arquivos, pastas, permissões e outras coisas que o sistema operacional fornece. Isso tudo é feito em software.
E aqui está outra coisa a observar - como eu disse, as tabelas de partição são uma convenção , não uma necessidade. O hardware não se importa com isso, o software sim. Assim, você pode usar uma unidade mesmo sem uma. Por exemplo, hoje em dia, é prática comum usar o LVM no Linux para gerenciar seus discos rígidos (é uma longa história). E uma possibilidade com isso é adicionar uma unidade inteira ao pool de dispositivos gerenciados pelo LVM. Nesse caso, não haverá tabela de partições na unidade - o LVM irá gerenciá-la.
Imagine um HDD como um quadro magnético para crianças
Quando você pegar uma prancha pela primeira vez, ela não será completamente branca, mas uma mistura confusa de preto e branco sem sentido. Antes de poder ler ou escrever algo, primeiro você terá que apagar uma parte do quadro, onde deseja escrever. E como um disco rígido pode armazenar todo tipo de dados, você também terá que criar algumas informações iniciais (geralmente logo no início), que definem que tipo de dados estarão no disco.
Eu poderia, por exemplo, escrever um padrão de pontos no canto superior esquerdo para designar o conteúdo do quadro a ser escrito em inglês. Ou outro padrão, que indicaria uma imagem. Ou um padrão complexo, que dividiria o quadro em quatro partes e definiria que o quarto superior esquerdo conterá uma imagem, o superior direito conterá texto em inglês e os dois da metade inferior estarão vazios e prontos para novos dados. (E basta escrever no padrão "a metade inferior está vazia" e não preciso limpar esta parte completamente, pois ninguém tentará ler o conteúdo deste espaço, porque está designado como "vazio" )
Dessa forma, o sistema operacional geralmente grava um padrão claro no início de uma unidade, que pode ser usado para identificar quais outros dados estão gravados na unidade e onde podem ser encontrados. Essas partes são a Tabela de Partição e o Descritor do Sistema de Arquivos.
Dados desconhecidos não são facilmente distinguíveis do ruído
Quando um sistema operacional encontra um HDD, ele geralmente tenta ler os primeiros bytes da unidade para identificar um determinado padrão. A maioria dos sistemas operacionais conhece vários formatos diferentes de como uma unidade pode ser particionada e tenta encontrar os marcadores conhecidos (registro mestre de inicialização, tabelas de partição, ...) para identificar o conteúdo da unidade. - Se um sistema operacional (como o Windows) não consegue encontrar um padrão que reconheça, ele não sabe se a unidade está apenas "vazia" (cheia de ruído aleatório, como um quadro magnético após sacudi-lo) ou se está apenas em um formato que não conhece.
Portanto, o "espaço não alocado" são apenas dados irreconhecíveis sem nenhum padrão identificável para o sistema operacional. Se você optar por criar uma partição neste espaço, o sistema operacional simplesmente sobrescreverá os primeiros bytes e criará um padrão de dados, que basicamente diz "Esta unidade conterá arquivos nesta estrutura e atualmente tudo após esta nota está vazio e pode ser substituído" e depois disso todos os arquivos que você copiar na unidade serão gravados na estrutura definida nesta nota.
Casos especiais de "espaço não alocado"
Espaço irreconhecível em um disco rígido pode ser um sistema de arquivos desconhecido. Ou pode ser uma partição oculta gerada por um software de criptografia como o VeraCrypt - que é projetado para que os dados criptografados ocultos se pareçam com ruído aleatório em um disco não alocado. Outro caso pode ser um sistema de arquivos danificado. Se o disco rígido sofrer algum dano, o padrão inicial pode ser quebrado, de modo que o sistema não pode mais reconhecer o sistema de arquivos, mesmo que seja de um tipo conhecido. Nesse caso, você precisaria de algum software de recuperação, que tenta reconstruir as informações sobre o sistema de arquivos, para que os dados originais possam ser acessados novamente.
Ferramentas para acessar dados brutos
Existem também ferramentas para Windows/Linux, que permitem acessar os dados brutos de um HDD. Essas ferramentas não se importarão se uma unidade estiver particionada ou contiver apenas ruído aleatório; se você usá-las, poderá visualizar a unidade em sua totalidade, assim como o quadro magnético. Lá você verá uma quantidade gigante de números e símbolos de aparência aleatória, que geralmente são interpretados por um driver de sistema de arquivos no sistema operacional para permitir que você veja uma estrutura de arquivos e pastas.
Se você estiver interessado em saber como funcionam os sistemas de arquivos, poderá examinar uma unidade com essas ferramentas e ver as tabelas de partição por si mesmo.