PDA

Ver la Versión Completa : Acceso a disco mediante Interrupciones


atani123
30-04-2014, 16:35:33
Para empezar quiero pedir disculpas sino estoy en el hilo correcto pero no sabia donde solicitar la ayuda.

Soy programador con bastantes años de experiencia, antes Turbo Pascal y luego Delphi. El caso es que necesito realizar una aplicacion de backup, al estilo Ghost o Clonezilla. Hasta aqui todo bien, la he realizado con mas o menos compresion de ficheros y demas, el problema que tengo es su lentitud. Puesto que debe leer sector a sector y hacer una imagen del disco no he encontrado otra forma de acceder al disco que no sea a traves de interrupciones, el software funciona bien, pero debido a limitaciones del DOS solo puedo leer 127 bloques de un golpe por lo que se hace eterno. Para poner un ejemplo:
Arranca FreeDos entro en modo grafico sale el logo de mi empresa y permito realizar un backup o un restore. Hasta ahora el disco a copiar era una SD de 8Gb (alrededor de 35 minutos), es lento, pero puede aceptarse. El problema es que ahora el fabricante me ha cambiado la SD de 8GB a 16Gb y el tiempo estimado es de 2 horas.

Alguien tiene idea de como acceder al disco de forma mas eficiente o tiene una idea o yo que se que.

Se que lo correcto seria acceder a la tabla de particiones y copiar solamente los ficheros existentes pero vamos que no se muy bien como interpretar la tabla con los nuevos sistemas operativos Windows 7 y demas.

Gracias de nuevo

nlsgarcia
01-05-2014, 19:17:09
atani123,


...necesito realizar una aplicación de backup...debe leer sector a sector y hacer una imagen del disco...


Revisa esta información:

Read Sectors from Disk (http://www.delphipages.com/forum/showthread.php?t=94304)

Absolute HDD Sector Reading (http://www.delphigroups.info/2/a9/74486.html)
Espero sea útil :)

Nelson.

atani123
05-05-2014, 08:55:52
Gracias Nelson pero precisamente ese es el problema.

Debo de acceder desde msdos, freedos o algun sistema operativo similar, incluso podria ser linux. Pero debe de ser libre sin necesidad de licencia. A traves de windows he encontrado varias formas de hacerlo, pero desde msdos con pascal no soy capaz.

A traves de la int 13 puedo realizar la lectura y el acceso a disco sin problemas, el problema es la lentitud, ya que puede leer un maximo de 127 bloques * 512 bytes cada bloque. Un total del 65024 bytes pero esto es una limitacion del sistema operativo y cuando realizo la lectura de un disco de 16Gb esto va muy lento por eso busco alguna idea pero bajo entorno DOS-

Casimiro Notevi
05-05-2014, 09:36:32
...y cuando realizo la lectura de un disco de 16Gb esto va muy lento... Seguramente no es lento, sino que son 16 GB :rolleyes: