MBR의 분할 테이블에서 분할 입장을 삭제하기 위하여 분할을 삭제하는 쓰기 프로그램,

Files Recovery Software
연락처 세부 정보 고객 지원 다운로드 데모 제품  

 
 

분할을 삭제하는 쓰기 프로그램

분할을 삭제하는 프로그램은 분쟁 해결 목적을 위해 사용된다. 예를 들면 당신은 당신의 디스크에 있는 FAT32 파일 시스템 분할이 있었다고, 추정하십시오. 지금 당신은 당신의 디스크에 있는 리눅스 운영 체계를 동시로 설치하는 것을 결정했다.

만약에 무엇이든을, 운영 체계의 임명이 중간에 중단되는 방법 MBR의 분할 테이블에 수정이 할 경우의, 단계에서. 그런 경우에는 당신이 다른 운영 체계를 설치하기 위하여 가고 있던, 분할이 접근하기 어렵게 된ㄴ다는 것을 많은 가능성이 있다.

이 경우에는 분실된 분할의 디스크 공간은 접근하기 어려운 때문에 무용하게 된다. , 우리가 다시 이 공간을 DOS의 FDISK 명령을 사용하여 쓸모 있는 해 좋은 방법 그러나 우리가 분할 테이블에서 저 분할의 분할 정보를 무엇이든 삭제하는 경우에.

MBR의 분할 테이블에서 분할 입장을 삭제하는 프로그램은 다음 주어졌다:

/* MBR의 분할 테이블에서 두번째 분할 입장을 삭제하는 프로그램 */

# include <bios.h>

/* 분할 테이블에서 분할 입장을 읽는 구조 */

struct partition
{
/* Active Partition Byte */
unsigned char bootable ;

/* Starting Head */
unsigned char start_side ;

/* 분야와 실린더 수 시작의 조합 */

unsigned int start_sec_cyl ;

/* File system Indicator Byte */
unsigned char parttype ;

/* Ending Head */
unsigned char end_side ;

/* 분야와 실린더 수 시작의 조합 */

unsigned int end_sec_cyl ;

/* 관계되는 분야 수 */
unsigned long part_beg ;

/* 분야에 있는 분할 길이 */
unsigned long plen ;
} ;

/* 읽기/쓰기 MBR에 구조 */
struct part
{

/* IPL (Initial Program Loader) */
unsigned char master_boot[446] ;

/* Partition table */
struct partition pt[4] ;

/* Magic Number */
int lasttwo ;
} ;

struct part p ;

void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* display the information of
Partition table */
getch();

p.pt[1].bootable = 0;
p.pt[1].start_side = 0 ;
p.pt[1].start_sec_cyl = 0 ;
p.pt[1].parttype = 0;
p.pt[1].end_side = 0;
p.pt[1].end_sec_cyl = 0;
p.pt[1].part_beg = 0;
p.pt[1].plen = 0;

printf("\n\n\n After Deleting the Second Partition
Entry From MBR Partition Table,");
printf("\n The Partition Table will Be Changed as
Follows: ");

/* 두번째 분할 정보를 분할에서 삭제하기 위하여
MBR의 테이블은에서 앞으로 내리침을 제거한다
biosdisk () 기능. , 분할 부주의하게 사용하지 말라
분할 테이블의 두번째 분할의 정보는
be Erased Completely. */

////// biosdisk ( 3, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* 분할의 정보를 표시하십시오
수정 후에 테이블 */
getch();

}

프로그램에 대하여 코멘트:

Uncomment MBR의 분할 테이블에서 두번째 분할을 삭제하는 biosdisk (3, 0x80, 0, 0, 1, 1 의 &p) 기능.

분할을, 그것의 모든 매개변수는 MBR에 있는 분할 테이블 입장에서 0에 삭제하기 위하여는, 놓인다. 당신이 장시간 분할을 삭제하는 경우에 항상 저것을, 저 장시간 분할의 모든 논리적인 분할 또한 될 것이다 접근하기 어렵게 기억하십시오.

기능 전시는 () MBR의 분할 테이블을 표시하기 위하여 이용된다. 기능의 코딩은 다음과 같이 이다:

/* MBR의 분할 테이블을 표시하는 기능 */

display()
{
unsigned int s_sec, s_trk, e_sec, e_trk, i, t1, t2 ;
char type[20], boot[5] ;

printf("\n\nPart. Boot Starting location Ending Location Relative Number of");

printf("\nType Side Cylinder Sector Side Cylinder Sector Sectors Sectors\n");

for ( i = 0 ; i <= 3 ; i++ )
{
if ( p.pt[i].bootable == 0x80 )
strcpy ( boot, "Yes" ) ;
else
strcpy ( boot, "No" ) ;

switch ( p.pt[i].parttype )
{
case 0x00 :
strcpy ( type, "Unused" ) ; break ;
case 0x1 :
strcpy ( type, "FAT12" ) ; break ;
case 0x2 :
strcpy ( type, "Xenix" ) ; break ;
case 0x3 :
strcpy ( type, "Xenix:usr" ) ; break ;
case 0x4 :
strcpy ( type, "FAT16<32M" ) ; break ;
case 0x5 :
strcpy ( type, "DOS-Ext." ) ; break ;
case 0x6 :
strcpy ( type, "FAT16>32M" ) ; break ;
case 0x7 :
strcpy ( type, "NTFS" ) ; break ;
case 0x0b :
strcpy ( type, "FAT32" ) ; break ;
case 0x0c :
strcpy ( type, "FAT32-LBA" ) ; break ;
case 0x0d :
strcpy ( type, "VFAT16" ) ; break ;
case 0x0e :
strcpy ( type, "VFAT16-LBA" ) ; break ;
case 0x0f :
strcpy ( type, "FAT EXT" ) ; break ;
case 0x17 :
strcpy ( type, "HPFS" ) ; break ;
case 0x81 :
strcpy ( type, "Old LINUX" ) ; break ;
case 0x82 :
strcpy ( type, "LinuxSwap" ) ; break ;
case 0x83 :
strcpy ( type, "LinuxNative" ) ; break ;
case 0x85 :
strcpy ( type, "Linux Ext." ) ; break ;
default :
strcpy ( type, "Unknown" ) ; break ;
}

s_sec = ( p.pt[i].start_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].start_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].start_sec_cyl & 0x00c0 ) << 2 ;
s_trk = t1 | t2 ;

e_sec = ( p.pt[i].end_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].end_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].end_sec_cyl & 0x00c0 ) << 2 ;
e_trk = t1 | t2 ;

printf ( "\n%6s %3s", type, boot ) ;
printf ( "%4d %6d %8d", p.pt[i].start_side,
s_trk,s_sec ) ;
printf ( "%7d %6u %8u", p.pt[i].end_side, e_trk,
e_sec ) ;
printf ( " %10lu %10lu", p.pt[i].part_beg,
p.pt[i].plen ) ;

}

return 0;
}


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

Next page
 
 
데이터 복구 도서
 
장-1 자료 회복의 개관
장-2 하드 디스크의 소개
장-3 디스크와 OS에 논리적인 접근
장-4 수 체계
장-5 C 프로그램의 소개
장-6 컴퓨터 기초에 소개
장-7 필요한 DOS는 명령한다
장-8 디스크 BIOS는 작용하고 C로 취급을 중단한다
장-9 큰 하드 디스크 취급
장-10 타락된 플로피에서 자료 회복
장-11 백업을 만들기
장-12 프로그램을 가진 읽고는 및 변경 MBR
장-13 프로그램을 가진 읽고는 및 변경 DBR
장-14 "익지않는 파일" 회복을 위해 프로그램
장-15 자료 와이퍼를 위해 프로그램
장-16 디스크를 위한 공용품 더 개발
부록 자료 회복 기간의 용어집
 
 
Pro Data Doctor

제품

연락처 세부 정보

고객 지원

다운로드 데모

이용 약관

 
Pro Data Doctor