O link /dev/$disk
aponta para o conjunto de um dispositivo de bloco, mas, em um disco particionado sem espaço não alocado, a única parte que também não é representada em /dev/$disk[num]
é o primeiro 2kb-4mb ou mais -% tabela de partição do$disk
. São apenas algumas informações gravadas no dispositivo bruto em um formato que o firmware e / ou sistema operacional possam ler. Diferentes sistemas interpretam isso de maneiras diferentes e por diferentes razões. Eu cobrirei três.
-
Nos sistemas da BIOS, essa tabela é gravada no formato
MBR
registro mestre de inicialização para que o firmware possa descobrir onde encontrar o executável inicializável. Ele lê a tabela de partições porque, para inicializar as leituras da BIOS nos primeiros 512 bytes da partição, a tabela marca com o sinalizador inicializável e a executa. Esses 512 bytes geralmente contêm um bootloader (comogrub
oulilo
em muitos sistemas linux) que então carrega outro executável (como o kernel do Linux) localizado em uma partição formatada com um sistema de arquivos que o carregador entende. -
Em sistemas EFI e / ou sistemas BIOS com kernels mais recentes, essa tabela de partição pode ser um formato
GPT
tabela de partição GUID . O firmware EFI entende o sistema de arquivos FAT e procura a partição que a tabela descreve com o flag partição do sistema EFI , monta-a como FAT e tenta executar o caminho armazenado em sua variável NVRAM Boot0000- {GUID} . Esta é essencialmente a mesma tarefa que os gerenciadores de inicialização do BIOS foram projetados para fazer e, desde que o executável que você deseja carregar possa ser interpretado pelo firmware (como a maioria dos kernels Linux desde o v.3.3), obvia seu uso. O firmware EFI é um pouco mais sofisticado.
Após a inicialização, se uma tabela de partição estiver presente e o kernel a entender, /dev/${disk}1
será mapeado para o 4mb+
offset e terminará no ponto em que a tabela de partição diz. As partições realmente são apenas divisores lógicos arbitrários como:
start of disk | partition table | partition 1 | ... and so on | end of disk
Embora eu suponha que também possa ser:
s.o.d. | p.t. | --- unallocated raw space --- | partition 1 | ... | e.o.d.
Tudo depende do layout que você define na tabela de partições, o que pode ser feito com ferramentas como fdisk
para MBR
formatos ou gdisk
para GPT
formatos.
- O firmware precisa de uma tabela de partição para o dispositivo de inicialização, mas o kernel precisa de um para qualquer dispositivo de bloco subdividido no qual você deseja que ele reconheça um sistema de arquivos. Se um disco é particionado, sem a tabela, o kernel não localizaria superblocos em uma varredura de disco. Ele lê a tabela de partições e mapeia esses deslocamentos para links em
/dev/$disk[num]
. No início de cada partição, procura o superbloco . É apenas alguns kb de dados (se isso) que informa ao kernel que tipo de sistema de arquivos é. Um sistema de arquivos robusto distribuirá backups de seu superbloco em toda a sua partição. Se a partição não contém um superbloco legível que o kernel entenda, o kernel não reconhecerá nenhum sistema de arquivos.
Em qualquer caso, o ponto é que você realmente não precisa dessas tabelas em qualquer disco que não precise ser interpretado pelo firmware - como em discos dos quais você não inicializa (que também é o único funcional) Caso GPT + BIOS) - e no qual você deseja apenas um único sistema de arquivos. /dev/$disk
pode ser formatado no todo com qualquer sistema de arquivos que você goste. Você pode mkfs.fat /dev/$disk
o dia inteiro se quiser - e provavelmente o Windows irá de qualquer maneira, como geralmente faz para os tipos de dispositivos que ele marca com o sinalizador removível .
Em outras palavras, é perfeitamente possível colocar um
mount /dev/$disk /path/to/mount/point
Mas se você quer partições e elas ainda não estão lá, você precisa criá-las - o que significa escrever uma tabela mapeando seus locais no início do disco - com ferramentas como fdisk
ou gdisk
como mencionado.
Tudo isso junto me faz sugerir que seu problema é um desses três:
-
o seu disco não tem tabela de partições nem sistema de arquivos
- Foi recentemente apagado, nunca usado ou é corrupto.
-
A tabela de partições do seu disco não é reconhecida pelo seu kernel do sistema operacional
- BIOS e EFI não são os únicos tipos de firmware. Isso é especialmente verdadeiro no domínio móvel / incorporado, onde um cartão SDHC pode ser especialmente útil, embora muitos desses dispositivos usem camadas de sistemas de arquivos menos sofisticados que confundem as linhas entre um sistema de arquivos e uma tabela de partição.
-
o seu disco não tem tabela de partições e é formatado com um sistema de arquivos não reconhecido pelo seu kernel do sistema operacional
Depois de reler seu comentário acima, tenho quase certeza de que é o último caso. Eu recomendo que você pegue um manual na tv, tente descobrir se você pode pegar qualquer sistema de arquivos que esteja usando carregado como um módulo do kernel em um desktop Linux e monte o disco lá.