Fatos:
- VTOC (ou EFI) é necessário para acessar fatias de um dispositivo de disco
- s2 slice é usado para acessar o disco inteiro (incluindo o VTOC no início do disco)
- novo dispositivo de disco vem sem VTOC
- system: Solaris 10 OS, na arquitetura SPARC
Pergunta:
Como pode ser, esse formato é capaz de gravar o VTOC em um disco se ele não tiver um VTOC?
Pergunta em detalhes:
Para criar o VTOC, o formato precisa escrever s2. Para escrever s2, o VTOC precisa existir. Simplificado: para criar VTOC, o VTOC precisa existir. Como esse problema de galinha e ovo é evitado pelo formato?
ext # 1: se eu rotular um disco não rotulado (c2t5006016041E076B0d8s2), ocorrerá o seguinte:
[...]
11157: open("/dev/rdsk/c2t5006016041E076B0d8s2", O_RDWR|O_NDELAY) = 3
[...]
11157/1: write(1, " D i s k n o t l a b".., 33) = 33
11157/1: read(0, 0xFF2B9CD0, 1024) (sleeping...)
11157/1: read(0, " y\n", 1024) = 2
11157/1: open("/dev/rdsk/c3t5006016141E076B0d8s0", O_RDONLY|O_NDELAY) = 4
11157/1: ioctl(4, 0x0417, 0xFFBFED80) Err#22 EINVAL
11157/1: close(4) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF52C) = 0
11157/1: ioctl(3, 0x0402, 0xFFBFF644) = 0
11157/1: ioctl(3, 0x0418, 0xFFBFF670) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF5B4) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF5B4) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF5B4) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF5B4) = 0
11157/1: ioctl(3, 0x04C9, 0xFFBFF5B4) = 0
11157/1: write(1, "\n\n F O R M A T M E N".., 15) = 15
[...]
quais são as chamadas ioctl ()? Eles fazem o trabalho de forma limpa, mas quais são essas chamadas, na verdade?