Notas sobre el almacenamiento en la Samsung Galaxy Tab 7 (GT-P1000)

La Galaxy Tab 7 (GT-P1000) tiene 3 sistemas de almacenamiento:

  • Memoria flash interna
  • Tarjeta SD interna
  • Tarjeta SD externa (extraíble)

Desde el punto de vista del sistema operativo, estos dispositivos son visibles con los siguientes nombres respectivamente:

/dev/block/bml0
/dev/block/mmcblk0
/dev/block/mmcblk1

La memoria flash está dividida en áreas llamadas particiones. Algunas de ellas tienen sistemas de archivos y otras son para uso crudo. Las harramientas como ODIN o Heimdall, utilizadas para grabar custom ROMs o kernels graban en esta memoria.

La tabla de particiones de la memoria flash interna se organiza como sigue (se muestran los nombres de los dispositivos BML, así como el nombre del archivo que es grabado por ODIN en cada zona):

/dev/block/bml1   IBL+PBL:[boot.bin]           # Initial Boot Loader + Primary Boot Loader
/dev/block/bml2   PIT:[gt-p1000.pit]           # Partition Information Table
/dev/block/bml4   SBL:[sbl.bin]                # Secondary Boot Loader
/dev/block/bml5   SBL2:[sbl.bin]               # Secondary Boot Loader 2
/dev/block/bml6   PARAM:[param.lfs]            # param file system
/dev/block/bml7   KERNEL:[zImage]              # Kernel image
/dev/block/bml8   RECOVERY:[zImage]            # Kernel image for recovery
/dev/block/bml9   FACTORYFS:[factoryfs.rfs]    # Factory file system
/dev/block/bml10  DBDATAFS:[dbdata.rfs]        # dbdata file system
/dev/block/bml11  CACHE:[cache.rfs]            # cache file system
/dev/block/bml12  MODEM:[modem.bin]            # Modem firmware

Los dispositos BML (Block Management Layer) dan acceso crudo a la memoria flash, ya sea como un dispositivo único (bml0) o a por particion (bml1, bml2, etc.)

Debido a que la memoria flash se va dañando con el uso, existe una capa de software llamada STL (Sector Translation Layer) que gestiona la asignación de los bloques que “ven” los sistemas de archivos montados en la flash, y así poder balancear su uso. En los dispositivos llamados USB Drives, esta gestión se hace en la propia circuitería y no requiere intervención del sistema operativo.

Por lo anterior, el kernel expone algunas áreas de la flash como dispositivos STL (/dev/block/stlx), y sobre éstos van montados los sistemas de archivos de la siguiente manera:

/dev/block/stl3   /efs        rfs
/dev/block/stl6   /mnt/.lfs   j4fs #(verificar)
/dev/block/stl9   /system     rfs
/dev/block/stl10  /dbdata     rfs
/dev/block/stl11  /cache      rfs

La tarjeta SD interna (/dev/block/mmcblk0) también está dividida en 3 particiones:

mmcblk0p1 /mnt/sdcard    vfat
mmcblk0p2 /data          rfs
mmcblk0p3 /preload       vfat

La partición /mnt/sdcard es el área a la que el usuario tiene acceso desde las aplicaciones.

La tarjeta SD externa (/dev/block/mmcblk1) tiene una sola partición:

mmcblc1p1  /mnt/sdcard/external_sd