Программа для того чтобы восстановить MBR от подпорки:
Кодирвоание программы следующим образом:
/* Программа для того чтобы восстановить подпорку MBR от резервного файла*/
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
int result;
int count=0;
char filename[80]; /* Хранит имя архива, котор дал Потребитель */
static char dbuf[512]; /* Буфер данных 512 байт
*/
FILE *fp;
/* Получите, что потребителя input для курса резервного файла MBR */
printf("\n Войдите filename и курс резервного файла 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;
}
|