Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 01-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Antes de nada, tengo mis dudas sobre si trastear con el MBR desde windows sea buena idea. Pero que demonios, mientras no arda ...

En principio el MBR es el primer sector del disco, es decir los primeros 512 bytes. Simplemente con el programa Dump que pongo mas arriba podriamos copiarlo, escribirlo ya es una operacion mas complicada y peligrosa.

A modo de prueba, teclea lo siguiente:
Código:
  dump /d \\.\Physicaldrive0 > c:\imagen.bin
Esto crea una imagen del primer disco duro, Physicaldrive1 para el segundo, etc. Fíjate que estoy hablando de discos duros y no de particiones.

Código:
  \\.\Physicaldrive0  --> Primer disco duro
  \\.\C: --> Primera particion
Cuando ejecutamos el comando anterior, como mi programa esta preparado para crear imágenes enteras, se pondrá a copiar cientos de sectores por segundo como un loco así que pulsa Ctrl+C para pararlo. Ahora el archivo C:\imagen.bin contienen los primeros sectores del disco duro. Los que nos interesan son los primeros 512 bytes que corresponden al MBR. Como te dije esta es una forma un poco cutre de hacerlo, solo es una demostracion.

Ahora es cuando explico como funciona. Si conoces C y le has echado un vistazo al código ya tendrás una idea de como trabaja el programa. Es muy simple la API CreateFile permite abrir un disco como si se tratara de un archivo, y utilizar las API WriteFile y ReadFile para escribir y leer. La única limitación es que siempre se debe leer y escribir un numero de bytes múltiplo del tamaño del sector, es decir, si cada sector mide 512 bytes, puedes leer 512, 1024, 2048, etc pero no 1000 bytes.

Después de todo este rollo, podemos sacar en claro que utilizando CreateFile y ReadFile puedes leer los primeros 512 Bytes, el MBR, y usando WriteFile podemos escribirlo. El problema es que tienes el MBR roto como vas a iniciar windows y así ejecutar el programa de recuperación aunque una aplicación útil/divertida es copiar el MBR del disco duro y grabarlo en el primer sector de un disquete. Si el sector de arranque se estropea solo tienes que insertar el disquete y arrancar el equipo, el MBR hace su trabajo y arranca el sistema.

Por hoy ya solté mucho rollo, si el tema te interesa podemos seguir hablando.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Codigo fuente programa P2P Niko Varios 2 11-07-2007 09:27:40
Código fuente chinchan C++ Builder 3 01-08-2006 04:59:25
codigo fuente o programa en delphi Ravent OOP 5 27-05-2006 16:04:33
TPV.- Codigo Fuente Rabata Varios 4 15-10-2005 13:48:51
Codigo fuente programa de instalación wallesis OOP 2 08-10-2004 10:11:07


La franja horaria es GMT +2. Ahora son las 15:07:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi