写作计画删除隔墙
<纲要删除用于故障间隔目的. 举例来说,假设你有你的FAT32文件系统磁盘间隔. 您现在决定Linux操作系统安装在你的磁盘同步.
如有如何安装操作系统中断之间, 在现阶段,当正在修改的<划分表膜. 在这种情况下有很多可能性,隔墙、 其中你将安装其它操作系统,变得无法到达.
在这种情况下失去了磁盘空间的划分是由于无法无用. 但是如果我们删除隔墙划分表资料,从任何如何划分, 我们可以把这个空间再利用可用fdisk指挥的考虑.
节目从入境删除隔墙隔墙表膜已下:
/*进入删除计划从二隔墙隔墙表膜 */
# 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 ;
} ;
/* 结构读写器 */
struct part
{
/* 听力检查(初次计画装载机)*/
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: ");
/* 删除第二隔墙隔墙资料表膜拆除前沿想到从biosdisk()函数. 不小心使用,隔墙分割划分表二信息将全部删除. */
////// biosdisk ( 3, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* 资料显示,经进一步修改后划分表 */
getch();
}
评论节目:
uncomment的biosdisk(3,0x80,0,0,1,1, &p)项删除功能划分表二分从膜.
删除隔墙,所有的参数,详记为0分表膜. 始终记得,如果你删除延长间隔 所有这一逻辑间隔延长也会变得无法分割.
()的功能是用来展示展示划分表膜. 编码的功能如下:
/* 展示功能划分表膜 */
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;
}
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|