本文将利用linux的dd命令往软盘的0道0面1扇区(即主引导扇区)写入数据;

实现在屏幕上显示asm这个三个字符的功能;

由于Ubuntu系统以软盘(floppy disk)作为启动盘,当选择系统从软盘启动时,将自动执行软盘主引导扇区的代码;

软盘创建

无论是XP系统还是Ubuntu系统,使用VM虚拟机创建和使用软盘的步骤都是一致的(见下方参考链接)

二进制文件.bin来源

[003][x86汇编语言]开发环境配置:检测点4.2 从虚拟硬盘主引导扇区启动 虚拟机 VirtualBox

https://www.jianshu.com/p/9cb95d936451

得到的.bin文件,重命名为asm.bin,以进行下面的实例

软盘读写实例 step-by-step

首先、对虚拟机的操作

1、开机之前,点开 编辑虚拟机设置,取消"勾选启动时连接"

1、开机之前,确认,没有勾选启动时连接

2、点击,开启此虚拟机

3、开机之后,再次点开 编辑虚拟机设置,对软盘,勾选"已连接"

如果这里,不勾选"已连接",相当于空有软驱,没有插入软盘!

开机之后,再次点开 编辑虚拟机设置,对软盘,勾选"已连接"

然后、在命令行操作

0、软盘通常的设备名是/dev/fd0

需要格式化,见下面的步骤

1、fdformat格式化软盘 以及 mkfs为软盘创建一个FAT文件系统

$ sudo fdformat /dev/fd0

[sudo] password for anno:

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting ... done

Verifying ... done

$ sudo mkfs -t msdos /dev/fd0

mkfs.fat 3.0.26 (2014-03-07)

软盘格式成功的话, 可以双击图标点开,并且右键查看属性,如下

Ubuntu 软盘

2、将整个软盘的数据(此时为空)拷贝到一个镜像文件disk.img(如果不存在就会自动新建一个)中

$ sudo dd if=/dev/fd0 of=disk.img bs=512 count=2880

2880+0 records in

2880+0 records out

1474560 bytes (1.5 MB) copied, 1.6708 s, 883 kB/s

$ ls

asm.bin disk.img Downloads Music Public Templates

Desktop Documents examples.desktop Pictures src Videos

3、将asm.bin文件的写入boot.img(如果不存在就会自动新建一个)的0到0面1扇区

$ sudo dd if=asm.bin of=boot.img bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.0245008 s, 20.9 kB/s

$ ls

asm.bin disk.img examples.desktop Public Videos

boot.img Documents Music src

Desktop Downloads Pictures Templates

4、用disk.img填满boot.img的全部剩余扇区,skip=1表示跳过第一个扇区(即0道0面1扇区)

anno@anno-m:~$ sudo dd if=disk.img of=boot.img skip=1 seek=1 bs=512 count=2879

2879+0 records in

2879+0 records out

1474048 bytes (1.5 MB) copied, 0.0275185 s, 53.6 MB/s

anno@anno-m:~$ ls

boot.img Documents asm.bin Public Videos

Desktop Downloads Music src

disk.img examples.desktop Pictures Templates

5、将boot.img复制到软盘

$ sudo dd if=boot.img of=/dev/fd0

2880+0 records in

2880+0 records out

1474560 bytes (1.5 MB) copied, 3.84448 s, 384 kB/s

最后、再对虚拟机的操作

1、关闭客户机

2、再次点开 编辑虚拟机设置,对软盘,勾选"启动时连接"

因为现在软盘的主引导扇区里面已经有代码了

3、开启此虚拟机,可以看到屏幕显示了asm三个字符,表示写软盘成功!

开启此虚拟机,可以看到屏幕显示了asm三个字符,表示写软盘成功!

相关实例

软盘读写:Window系统,MASM编译器 ,VM虚拟机

[082][汇编语言]编程:应用BIOS int 13H中断例程对 软盘A 进行读写

https://www.jianshu.com/p/bfeed0397631

软盘读写:Window系统,NASM编译器,Bochs虚拟机 + VirtualBox虚拟机

[003][x86汇编语言]开发环境配置:检测点4.2 从虚拟硬盘主引导扇区启动 虚拟机 VirtualBox

https://www.jianshu.com/p/9cb95d936451

[005][x86汇编语言]开发环境配置:硬盘主引导扇区代码:显示标号偏移地址 基础Bochs调试命令

https://www.jianshu.com/p/e8eea9f2ceb5

[013][x86汇编语言]从硬盘主引导扇区启动,显示hello world的“迷你操作系统”

https://www.jianshu.com/p/eddf4298e236

软盘读写:真实软盘

参考引用

《linux命令行大全》15.4格式化软盘 15.5直接从/向设备转移数据

dd if=input_file of=output_file [bs=block_size [count=blocks]]

https://www.jianshu.com/p/accaef5bc096

