为Linux用ISO制作U盘启动及基本原理
制作成功后的基本最简文件夹文件图
一、系统的基本引导流程:
首先系统要引导isolinux.bin可执行程序,此程序是移动介质上引导用的,isolinux.bin执行成功后会载入其配置文件syslinux.cfg,该文件里定义了vmlinuz和initrd.img的调用方式。
vmlinuz是vmlinux的压缩版。二者都是linux内核。
isolinux.bin依据其配置方式中定义的initrd.img的參数传给vmlinuz即Linux内核并载入内核。然后Linux内核会依据获得的initrd.img的调用參数调用initrd.img。initrd.img的基本功能就是root路径挂载器。其存在的意义是省去了不同root路径硬件下vmlinuz内核的重编译工作。initrd.img依据调用參数去參数路径中找系统启动程序(这里使用的就是iso的安装镜像),系统便启动起来了。
二、引导盘的基本制作过程:
第一步:提取制作引导镜像所需的文件,这些文件在Linux安装盘的isolinux文件夹中,这个文件夹就是个微型Linux系统。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbnNkaHk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
第二步:编辑isolinux.bin的运行配置文件syslinux.cfg的原文件isolinux.cfg。
default vesamenu.c32
timeout 600
这里定义的默认者是vesamenu.c32c,这个vesamenu.32c的作用就是启动菜单外观绘制拓展工具。以下定义的timeout是指用户选择时间上限。
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet
label check
menu label Test this ^media & install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rd.live.check quiet menu separator # insert an empty line # utilities submenu
menu begin ^Troubleshooting
menu title Troubleshooting label vesa
menu indent count 5
menu label Install CentOS 7 in ^basic graphics mode
text help
Try this option out if you're having trouble installing
CentOS 7.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS xdriver=vesa nomodeset quiet label rescue
menu indent count 5
menu label ^Rescue a CentOS system
text help
If the system will not boot, this lets you access files
and edit config files to try to get it booting again.
endtext
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rescue quiet label memtest
menu label Run a ^memory test
text help
If your system is having issues, a problem with your
system's memory may be the cause. Use this utility to
see if the memory is working correctly.
endtext
kernel memtest menu separator # insert an empty line label local
menu label Boot from ^local drive
localboot 0xffff menu separator # insert an empty line
menu separator # insert an empty line label returntomain
menu label Return to ^main menu
menu exit menu end
这些是每项菜单的详细定义,即定义了每一个菜单相应的调用vmlinuz和initrd.img的方式。
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet
label是标签。类似于grub的title 。
kernel项代表要载入的内核。append是后缀參数,相当于为了好看换行的作用。initrd=initrd.img是定义内核的挂在器是initrd.img,后面參数inst.stage2=hd:LABEL=CENTOS quiet 就是载入的root路径。inst.stage2是指载入安装程序文件的路径。hd:LABEL=CENTOS是指root的路径在卷标为CENTOS的储存设备中。即U盘,所以该引导镜像的名字和U盘卷标必须是CENTOS。
此处假设不想用菜单方式显示,直接载入安装文件。能够省去vesamenu.32c 把开头的default vesamenu.32c改成default linux 即默认载入label linux的定义。
第三步:制作引导镜像文件CENTOS.iso
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbnNkaHk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
改动镜像文件名称字与syslinux.cfg中的root路径卷标一致。把isolinux.bin设置成引导文件,勾选生成启动信息表。这个启动信息表就是最后文件夹中的ldlinux.sys启动信息文件。
第四步:保存该镜像并通过启动-》写入硬盘映像来写到U盘中。这时候UItral So会自己主动的把syslinux.cfg文件盒ldlinux.sys文件生成在U盘上,而其它的文件也会拷贝到U盘上,这时候U盘里的isolinux.cfg能够删除掉,最后把安装系统的镜像拷到根文件夹下。
注:U盘中没介绍的文件都是一些背景或者其它安装选项中调用的linux的检測工具。
为Linux用ISO制作U盘启动及基本原理的更多相关文章
- windows和linux环境下制作U盘启动盘
新笔记本上,要装xp的系统,100%会破坏原有的Linux系统,因为安装xp的时候会自动覆盖硬盘的主引导扇区,这个扇区一旦被重写,那么原有的linux根本就启动不了. 要想玩linux和xp双系统,一 ...
- 【转载】windows linux cent 7 制作U盘 启动盘
1 镜像iso文件存放在linux环境下用dd if=/dev/sdb of=/镜像存放路径/镜像iso文件 bs=1M u盘的盘符是/dev/sdb 2 镜像iso文件存放在windows环境下ul ...
- Linux dd命令制作U盘启动盘
linux下的dd命令来自于coreutils:http://www.gnu.org/software/coreutils/ https://jingyan.baidu.com/article/d45 ...
- Linux系统如何制作U盘启动盘更换系统
进入这个网站balenaEtcher,直接下载可接
- 【转载】在Linux系统下用dd命令制作ISO镜像U盘启动盘
#### 将U盘插入USB接口 #umount /dev/sdb* #dd if=/iso存放路径/XXX.iso of=/dev/sdb bs=1M ##### [转载]在Linux系统下用dd命令 ...
- 制作U盘启动安装CentOS Linux系统
制作U盘启动安装CentOS Linux系统 (特为老男孩教育&&51CTO学院在线三期同学而发) 方法一:使用UltraISO,将u盘做成启动盘 文件-->打开-->选择 ...
- U深度利用iso文件制作U盘启动盘
利用U盘装win10系统: 工具:U深度装机版 文件:win10.iso 步骤1:下载U深度装机版安装 步骤2:打开U深度,制作U盘启动盘,注意选择iso模式,如下图所示 接下来下一步即可,工具会 ...
- Ubuntu 制作U盘启动盘
部门需要一台Linux系统远程共享服务器,需要一个启动盘安装.但是由于公司windows 系统都安装了保安软件,而且软件的使用也是有限制的.所以不能使用UltraISO 这类软件制作U盘启动盘.还好部 ...
- win10与centos7的双系统U盘安装(一:制作u盘启动盘)
博主近来在学习linux系统,当然学习第一步自然是安装系统了,博主选择的是centos7,博主自己的电脑是联想的,系统是win10专业版,在历经数次失败后,博主成功使用u盘安装了win10和cento ...
随机推荐
- Swift - 运算符重载和运算符函数
让已有的运算符对自定义的类和结构进行运算或者重新定义已有运算符的运算规则,这种机制被称为运算符重载. 1,通过重载加号运算符,使自定义的两个坐标结构体对象实现相加: 1 2 3 4 5 6 7 8 9 ...
- 14.5.1 Resizing the InnoDB System Tablespace
14.5.1 Resizing the InnoDB System Tablespace 本节描述如何增加或者减少InnoDB 系统表空间的大小 增加InnoDB 系统表空间的大小 最简单的方式增加I ...
- C#写的客户端连接 php的服务器端的小例子
C#写的客户端连接 php的服务器端的小例子 php的server 端 <?php // server.php set_time_limit( 0 ); ob_implicit_flush(); ...
- 通过加载Kernel32来动态判断 当前操作系统32bit还是64bit
工作原理:通过加载Kernel32来获取IsWow64Process 函数然后通过函数的地址操作,执行函数的操作. 在程序中只要我们获取了一个函数的地址,就可以找到正确的方法执行这个函数. 但是这种方 ...
- [置顶] EasyMock构建单元测试
1. 背景 单元测试作为程序的基本保障.很多时候构建测试场景是一件令人头疼的事.因为之前的单元测试都是内部代码引用的,环境自给自足.开发到了一定程度,你不得不到开始调用外部的接口来完成你的功能.而外部 ...
- [Android学习笔记]LayoutParams的使用
LayoutParams的使用: 什么时候会用到此对象?动态布局,动态向ViewGroup中添加子view时,为子view设置此对象,目的是告诉父容器以何种方式呈现此子view LayoutParam ...
- hdu1116--解题报告--初步了解欧拉回路
由题目意思..我们只要把n个字符串的首尾字母看作是点,这个字符串看着边来处理就可以啦...将题目的案例图形化如下: 那么接着就是欧拉路径和欧拉回路判断,我们这里用并査集来判断图是不是连通的,然后根据有 ...
- File already exists: filesystem '/path/file', transaction svn常见错误解决方法
前言 多人任务基本都会用到SVN,于是提交的时候如果不先更新在提交或者操作顺序不对,会经常出现错误,其中File already exists: filesystem这个就是个常见问题,上网找了半天没 ...
- android 防止多次点击,它会导致事件侦听响应于其他接口
这里有情况: A当点击跳转至B介面,点击B接口结束后,到A界面中 1.此时在B界面中,设置点击事件,点击后结束B v.setOnClickListener(new OnClickListener() ...
- JSP网站开发基础总结《九》(转)
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...