MBRの仕切りのテーブルから仕切りの記入項目を削除するために仕切りを削除する執筆プログラム

Files Recovery Software
連絡先の詳細 顧客サポート ダウンロードのデモ 製品  

 
 

仕切りを削除する執筆プログラム

仕切りを削除するプログラムはトラブルシューテ-ィングの為に使用される。 例えばあなたのディスクでFAT32ファイルシステムの仕切りがあったと、仮定しなさい。 今あなたのディスクにLINUXのオペレーティングシステムを同時に取付けることにした。

、オペレーティングシステムの取付けがいかに中間中断するかMBRの仕切りのテーブルへの修正がなされていた場合の、段階で。 そのような場合あなたが他のオペレーティングシステムを取付けようとしていた仕切りが得難くなるという多くの可能性がある。

この場合無くなった仕切りのディスク空間は得難いのために無用になる。 、私達が再度このスペースをdosのFDISK命令を使用して使用可能にいかにさせてもいいか但し私達が仕切りのテーブルからその仕切りの仕切り情報を削除すれば。

MBRの仕切りのテーブルから仕切りの記入項目を削除するプログラムは次に与えられてしまった:

/*MBRの仕切りのテーブルから第2仕切りの記入項目を削除するプログラム */

# include <bios.h>

/* 仕切りのテーブルからの仕切りの記入項目を読む構造 */

struct partition
{
/* 活動区画バイト */
unsigned char bootable ;

/* 頭部の開始 */
unsigned char start_side ;

/* セクターおよびシリンダー数の開始の組合せ */

unsigned int start_sec_cyl ;

/* ファイルシステムの表示器バイト */
unsigned char parttype ;

/* 終りの頭部 */
unsigned char end_side ;

/* セクターおよびシリンダー数の開始の組合せ */

unsigned int end_sec_cyl ;

/* 相対的なセクター数 */
unsigned long part_beg ;

/* セクターの仕切りの長さ */
unsigned long plen ;
} ;

/* 読み書きMBRへの構造 */
struct part
{

/* IPL (初期プログラム・ローダー) */
unsigned char master_boot[446] ;

/* 仕切りのテーブル */
struct partition pt[4] ;

/* マジックナンバー */
int lasttwo ;
} ;

struct part p ;

void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* 仕切りのテーブルの情報を表示しなさい */
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の仕切りのテーブルから第2仕切り情報を削除するためにはから前方スラッシュを取除きなさい biosdisk ()機能。 、仕切りのテーブルの第2仕切りの仕切り情報完全に消される不注意に使用してはいけない。 */

////// biosdisk (3、0x80、0、0、1、1の&p); 表示(); /*の表示修正の後の仕切りのテーブルの情報 */
getch();

}

プログラムのコメント:

Uncomment MBRの仕切りのテーブルから第2仕切りを削除する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