《30天编写操作系统》 如何制作U盘启动

笔者看了《30天编写操作系统》 之后,很想装一下B,所以一直很想让《30天编写操作系统》 的程序不只是在虚拟机里面运行,而且还希望将这个OS放到U盘上,从U盘启动,网上寻觅了各种方法均未实现我装B的伟大理想,所以只能自己动手了。下面是效果图,我的测试电脑屏幕坏掉了,不过还是看的清楚

下面的是步骤

1——首先到http://zhidao.baidu.com/share/cc93285a8dc709f2cbd8af39eaae61bd.html  下载U盘格式化成为软盘的工具,将U盘格式化

2——将下面的ipl的代码替换你的ipl代码(其实整个移植到U盘的核心是修改ipl代码)

; haribote-ipl

; TAB=4

CYLS EQU
10 ; 十个柱面

ORG 0x7c00
; MBR在内存中的位置为(DS=0,0x07c00=DS+0x7c00)

; 系统相关设置信息

JMP entry

DB 0x90

DB "HELLOIPL"
; name of boot sector

DW 512
; size of sector

DB 1
; f

DW 1
; FAT first sector

DB 2
; FAT number

DW 224
; root dir size

DW 2880
; disk size in sector

DB 0xf0
; disk type

DW 9
; FAT length

DW 18
; 18 sector each road

DW 2
; disk up down

DD 0
; no partition

DD 2880
; reclaim the disk size

DB 0,0,0x29
; reserve

DD 0xffffffff
; might be column

DB "HELLO-OS   "
; disk name

DB "FAT12   "
; disk fs type

RESB 18
; reserve 18 byte

; init程序入口

entry:

MOV AX,0
;

MOV SS,AX

MOV SP,0x7c00
; heap stack init

MOV DS,AX
; 初始化代码段的基地址在0x00000

; 读取磁盘到内存0x08200的位置

MOV AX,0x0820

MOV ES,AX

MOV CH,0
; cylinder number

MOV DH,0
; disk head number

MOV CL,2
; sector number

readloop:

MOV SI,0
; failed times

; retry to read disk if failed, read one sector

retry:

MOV AH,0x02
; AH=0x02 : 读磁盘

MOV AL,1
; 1扇区

MOV BX,0

;MOV DL,0x00
; A驱动器

MOV DL,0x80

INT 0x13
; 调用BIOS的函数例程

JNC next

ADD SI,1

CMP SI,5

JAE error

MOV AH,0x00

;MOV DL,0x00

MOV DL,0x80

INT 0x13

JMP retry

next:

MOV AX,ES

ADD AX,0x0020 ;每读取一个扇区内存向后偏移(ES+=0x0020)<<4

MOV ES,AX

ADD CL,1

CMP CL,62
;62个扇区

JBE readloop

MOV CL,1

ADD DH,1

CMP DH,2

JB readloop

MOV DH,0

ADD CH,1

CMP CH,4

JB readloop

MOV [0x0ff0],CH

JMP 0xc200

error:

MOV SI,msg

JMP putloop

ok:

MOV SI,msg1

putloop:

MOV AL,[SI]

ADD SI,1
; SI设置为1

CMP AL,0

JE fin

MOV AH,0x0e
; 在teletype模式下显示字符

MOV BX,15
; 页码BH=0x00,前景色BL=0x0f

INT 0x10
; BIOS显示服务

JMP putloop

fin:

HLT ; 暂停处理器

JMP fin

msg1:

DB 0x0a, 0x0a
; 换行符

DB "READ OKKKK"

DB 0x0a
; 换行符

DB 0

msg:

DB 0x0a, 0x0a
; 换行符

DB "load error"

DB 0x0a
; 换行符

DB 0

RESB 0x7dfe-$
; (0x7dfe-当前位置)都填充0x00

DB 0x55, 0xaa

3——编译的到你的img文件

4——利用ubuntu或者其他系统的dd命令把你的img拷贝到U盘上( dd if=XXXX.img of=/dev/sdb)PS:/dev/sdb 这个是我的U盘在我的系统上的名称,也有可能是其他的名称,视具体情况而定

5——把你的U盘插在真机上,打开电源(我的电脑是F12选择启动项)选择U盘启动

6——就可以看到在真正的电脑上运行的效果了

时间: 2024-11-06 10:30:47

《30天编写操作系统》 如何制作U盘启动的相关文章

UltraISO制作U盘启动盘安装Win7/10系统攻略

UltraISO制作U盘启动盘安装Win7/9/10系统攻略 U盘安装好处就是不用使用笨拙的光盘,光盘还容易出现问题,无法读取的问题.U盘体积小,携带方便,随时都可以制作系统启动盘. U盘建议选择8G及以上大小的. 下面一步一步讲解如果制作U盘安装盘: 1.首先是要先下载操作系统,推荐大家去下面这个网站下载,都是MSDN微软原版,非常棒. http://msdn.itellyou.cn/ 这里我们以下载到的最新64位Win10为例介绍,我们下载的Win10版本如下图所示,下载好的文件为:cn_w

