4 votos

Encontrar el tamaño del sector físico de USB / SOLID STATE DRIVE fdisk & stat

Actualmente, trato de encontrar una forma de prueba BULLET para encontrar el tamaño de sector de un dispositivo basado en FLASH (prueba con memoria USB), sin obtener una respuesta convincente en ningún otro lugar

usando stat me da el tamaño = 4096 bytes

 struct stat info;
const char* device = "/dev/sdc";
if (stat(device, &info))
{
    std::cout << "stat() error" << strerror(errno) << "\r\n";
    exit(1);
}

std::cout << "Prefered block size for '" << device << "' is " << info.st_blksize << " byte" << std::endl;
 

pero fdisk dice 512 bytes

 Disk /dev/sdc: 3.8 GiB, 4047503360 bytes, 7905280 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
 

¿Hay alguna otra manera en que pueda confiar?

1voto

Josue Espinosa Puntos 108

stat() informa el tamaño de bloque preferido del sistema de archivos, no del dispositivo subyacente.

La mayoría de los dispositivos de almacenamiento masivo USB, especialmente los más económicos, como las unidades flash, informarán los sectores de 512 bytes por razones de compatibilidad. Es probable que el tamaño real de bloque de la memoria flash subyacente sea mucho más grande, pero no está expuesto por el dispositivo, por lo que no hay forma de detectarlo desde el software.

0voto

Louis Puntos 121

La mayoría de los discos modernos de uso Formato Avanzado.

Los discos de Formato avanzado traducir cada una de 4096 bytes sector físico en ocho Lógico de 512 bytes sectores. Para el firmware, sistema operativo y las utilidades de disco, el disco parece haber sectores de 512 bytes, aunque la física subyacente el tamaño del sector es de 4.096 bytes.

Fdisk en las últimas versiones de Linux ahora informa el tamaño de sector lógico, en lugar de la física, que es la razón de la inconsistencia que notado.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: