打造操作系统(1.4)将引导扇区写入U盘

之前说到如何将引导扇区文件写入到软盘镜像中,然后,我们可以用写好的软盘启动电脑。但是,也许你会抱怨,现在谁还用软盘启动电脑啊。是的,没有,笔者当初也这么抱怨过。不过,我们肯定是有办法不用软盘的。比如,U盘。

前面说到,只要将符合要求的数据写到软盘的第一个扇区,那么它就能用来启动计算机了。同样,如果我们将刚刚生成的引导扇区文件写入到U盘的第一个扇区,同样也可以制作一个引导U盘。

不多说,我们直接进入正题吧,如何将文件写道U盘的第一个扇区。

请读者在尝试之前备份U盘中的数据,因为在我们写入引导扇区之后,U盘数据会被破坏(有两个解决方案,一时备份U盘数据,二是备份U盘的第一个扇区,事后将第一个扇区还原即可)。

刚才说到,将引导扇区数据写入到U盘第一个扇区就行了。

那么,我们的代码比较简单,读者参考“打造操作系统1.3”的代码,稍作修改即可。

在这里笔者直接贴上关键代码了。

hDrive = CreateFile(
		"\\\\.\\H:", GENERIC_READ, FILE_SHARE_READ, NULL,
		OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

细心的读者肯定会注意到,其实1.3中的代码已经具备这样的功能了。就是将floppywriter的第二个参数换成目标驱动器的对应表示就行了。比如 floppywriter boot.bin \\.\H:即可完成。

不过,这里存在一些问题,我们贸然的将引导扇区写入到U盘中,会破坏U盘中的数据。如何解决?笔者前面已经提示,备份。当然也有更好的方法,笔者将在之后的讨论。

谢谢。

展开阅读全文

没有更多推荐了,返回首页