把自己的操作系统写入U盘(FAT32)引导扇区

方法一:使用WinHex

1、使用WinHex打开你的U盘:

Tools->Open Disk->Physical Media

把自己的操作系统写入U盘(FAT32)引导扇区_第1张图片

注意:不要使用Logical Drive Letters打开U盘,因为逻辑方式无法访问第一物理扇区。

把自己的操作系统写入U盘(FAT32)引导扇区_第2张图片

2、之后就可以复制自己的引导程序到U盘的第一扇区了。


注意:

1、第一扇区的1c6-1c9区域记录的是逻辑第一扇区对应的物理扇区的起始扇区。一般是3F(63)

2、似乎无法对U盘进行磁盘复位操作。


方法二:使用CreateFile

1、使用CreateFile打开物理磁盘,第一个参数:

const char *UDiskName = "\\\\.\\PHYSICALDRIVE1";//打开物理磁盘,一般来说0为硬盘,1为U盘 

2、读取U盘第一个扇区的内容以便得到那个映射值(1c6-1c9)

ReadFile(hUpan,buf,512,&dReads,NULL);
MapValue = *((DWORD*)(buf+0x1c6));

3、重置指针

SetFilePointer(hUpan, 0, 0, FILE_BEGIN);

4、写入你的引导程序即可,记得把那个映射值写回U盘。

ReadFile(hBootFile,buf,512,&dReads,NULL);
  *((DWORD*)(buf+0x1c6)) = MapValue;
//Write file boot.bin to my U disk
WriteFile(hUpan,buf,512,&dReads,NULL);


注意:在使用WriteFile的时候,写入粒度为扇区大小。即不可以只是写入100字节。


你可能感兴趣的:(操作系统)