操作系统的自我修养-04 从U盘启动MerxOs操作系统

转载注意出处:K_Linux_Man

我们一直都是使用bochs模拟器来启动我们的MerxOs操作系统,模拟真的不好玩,我们今天就让我们的”MerxOs:Hello,World“ 运行在真机上。现代化的今天,

U盘早已经替代软盘,所以我们以U盘为例,讲述如何让我们的MerxOS操作系统从U盘加载。

U盘的第一扇区

U盘的第一个扇区由三部分组成:

第 1 部分(0x0000~0x01BD)446 个字节为MBR,MBR(Master Boot Record)主引导扇区,我们的MerxOs:hello,world程序就要放在0-446个字节内。

第 2 部分(0x01BE~0x01FD)64 个字节为U盘的分区表(Disk Partition Table, DPT),每 16 个字节描述一个主分区,所以一个硬盘最多可以有 4 个主分区

分区表的每一分区的第 1 个字节是活动标志,其值为80H时,表示该分区是当前活动分区,可引导,其值为00H时,表示该分区不可引导。

第 3 部分(0x01FE~0x01FF)2 个字节“55 AA”是分区有效结束标志

强大的二进制编辑器:WinHex

我使用的是winhex15.8 ,从网上找了好久,才找到一个可以破解使用的。我会上传了这个WinHex程序。

选择我的联想U盘

从图中可是看出,0x00-0x1BD 为第一部分,0x80开始的部分为第二部分,64字节的分区表,如果我们破坏这一部分的话,我们的U盘将在XP系统下无法识别。

最后以55AA结尾标示。

利用WinHex打开我们前一节Hello,World的boot.img文件,并copy 0x00~0x1BD前446个字节的内容,替换掉U盘的前446字节的内容,并修改最后两个字节为0x55,0xAA

打开boot.img之后,我们先要选择0x00-0x1bd的内容,再进行copy。

右键 EDIT

同样的方法先选择U盘的0x00-0x1BD内容,选择完毕之后,我们接下来要将刚才从boot.img拷贝的内容写到U盘上,注意在进行写操作的时候,先选中第一个字节,再Edit,再wirte,这时候会提示从偏移为0开始。我们也正是要从0x00开始到0x1BD进行写操作。

写完之后记得修改55,AA

保存u盘文件即可。这个软件在关闭u盘的时候提示出错,没关系,我们已经将u盘的内容进行了修改。直接连续点确认即可(破解的软件就是这样,知足吧)。

另外一种更简单的方法

在linux系统下,u盘设备被看成一个文件,所以我们可以对这个文件进行操作。我使用的是Ubuntu,使用命令就可以实现同样的方法。

sudo dd if=boot.img of=/dev/sdb bs=446 count=1

为什么是446这个我就不需要解释了吧, 本文中已经提到。如果写成512,那就悲催了。你的u盘将在xp系统下不能识别。因为破坏了分区表格式。

因为我们的环境是在xp下,所以我这里就不多解释Ubuntu的命令操作了。

激动一刻-真机测试

选择从U盘启动,之后就是MerxOS了.

选择从usb  lenovo上启动

操作系统的自我修养-04 从U盘启动MerxOs操作系统

时间: 2024-10-12 17:38:47

操作系统的自我修养-04 从U盘启动MerxOs操作系统的相关文章

嵌入式C语言自我修养 04:Linux 内核第一宏:container_of

4.1 typeof 关键字 ANSI C 定义了 sizeof 关键字,用来获取一个变量或数据类型在内存中所占的存储字节数.GNU C 扩展了一个关键字 typeof,用来获取一个变量或表达式的类型.这里使用关键字可能不太合适,因为毕竟 typeof 还没有被写入 C 标准,是 GCC 扩展的一个关键字.为了方便,我们就姑且称之为关键字吧. 通过使用 typeof,我们可以获取一个变量或表达式的类型.所以 typeof 的参数有两种形式:表达式或类型. int i ; typeof(i) j

制作U盘启动盘将Ubuntu 12.04升级为14.04的方法

1 介绍 在周六的下午,我决定想快速浏览一下书籍[1],看看这个关于Ubuntu的圣经究竟在讲什么东东.感觉讲的不错,当我看到介绍文件标记语言-TeX和LaTeX的时候,该书作者推荐在Ubuntu上常用的teTeX软件包,可是我在软件中心(Software Center)通过查询(Searcch)对话框并没有找到该软件,于是进入作者推荐的关于teTeX的主页(www.tug.org/tetex)去了解.发现teTex自2006那年就停止维护,建议对TEX感兴趣的安装和关注TexLive.我当时就