How do I write a bin file (512 bytes) to the first sector (sector 0) of a floppy disk?

制作img镜像文件的5种方法

linux dd命令制作软盘,[Ubuntu]dd 命令,软盘读写实例:二进制文件.bin -镜像文件 .img - 软盘设备 /dev/fd0...相关推荐

  1. linux命令刻盘,Ubuntu下命令行刻录CD和DVD

    Ubuntu下命令行刻录CD和DVD 发布时间:2008-02-03 01:41:19来源:红联作者:furshow 开始都用K3b来着,但是由于Ubuntu默认的Gonme桌面,K3b不怎么稳定,加 ...

  2. linux命令行 teamview,Ubuntu下命令行方安装TeamViewer

    分享Ubuntu下命令行方安装TeamViewer的过程,供参考,希望对大家有所帮助. 第一步: 下载 安装包 第二步: 执行命令 ## 不加sudo 会提示照片中的错误:dpkg:error:req ...

  3. linux下播放wma格式,Ubuntu 20.04中使Rhythmbox支持WMA格式文件播放

    这是一个麻烦事,可以如下做: 1.安装qmmp,或者deepin-music,跳过这一限制: 2.或者安装soundconverter,进行转换后播放: 3.实现想只用这个软件,就进行尝试安装: su ...

  4. linux deploy连接ssh失败,ubuntu – Jenkins发布ssh成功连接服务器但是put文件失败

    我有一个问题,当我构建我的工作时,它无法将我的文件放在控制台输出的服务器目录中我得到消息"错误:发布时异常,异常消息[权限被拒绝]" 我有以下日志输出: SSH: Connecti ...

  5. 奶瓶linux下载软件,求可以在虚拟机上直接加载的奶瓶镜像文件,运行linux系统即可运行奶瓶,哪位好心人可以发给我...

    复制到U盘,USB启动, 用Unetbootin写入. 打开Boot.ini 编辑 " timeout=2 default=multi(0)disk(0)rdisk(0)partition( ...

  6. linux touch 源码,每天一个Linux命令(09)--touch命令

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch  [选项]··· 文件··· 2.命令参数: -a 或 ...

  7. ultraiso制作u盘系统linux,使用UltraISO制作ubuntu安装u盘启动盘图文教程

    制作U盘启动1.gif 2.点击工具栏中的第二个打开镜像文件工具,如图红色方框标志按钮,然后在打开的"打开ISO文件"对话框中找到我们下载好的Ubuntu镜像文件,之后点右下方的& ...

  8. u盘怎么制作linux系统盘,如何制作LinuxU盘安装盘

    hwz008 于 2011-08-21 23:56:32发表: 可以用USB光驱啊 chaipeng 于 2011-08-18 10:08:56发表: 好?西 ,我也想?在?光?的本本上!!!! ma ...

  9. 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

最新文章

  1. 第十六届智能车竞赛过程中都发生了什么:怎么感到今年更难呢?
  2. 网络推广运营过程中站长是否考虑过用户为什么愿意产生购买行为呢?
  3. for、for / in循环
  4. Day 26: TogetherJS —— 让我们一起来编程!
  5. 【工业控制】PolyWorks 2020基础教程
  6. React 15.5带来重大修改
  7. sql between 效率高吗_B2增驾好吗
  8. addcslashes php,php addcslashes函数怎么用
  9. java jsp校验提示信息_java Jquery表单校验代码jsp页面
  10. ae运动模糊怎么调整_如何快速成长为一名AE高手?
  11. 夯实Java基础(二)——面向对象之封装
  12. mysql数据库undo日志恢复_MySQL的undo/redo日志和binlog日志,以及2PC
  13. hashmap浅析-get方法
  14. 3.abp框架code first方式创建表
  15. BMFont工具生成自定义字体
  16. 【千本樱】mmd镜头+动作打包下载
  17. 什么是网络分析仪?它的重要技术指标有哪些?
  18. 计算机桌面为什么没有语言栏了,电脑还原桌面的时候语言栏里怎么什么都没有了,只有到打字的时候才显示 ,这是为什么啊...
  19. PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.4
  20. web IDE theia-ide安装

热门文章

  1. TMS320F280049C 学习笔记11 控制率加速器 CLA 例程
  2. 苹果耳机AirPods Max(Pro)的空间音频技术,Unity端开源框架下载
  3. 台式计算机32位和64位的区别,电脑系统32位和64位有哪些区别 32位和64位是什么意思 【详解】...
  4. 海纳百川 有容乃大, 壁立千仞 无欲则刚
  5. Google的两种广告推广方式
  6. 国际数学日 | 有π的日子,来一场数学派对
  7. 打印机文件服务器主机,打印机服务器主机名称是什么原因
  8. 【考研英语语法】复杂句的逻辑
  9. 使用Python爬取CSDN历史博客文章列表,并生成目录
  10. 一级域名怎么申请二级域名