重装系统之制作U盘启动盘

准备: 1.需要一个大于4G的U盘. 2.一个原版系统. 3.制作U盘启动盘的工具-ultraliso. 一.一个大于4G的U盘 制作启动盘将会格式化U盘,记得做好备份. 二.一个原版系统 至于你要装什么系统,下边给链接 Windows7 32位ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/ Windows7 64位ed2k

UltraISO制作U盘启动盘安装Vmware ESXI 5.5 中途卡住解决方法

使用UltraISO制作u盘启动选择打开iso文件,然后选择启动--写入硬盘映像即可 这样制作的U盘启动盘在安装系统时需在Bios选择HDD的安装模式 最近安装Vmware ESXI 5.5,VMware-VMvisor-Installer-5.5.0.update01-1623387.x86_64.iso 按照惯例使用HDD的安装模式安装,总是在安装到中途卡住,尝试了多次,都是一样的结果. 最后查了一下,BIOS中尝试使用EFI的安装模式安装,一切顺利, esxi 5.5  6.0同样的解决方

制作U盘启动盘方法

制作U盘启动盘方法 1. 以管理员权限打开命令提示符 2. 输入diskpart,回车 3. 输入list disk,回车 4. 看一下磁盘大小,确定哪个磁盘是我们需要操作的U盘,然后输入select disk+相应的序号,注意这一步一定不要选错了 5. 输入clean清除磁盘全部内容 6. 输入create partition primary创建主分区 7. 输入active将分区激活为活动分区 8. Windows+R打开运行窗口输入diskmgmt.msc打开磁盘管理 9. 右键点击U盘选

怎样用通用pe工具箱制作U盘启动盘

U盘启动盘制作过程,随着网络的普及,电脑已经成为我们日常生活中的重要一环,最近自己重装了下电脑系统,无意中发现一个傻瓜式的U盘装系统方法,就把怎么制作通用pe工具箱u盘启动盘的经验拿出来跟大家分享下. 工具/原料 必须是能上网的电脑一台 4G以上U盘一个 方法/步骤 1 一.u盘启动盘制作前的准备 1.我是从通用pe上面下载通用pe工具箱V6.3版来进行制作的. 2.各位在运行制作程序之前最好关闭杀毒软件和安全类软件,个人觉得这种制作软件有涉及对可移动磁盘的读写操作,怕产生杀软的误报使得制作不成

UltraISO制作U盘启动盘安装Win7系统攻略

reference win 7 iso name: cn_windows_7_ultimate_x86_dvd_x15-65907.iso URL FOR download: http://jingyan.baidu.com/article/ca2d939df51697eb6d31ce10.html UltraISO制作U盘启动盘安装Win7系统攻略,布布扣,bubuko.com

Ubuntu 制作U盘启动盘

部门需要一台Linux系统远程共享服务器,需要一个启动盘安装.但是由于公司windows 系统都安装了保安软件,而且软件的使用也是有限制的.所以不能使用UltraISO 这类软件制作U盘启动盘.还好部门里有Ubuntu系统,所以就用dd 命令制作了一个安装盘. 记性不太好,在这里记录一下,以备后用. 步骤:(1). > df #命令查看U盘挂在到那个目录下(Ubuntu 在插入U盘后自动挂在,通常挂载到/etc/sdb1) (2). > sudo umount /dev/sdb1 #卸载U盘

ubuntu下制作u盘启动盘安装win7

昨天脑热装了个ubuntu,做前端发现突然没了IE好不习惯,无奈今天就要装回来,问题来了,u盘已经做成了ubuntu的启动盘,怎么装win7... 这时,我有两种解决方案: 1.去隔壁宿舍用朋友的电脑把U盘做成启动盘 2.在自己的ubutnu里将u盘做成启动盘 作为一个宅男,自然是有问题自己解决,坚决不找别人麻烦.于是上网搜索在linux下制作u盘启动盘的方法,发现教程真心少,搜了好久,终于搜出来一篇文章,链接如下:http://www.linuxquestions.org/questions/

使用UNetbootin制作U盘启动

制作Ubuntu系统启动U盘,可以用软碟通UltraISO,也能用UNetbootin这个软件. UNetbootin的好处是有windows客户端,也有Linux的客户端,也就是说可以很方便的在Linux环境下制作自己的启动U盘. 工具/原料 UNetbootin软件 免费软件,自己搜索下载地址 Ubuntu系统光盘iso文件 自己搜索下载地址 一台PC 方法/步骤 1 首先要检验一下你下载的iso文件的完整性.就是平时大家说的hash值. 百度关键字:hash 1.04 原文件hash值在官