自己写个操作系统《一》制作启动U盘,真机启动
2016-08-08 01:02
176 查看
网络上不少介绍写个简易操作系统的文章,大都是制作一个软盘映像文件,然后从虚拟软驱中启动。我希望能直接将系统放入U盘,直接从U盘启动。经过一番尝试,成功了。
1、一台centos linux物理机
2、as86、ld86工具
下载地址 ftp://rpmfind.net/linux/centos/6.8/os/x86_64/Packages/dev86-0.16.17-15.1.el6.x86_64.rpm
安装 rpm -ivh dev86-0.16.17-15.1.el6.x86_64.rpm
3、新建汇编文件 boot.s
BOOTSEG= 0x07c0
entry start
start:
jmpi go, BOOTSEG
go:
mov ax,cs
mov dx,ax
mov es,ax
mov [msg+17],ah
mov cx,
#20
mov dx,
#0x1004
mov bx,
#0x000c
mov bp,
#msg
mov ax,
#0x1301
int 0x10
loop0:
jmp loop0
msg:
.ascii "Loading system..."
.byte 0x0d,
0x0a, 0x00
.org 510
.word 0xaa55
4、新建Makefile文件
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
5、执行make,得到boot.bin
6、机器上插入u盘
7、切换到root用户
8 、fdisk指令查看U盘设备名称,我这里查到的是 /dev/sdb
9、将boot.bin写入到u盘
dd if=boot.bin of=boot.bin bs=512 count=1
10、重启系统,将u盘设置为启动设备
11、大功造成
可以看到系统启动起来,屏幕上显示 红色的 Loding system...
附:
如果是制作软件映像文件Makefile可以这样写
boot.img: boot.img_
dd if=/dev/zero of=boot.img seek=1 bs=512 count=2879
boot.img_: boot.bin
dd if=boot.bin of=boot.img_ bs=512 count=1
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
1、一台centos linux物理机
2、as86、ld86工具
下载地址 ftp://rpmfind.net/linux/centos/6.8/os/x86_64/Packages/dev86-0.16.17-15.1.el6.x86_64.rpm
安装 rpm -ivh dev86-0.16.17-15.1.el6.x86_64.rpm
3、新建汇编文件 boot.s
BOOTSEG= 0x07c0
entry start
start:
jmpi go, BOOTSEG
go:
mov ax,cs
mov dx,ax
mov es,ax
mov [msg+17],ah
mov cx,
#20
mov dx,
#0x1004
mov bx,
#0x000c
mov bp,
#msg
mov ax,
#0x1301
int 0x10
loop0:
jmp loop0
msg:
.ascii "Loading system..."
.byte 0x0d,
0x0a, 0x00
.org 510
.word 0xaa55
4、新建Makefile文件
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
5、执行make,得到boot.bin
6、机器上插入u盘
7、切换到root用户
8 、fdisk指令查看U盘设备名称,我这里查到的是 /dev/sdb
9、将boot.bin写入到u盘
dd if=boot.bin of=boot.bin bs=512 count=1
10、重启系统,将u盘设置为启动设备
11、大功造成
可以看到系统启动起来,屏幕上显示 红色的 Loding system...
附:
如果是制作软件映像文件Makefile可以这样写
boot.img: boot.img_
dd if=/dev/zero of=boot.img seek=1 bs=512 count=2879
boot.img_: boot.bin
dd if=boot.bin of=boot.img_ bs=512 count=1
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
相关文章推荐
- U盘启动自己的操作系统
- 《30天编写自己的操作系统》 关于如何让虚拟机从U盘启动
- Windows 7 操作系统制作启动U盘
- 《30天编写操作系统》 如何制作U盘启动
- CDlinux制作U盘启动盘,打造自己的口袋系统
- 《30天自制操作系统》U盘启动,真机运行(16天)
- 自己动手制作u盘启动盘,借助UltraISO就行了
- 原创:用磁盘工具UltraISO.exe简单几步制作U盘启动的PE系统盘。
- U盘启动的PE系统的制作方法
- 制作u盘启动的win pe安装盘
- WINPE U盘启动制作
- 制作U盘启动的FREEBSD完全版[转]
- 教你制作启动U盘,用U盘装系统(转载)
- U盘启动制作方法(未完成)
- 制作U盘启动过程
- 制作u盘启动盘
- 教你制作启动U盘 用U盘装系统(转载)
- U盘制作启动盘
- 适合制作U盘启动的WinPE系统大搜集
- U盘启动系统制作详细方法(MaxDOS+WinPE