2011-03-10 3 views

Répondre

1

sda/sdb, etc, sont le dispositif de bloc représentant la totalité du disque. Lorsque le disque est partitionné, vous verrez le sda1, sdc1, etc. Ces périphériques de bloc sont utilisés pour accéder uniquement à cette partition.

Je ne suis pas familier avec le code spécifique, mais nous espérons que cela aidera à vous orienter dans la bonne direction.

0

Un code sage point de départ de l'enquête utile serait fonction disk_name(), définie dans block/partition-generic.c:

/* 
    * disk_name() is used by partition check code and the genhd driver. 
    * It formats the devicename of the indicated disk into 
    * the supplied buffer (of size at least 32), and returns 
    * a pointer to that same buffer (for convenience). 
    */ 

    char *disk_name(struct gendisk *hd, int partno, char *buf) 
    { 
      if (!partno) 
        snprintf(buf, BDEVNAME_SIZE, "%s", hd->disk_name); 
      else if (isdigit(hd->disk_name[strlen(hd->disk_name)-1])) 
        snprintf(buf, BDEVNAME_SIZE, "%sp%d", hd->disk_name, partno); 
      else 
        snprintf(buf, BDEVNAME_SIZE, "%s%d", hd->disk_name, partno); 

      return buf; 
    } 
Questions connexes