为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系统。
第二步:编辑isolinux.bin的运行配置文件syslinux.cfg的原文件isolinux.cfg。
default vesamenu.c32
timeout 600
这里定义的默认者是vesamenu.c32c,这个vesamenu.32c的作用就是启动菜单外观绘制拓展工具。以下定义的timeout是指用户选择时间上限。
label linuxmenu label ^Install CentOS 7kernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet
label checkmenu label Test this ^media & install CentOS 7menu defaultkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rd.live.check quietmenu separator # insert an empty line# utilities submenu
menu begin ^Troubleshootingmenu title Troubleshootinglabel vesamenu indent count 5menu label Install CentOS 7 in ^basic graphics modetext helpTry this option out if you're having trouble installingCentOS 7.endtextkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CENTOS xdriver=vesa nomodeset quietlabel rescuemenu indent count 5menu label ^Rescue a CentOS systemtext helpIf the system will not boot, this lets you access filesand edit config files to try to get it booting again.endtextkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rescue quietlabel memtestmenu label Run a ^memory testtext helpIf your system is having issues, a problem with yoursystem's memory may be the cause. Use this utility tosee if the memory is working correctly.endtextkernel memtestmenu separator # insert an empty linelabel localmenu label Boot from ^local drivelocalboot 0xffffmenu separator # insert an empty line
menu separator # insert an empty linelabel returntomainmenu label Return to ^main menumenu exitmenu end
这些是每项菜单的详细定义,即定义了每一个菜单相应的调用vmlinuz和initrd.img的方式。
label linuxmenu label ^Install CentOS 7kernel vmlinuzappend 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
改动镜像文件名称字与syslinux.cfg中的root路径卷标一致。把isolinux.bin设置成引导文件,勾选生成启动信息表。这个启动信息表就是最后文件夹中的ldlinux.sys启动信息文件。
第四步:保存该镜像并通过启动-》写入硬盘映像来写到U盘中。这时候UItral So会自己主动的把syslinux.cfg文件盒ldlinux.sys文件生成在U盘上,而其它的文件也会拷贝到U盘上,这时候U盘里的isolinux.cfg能够删除掉,最后把安装系统的镜像拷到根文件夹下。
注:U盘中没介绍的文件都是一些背景或者其它安装选项中调用的linux的检測工具。
转载于:https://www.cnblogs.com/bhlsheji/p/5085947.html
为Linux用ISO制作U盘启动及基本原理相关推荐
- 在Linux系统下制作U盘启动盘
本文介绍在Linux系统中制作U盘启动盘的三种方法:使用启动盘创建器.dd命令和Etcher,以下以优麒麟Ubuntu Kylin 19.04为例,为你介绍这三种方法.如果要在Windows中制作U盘 ...
- 制作u盘启动linux安装教程,制作u盘启动linux安装教程
制作u盘启动linux安装教程 [2021-02-14 17:02:30] 简介: 服务器 Linux或者OS X系统中,使用"dd"命令可以直接在终端命令行模式下,制作ISO镜 ...
- linux dd命令制作u盘启动_制做linux启动U盘
作者:科研拾荒者 链接:https://zhuanlan.zhihu.com/p/60105461 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.原料:U盘(8G以上 ...
- 再生龙u盘复制linux,再生龙制作U盘启动盘教程 | 楚盟博客
再生龙是备份linux系统的利器,本人也是小白试过多种备份方法可能技艺不精备份没问题但是还原总是遇到各种各样的问题,不过使用再生龙非常得心应手,备份多次linux系统也顺利的进行了系统还原,就像win ...
- 再生龙制作u盘启动linux,再生龙制作U盘启动盘教程 | 楚盟博客
再生龙是备份linux系统的利器,本人也是小白试过多种备份方法可能技艺不精备份没问题但是还原总是遇到各种各样的问题,不过使用再生龙非常得心应手,备份多次linux系统也顺利的进行了系统还原,就像win ...
- 制作u盘启动盘教程linux,再生龙制作U盘启动盘教程
再生龙是备份linux系统的利器,本人也是小白试过多种备份方法可能技艺不精备份没问题但是还原总是遇到各种各样的问题,不过使用再生龙非常得心应手,备份多次linux系统也顺利的进行了系统还原,就像win ...
- Linux环境下 制作U盘启动盘
下载好系统文件,可能是.img, .ios 可以制作linux系统,树莓派 系统,PE等. ps:建议下载,比如Ubuntu XXX LTS 查看U盘设备 ~$ sudo fdisk - ...
- 用映像文件(.iso)制作U盘启动盘
以前都是用工具rufus来做u盘安装启动盘. 从debian网站上看到,原来直接用cp命令就可以做u盘安装启动盘: # cp debian.iso /dev/sdX # sync 映像必须写入整个盘设 ...
- Linux dd命令制作U盘启动盘
linux下的dd命令来自于coreutils:http://www.gnu.org/software/coreutils/ https://jingyan.baidu.com/article/d45 ...
最新文章
- tensorflow错误:Shape (10, ?) must have rank at least 3
- 使用Mysql数据库完成增删改查综合案例(JSP页面)
- java addfirst()_Java addFirst(),addLast() 在链表(LinkedList)的开头和结尾添加元素
- 用xfire开发webservice实例
- PCL:PCL1.9.0更新
- python生成动态二维码实例_python生成动态个性二维码(示例代码)
- canal —— 阿里巴巴mysql数据库binlog的增量订阅消费组件
- 同步与异步以及线程与进程
- 一种避免 iOS 内存碎片的方法
- Reverse digits of an integer
- POJ NOI0105-30 含k个3的数【数制】
- 心得:调整边缘、叠加模式的妙用
- 微软project下载安装及激活教程
- Linux下终端分屏利器tmux
- vray许可服务器信息怎么看不到,VRay for sketchup的许可证问题怎么解决?
- JAVA简单的银行管理系统
- 编码器-解码器架构-读书笔记
- 闲鱼已售商品信息查询系统。手搓市场定价/行情查询利器
- SAP系统CO88如何冲销前一年度的订单结算
- Consignment 寄售库存