Quero entender como fazer uma nova fatia sem usar o formato. Esta é a situação original (funcionando)
* /dev/rdsk/c0t2d0s2 partition map
*
* Dimensions:
* 512 bytes/sector
* 63 sectors/track
* 255 tracks/cylinder
* 16065 sectors/cylinder
* 2608 cylinders
* 2606 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* Unallocated space:
* First Sector Last
* Sector Count Sector
* 41495895 369495 41865389
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
1 9 00 16065 20980890 20996954
2 9 00 20996955 10490445 31487399
3 9 00 31487400 10008495 41495894
8 1 01 0 16065 16064
O tamanho das partições (melhor fatia) é de 10 GB para a primeira, 5 GB para a segunda e 4,77 GB para a terceira.
Quero criar uma quarta fatia (número 4) com um tamanho de 2 GB e reduzir a terceira para 2 GB
Eu edito este arquivo (salvando o antigo como backup)
* /dev/rdsk/c0t2d0s2 partition map
*
* Dimensions:
* 512 bytes/sector
* 63 sectors/track
* 255 tracks/cylinder
* 16065 sectors/cylinder
* 2608 cylinders
* 2606 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* Unallocated space:
* First Sector Last
* Sector Count Sector
* 41495895 369495 41865389
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
1 9 00 16065 20980890 20996954
2 9 00 20996955 10490445 31487399
3 9 00 31487400 4194304 35681703
4 9 00 35681704 4194304 41865389
8 1 01 0 16065 16064
O tamanho parece estar correto (2048 mb para cada fatia)
4194304*512 = 2147483648
2147483648*1024 = 2199023255552
2199023255552/1024 = 2147483648
2147483648/1024 = 2097152
2097152/1024 = 2048
Mas quando tento criar a nova tabela de partição...
fmthard -s file.map /dev/rdsk/c0t2d0s2
Partition 3 not aligned on cylinder boundary: " 3 9 00 31487400 4194304 35681703"
Onde está minha falha? Eu sei que o formato é muito fácil, mas eu quero aprender desse jeito também.
Solução/solução alternativa encontrada. Eu sigo a "regra do cilindro". Você pode criar qualquer tamanho que quiser (claro, sem exceder o tamanho do disco e), mas cada fatia deve ser "composta" de um tot de cilindros que devem ser "vinculados" a uma fatia, por exemplo: partição 1 usa 1-1000 cilindros, 2 usa 1001-1500, etc. e isso está correto, partição 1 usa 1-1000 cilindros e 2 usa 1000-1500 não está correto porque um cilindro não pode ser "compartilhado", primeiro calcule o tamanho do cilindro, para evitar cálculos matemáticos chatos, criei uma fatia de 1 cilindro com formato
Então, se eu quiser criar uma fatia de 3000 MB, tenho que calcular quantas unidades de 7,84 MB (tamanho do cilindro) posso usar para "alcançar" 3000 MB
Eu fiz esses cálculos
O resultado final é 6136830 setores (2,93 GB) e é o resultado de 382*16065
Então edito o arquivo para usar a primeira partição de 10 GB e a 2, 3 e 4 de 3.000 MB.
Vai funcionar? Sim
Testando newfs e mount funciona.
EDIT: Também descobri que nem todos os tamanhos funcionam, se falhar, encontrei esta solução alternativa
Esta configuração não funciona
este sim (eu removo 1 setor do tamanho final da partição anterior e adiciono +1 ao início da próxima partição, finalmente -1 setor removido do setor final da última/próxima partição)
esperando uma explicação melhor e uma fórmula correta para calcular cada tamanho de partição, considerarei esta solução alternativa válida.
EDIT2: Eu tentei minha solução alternativa e funciona bem. Quero adicionar uma partição de 9 GB
Esta configuração me dá o erro "Partição 4 não alinhada no limite do cilindro"
Isso funciona perfeitamente
mesmo o newfs não retorna nenhum erro (exceto um aviso para alguns setores não alocados)