lunedì 9 luglio 2012

fdisk: Class not found

All'atto dell'inizializzazione di un nuovo disco in FreeBSD mediante fdisk mi sono trovato in console un errore piuttosto strano: "Class not found".
L'errore e' in realta' fittizio, ovvero fdisk fa correttamente il suo lavoro, e l'errore puo' essere tranquillamente ignorato. Incuriosito ho pero' spulciato i sorgenti alla ricerca dello strano messaggio ed e' risultato che l'errore proviene da geom_ctl.c che effettua il seguente pezzo di codice:



static void                                                                              
g_ctl_req(void *arg, int flag __unused)                                                  
{                                                                                        
        struct g_class *mp;                                                              
        struct gctl_req *req;                                                            
        char const *verb;                                                                
        g_topology_assert();                                   

       req = arg;                                                                        
       mp = gctl_get_class(req, "class");                                                
       if (mp == NULL) {                                                                 
                gctl_error(req, "Class not found");                                      
                return;                                                                  
        }






dal quale si nota appunto l'errore di cui sopra. Non sono un esperto di GEOM, ma il mio sospetto e' che il layer di accesso al disco si aspetti di trovare una classe configurata, cosa impossibile perche' il disco non e' ancora stato inizializzato, e quindi lanci un errore GEOM che non si riflette di fatto su fdisk. In altre parole, penso che l'accesso al disco da parte di fdisk faccia scattare il meccanismo GEOM, che si trova impossibilitato a procedere e quindi ripassa la "palla" a fdisk stesso che procede alla scrittura di basso livello. Ma questa e' solo una possibile intuizione del problema....




Nessun commento: