백업에서 MBR를 복구하는 프로그램:
프로그램의 코딩은 다음과 같이 이다:
/* 백업 파일에서 MBR의 백업을 복구하는 프로그램 */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
int result;
int count=0;
char filename[80]; /* user가 주어진 파일 이름을 저장한다 */
static char dbuf[512]; /* 512의 바이트의 자료 버퍼 */
FILE *fp;
/* 사용자를 MBR 백업 파일 경로를 위해 입력하는 얻으십시오 */
printf("\n MBR의 백업 파일의 파일 이름 그리고 경로에 들어가십시오 \n ");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("백업 파일을 열 수 없고, 나가기 위하여 누르지 않는다 어떤 열쇠도…");
getch();
exit(1);
}
/* MBR 자료는 정확한 바이트 512의 이어야 한다*/
while(count<512)
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
fclose(fp);
printf("하드 디스크 드라이브에 쓰는 것을 시도:\n");
dinfo.drive = 0x80; /* 첫번째 하드 디스크를 위한 드라이브 수 */
dinfo.head = 0; /* 디스크 맨 위 수 */
dinfo.track = 0; /* 대위 수*/
dinfo.sector = 1; /* 분야 수 */
dinfo.nsectors = 1; /*분야 조사*/
dinfo.buffer = dbuf; /*자료 버퍼 */
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{
printf("디스크 분야에 MBR의 백업 복구: 성공.\n");
}
else
printf("하드 디스크 드라이브, 상태에 쓸 수 없다 =
0x%02x\n", result);
return 0;
}
|