制作U盘启动盘及安装操作系统的方法

U盘启动盘制作方法: 1.从网上下载最新的老毛桃U盘启动制作工具主程序并安装 2.插入U盘(制作启动盘前先保存好你的资料到其它地方,以防丢失不可找回) 3.插入正确的U盘后程序会自动检测到U盘,启动模式用默认USB-HDD即可,然后再单击下面的“一键制成USB启动盘”按钮 4.在弹出的“警告”确认对话框中单击“是”按钮继续 5.随后程序主界面下文显示“正在写入启动文件”的字样,此时一定不能随便碰到或拔掉U盘 6.稍等一会即可看到成功的提示对话框,按提示拔掉U盘再重新插入即可. 7.之后即可用此U

使用U盘启动安装操作系统的一些心得

此文只对关键步骤作讲解 安装步骤:以"U启动"为例 1.制作U盘启动工具 2.将gho复制到GHO文件夹下面 3.启动U盘,选择合适的选项,进入还原分区界面,还原GHO到C盘 4.复制完成后,关机,取出U盘(这个很重要,否则会失败),再启动电脑,安装过程可能会重启多次 启动工具: 第一推荐:U启动,我是用这个安装成功的 http://www.uqidong.com/ 第二推荐: 通用PE工具 http://www.tongyongpe.com/ 第三推荐: ultraiso 一些知识:

Ubuntu 16.04下将ISO镜像制作成U盘启动的工具-UNetbootin(UltraISO的替代工具)

说明: 1.在Windows下制作ISO镜像的U盘启动工具有很多,但是在Linux平台下估计就只有UNetbootin这个工具最好用了,效果和Windows下的制作方法差不多,但是这个工具只能针对Linux的ISO: 2.而再生龙的Tuxboot只能针对再生龙,所以这个否决了: 3.注意,这个UNetbootin是开源的,且为跨平台. 4.在Ubuntu制作ISO镜像的U盘启动工具可以使用DD(参考:http://www.cnblogs.com/EasonJim/p/7616673.html),

【读书笔记】程序员的自我修养总结(六)

[读书笔记]程序员的自我修养总结(六) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:这是程序员的自我修养一书的读书总结,随着阅读的推进,逐步增加内容. 本文主要介绍可执行文件的装载与进程 程序与进程的区别 程序是静态的,指的是一些预先编译好的指令和数据集合的一个文件:而进程实际上就是运行着的程序,是动态的. 虚拟地址空间 程序运行起来后将拥有独立的虚拟地址空间 virtual address space,其大小由计算机的硬件平台决定,具体地说是

读《程序员的自我修养 —— 装载与动态链接》乱摘

2016.05.14 – <程序员的自我修养 -- 链接.装载与库>的装载与动态链接部分. - 余甲子 石凡 潘爱民编 个人选读笔记 - 学点表皮. 05.14 PART II 装载与动态链接 1 可执行文件的装载与进程 1.1 进程虚拟地址空间的大小 每个进程拥有自己独立的虚拟地址空间,该虚拟地址空间的大小由计算机的硬件平台决定,具体地说是由CPU的位数决定的(地址线 -- C语言中的指针所占空间).硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,如32位的硬件平台决定了虚拟地址空间

程序员的自我修养——操作系统篇(转)

也许,只需这一篇文章,便能让你全面的认识操作系统! 在阅读本文之前,推荐阅读“自己动手制作4位计算机”. 目录: 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式. 5. 线程的实现方式. (用户线程与内核线程的区别) 6. 用户态和核心态的区别. 7. 用户栈和内核栈的区别. 8. 内存池.进程池.线程池. 9. 死锁的概念,导致死锁的原因,导致死锁的四个必要条件,处理死锁的四个方式,预防死锁的方法.避免死锁

一个程序员的自我修养

在网上看到一篇程序员的自我修养,深以为然,不禁摘录一些,勉励自己 一个好的开发人员,应该能够全面.高效.严谨的去处理任何软件程序和业务问题,成为一个好的开发,是一个很有意思的话题,不过无论这个话题如何开展,基础两个字必不可少,虽然代码量是衡量开发能力的重要指标,但仅能够熟练的进行代码编写是不够的,更要能深刻的理解技术原理和业务逻辑,扎实的个人基础和技术基础往往会促进代码的编写,更游刃有余的解决问题. 下面说的一些基础,可能绝大部分开发人员都不会在意甚至忽略,但恰恰这些才是开发大厦的基石. 1.科