ArYiXb
2013-05-22 01:55:49 UTC
CC'd lug-devel
Llegó hasta mis garras un dispositivo que aparenta ser
un pendrive Kingston DT310 256GB, desconozco el origen
dado que me lo trajo un técnico diciendo que era de un cliente el cual
lo habria comprado en MC.
al conectarlo:
[142446.025124] sd 35:0:0:0: Attached scsi generic sg4 type 0
[142446.026090] sd 35:0:0:0: [sdd] 524288000 512-byte logical blocks: (268
GB/250 GiB)
[142446.026568] sd 35:0:0:0: [sdd] Write Protect is off
[142446.026571] sd 35:0:0:0: [sdd] Mode Sense: 03 00 00 00
[142446.027069] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.027073] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.030446] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.030452] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.472685] sdd:
[142446.474788] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.474802] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.474805] sd 35:0:0:0: [sdd] Attached SCSI removable disk
aparentemente tiene dibujada la cantidad de bloques 524288000 * 512 / 1024
= 256GB
Lo primero que escuché sobre esto me daba una cuenta clara, me contaron de
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.
----------------------------cortar----------------------------
#include <stdio.h>
#define BLOCK_SIZE 512
int main(int argc, char *argv[]){
char data[BLOCK_SIZE];
FILE *f = fopen(argv[1], "r");
if(f==NULL) return 1;
unsigned long sectores=0;
size_t leidos=0;
printf("Leyendo el dispositivo %s....\n", argv[1]);
do {
leidos = fread(data, BLOCK_SIZE, 1, f);
++sectores;
} while(leidos);
fclose(f);
printf("sectores leidos: %lu * %d bytes = %lu\n", sectores, BLOCK_SIZE,
sectores*BLOCK_SIZE);
return 0;
}
/*
* probado con gcc 4.7.2 y clang 3.0
* gcc -std=c89 -Wall -o pentruch pentruch.c
* uso (root):
* ./pentruch /dev/sdX
*
Copyright (c) <2013> <H. Gabriel Máculus>
Se autoriza por la presente, de forma gratuita, a cualquier
persona que haya obtenido una copia de este software y
archivos asociados de documentación (el "Software"), para tratar en el
Software sin restricción, incluyendo sin ninguna limitación en lo que
concierne
los derechos para usar, copiar, modificar, fusionar, publicar,
distribuir, sublicenciar, y / o vender copias de este
Software, y para permitir a las personas a las que se les proporcione el
Software para
hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso
tendrá que ser incluido en todas las copias o partes sustanciales de
este Software.
EL SOFTWARE SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN
TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A GARANTÍAS DE
MERCANTIBILIDAD, CAPACIDAD DE HACER Y DE NO INFRACCIÓN DE COPYRIGHT. EN
NINGÚN
CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE
NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES,
YA SEA EN UN LITIGIO, AGRAVIO O DE OTRO MODO,
DERIVADAS DE, OCASIONADAS POR CULPA DE O EN CONEXION CON EL
SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.
*/
----------------------------cortar----------------------------
Llegó hasta mis garras un dispositivo que aparenta ser
un pendrive Kingston DT310 256GB, desconozco el origen
dado que me lo trajo un técnico diciendo que era de un cliente el cual
lo habria comprado en MC.
al conectarlo:
[142446.025124] sd 35:0:0:0: Attached scsi generic sg4 type 0
[142446.026090] sd 35:0:0:0: [sdd] 524288000 512-byte logical blocks: (268
GB/250 GiB)
[142446.026568] sd 35:0:0:0: [sdd] Write Protect is off
[142446.026571] sd 35:0:0:0: [sdd] Mode Sense: 03 00 00 00
[142446.027069] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.027073] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.030446] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.030452] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.472685] sdd:
[142446.474788] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.474802] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.474805] sd 35:0:0:0: [sdd] Attached SCSI removable disk
aparentemente tiene dibujada la cantidad de bloques 524288000 * 512 / 1024
= 256GB
Lo primero que escuché sobre esto me daba una cuenta clara, me contaron de
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.
----------------------------cortar----------------------------
#include <stdio.h>
#define BLOCK_SIZE 512
int main(int argc, char *argv[]){
char data[BLOCK_SIZE];
FILE *f = fopen(argv[1], "r");
if(f==NULL) return 1;
unsigned long sectores=0;
size_t leidos=0;
printf("Leyendo el dispositivo %s....\n", argv[1]);
do {
leidos = fread(data, BLOCK_SIZE, 1, f);
++sectores;
} while(leidos);
fclose(f);
printf("sectores leidos: %lu * %d bytes = %lu\n", sectores, BLOCK_SIZE,
sectores*BLOCK_SIZE);
return 0;
}
/*
* probado con gcc 4.7.2 y clang 3.0
* gcc -std=c89 -Wall -o pentruch pentruch.c
* uso (root):
* ./pentruch /dev/sdX
*
Copyright (c) <2013> <H. Gabriel Máculus>
Se autoriza por la presente, de forma gratuita, a cualquier
persona que haya obtenido una copia de este software y
archivos asociados de documentación (el "Software"), para tratar en el
Software sin restricción, incluyendo sin ninguna limitación en lo que
concierne
los derechos para usar, copiar, modificar, fusionar, publicar,
distribuir, sublicenciar, y / o vender copias de este
Software, y para permitir a las personas a las que se les proporcione el
Software para
hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso
tendrá que ser incluido en todas las copias o partes sustanciales de
este Software.
EL SOFTWARE SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN
TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A GARANTÍAS DE
MERCANTIBILIDAD, CAPACIDAD DE HACER Y DE NO INFRACCIÓN DE COPYRIGHT. EN
NINGÚN
CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE
NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES,
YA SEA EN UN LITIGIO, AGRAVIO O DE OTRO MODO,
DERIVADAS DE, OCASIONADAS POR CULPA DE O EN CONEXION CON EL
SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.
*/
----------------------------cortar----------------------------
--
salu
--ArYiX
salu
--ArYiX