使用Linux建立镜像文件与刻录光盘(mkisofs,cdrecord,wodim,isoinfo,rsync)

article/2025/10/7 3:52:49

一、镜像文件(.iso)与光盘(CD/DVD)的关系

  • 镜像文件用于存储文件与数据
  • 光盘是一种存储设备,需要将镜像文件进行刻录,将数据刻录到光盘
  • 光盘刻录的步骤:
    • 第一步:使用mkisofs命令将数据创建成为一个镜像文件(iso)
    • 第二步:使用cdrecord、wodim命令将镜像文件刻录到CD/DVD

二、mkisofs:建立镜像文件

  • 命令格式
mkiso  [-o  镜像文件]  [-Jrv]  [-V vol]  [-m 排除文件]  待备份文件...  [-graft-point isodir=systemdir]
  • 选项与参数:
    • -o:后面接想要产生的镜像文件
    • -J:产生较兼容Windows的文件名结构,可增加文件名长度到64个Unicode字符
    • -r:通过Rock Ridge产生支持Unix/Linux的文件数据,可记录较多的信息(如UID/GID等)
    • -v:显示创建ISO文件的过程
    • -V:建立Volume,有点像Windows在文件资源管理器内看到的CD卷标
    • -m:后面接文件,表示后面的文件不备份到镜像文件中,也可以使用*通配符
    • -graft-point(很重要):有嫁接和移植的意思,下面会介绍
  • 重要参数介绍以及注意事项
    • -r:光盘的格式一般称为iso9660,这种格式一般仅支持旧版的DOS文件名,亦即文件名只能以8.3(文件名8个字符,扩展名3个字符)的方式存在。如果加上了这个选项,那么文件信息能够被记录的比较完整,可包括UID/GID与权限等
  • -graft-point这个参数很重要,介绍如下
    • 如果不加这个选项,默认情况下,所有待备份的文件都会被放到镜像文件的根目录下,因为是放在镜像文件的根目录下,所以如果有相同文件名时,镜像文件的创建就会失败。例如:我们想把Linux下的/root与/home两个目录建立成为一个镜像文件,那么/root与/home两个目录下的内容就都会在镜像文件的根目录下(即放在同一个路径下)。这样对于文件分类管理不易,且如果/root与/home目录下有同名文件时,则镜像文件就会创建失败(因为有同名文件,系统不给你创建iso文件)
    • 如果加上了这个参数,后面就需要接:镜像文件路径=Linux系统路径(这样就可以显示的将Linux下的文件放置在镜像文件的某路径下)

创建镜像文件(不使用-graft-point选项)

  • 第一步:我们把Linux下的/root与/home两个目录创建成一个镜像文件。镜像文件为system.img,放置在/tmp目录下
mkisofs -r -v -o  /tmp/system.img  /root /home

  • 第二步:然后将system.img通过loop设备挂载到/mnt目录下
mount -o loop /tmp/system.img  /mnt

  • 第三步:挂载之后,查看/mnt目录内的内容。发现/mnt目录内的内容就是/root与/home目录内的内容,因为没有加-graft-point选项,所以所有文件直接放在镜像文件的根目录下,没有分类

创建镜像文件(使用-graft-point选项)

  • 第一步:跟上面一样,我们扔把Linux下的/root与/home两个目录创建成一个镜像文件。镜像文件为system2.img,放置在/tmp目录下
  • 同时,Linux的/root目录在镜像文件中的目录为/isoroot,Linux的/home在镜像文件中的目录为/isohome
mkisofs -r  -V 'linux_file'  -o  /tmp/system2.img  -graft-point  /isoroot=/root  /isohome=/home

  • 第二步:将system2.img通过loop设备挂载到/data目录下
mount -o loop  /tmp/system2.img  /data

  • 第三步:挂载之后,查看/data目录内容。可以看到就是我们想要的格式

制作/修改可启动光盘镜像文件

  • 我们可以通过修改原版的光盘镜像文件,改成可以自动加载某些程序的流程,让光盘房主主机光驱后,只要开机利用光盘来启动,那就直接安装系统,等于自动挂处理,这个比较麻烦,需要用到kickstart技术。此处我们不谈这个,我们下面只介绍,如何让光盘的内容被修改之后,仍可以启动
  • 我们有个光盘在/home下,名为ubuntu-14.04.5-desktop-amd64.iso
  • 第一步:查看一下ubuntu-14.04.5-desktop-amd64.iso光盘的内容
isoinfo -d -i /home/ubuntu-14.04.5-desktop-amd64.iso

  • 第二步:将这张光盘挂载到/mnt目录下
mount /home/ubuntu-14.04.5-desktop-amd64.iso  /mnt

  • 第三步:建立一个/srv/newcd目录,然后将光盘的所有数据都复制到/srv/newcd目录下(rsync可以完整的复制所有的权限属性等数据,也能够处理镜像文件)
mkdir /srv/newcdrsync  -a /mnt/  /srv/newcd

  • 第四步:假设已经处理完毕你在/srv/newcd里面所要进行的操作,准备简历iso文件
  • 列出/srv/newcd/isolinux/目录内的内容:ll /srv/newcd/isolinux/
  • 进入到/srv/newcd目录内:cd  /srv/newcd
  • 输入如下的命令,注意,最后是一个路径,我这里是个 '.' 代表当前路径
mkisofs -o /custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot  -V 'Ubuntu 14.04.5' -boot-load-size 4 -boot-info-table -R -J -v -T . 

  • 此时在你的根目录下就会有一个/custom.iso文件存在,可以将该光盘刻录出来

三、光盘刻录(cdrecord、wodim)

  • 旧版的刻录工具是cdrecord,不过现在使用的是wodim。你可以自己选择使用,下面我使用wodim进行光盘的刻录
  • 命令格式:
wodim  --devices  dev=/dev/sr0  ==>查询刻录机的bus位置
wodim  -v  dev=/dev/sr0  blank=[fast/all]  ==>摸出重复读写盘
wodim  -v  dev=/dev/sr0  -format  ==>格式化DVD+RW
wodim  -v  dev=/dev/sr0  [可用选项功能]  file.iso  ==>
  • 相关选项与参数:
    • --devices :用在扫描磁盘总线并找出可用的刻录机,后续的设备为ATA接口
    • -v:在cdreocrd运行的过程中显示过程
    • dev=dev/sr0:可以找出此光驱的bus地址,非常重要
    • blank=[fast/all] :blank为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整
    • -format:对光盘进行格式化,但是只针对DVD+RW这种格式的DVD而已
  • 可用选项功能:主要是写入CD/DVD时可使用的选项
    • -data:指定后面的文件以数据格式写入,不是以CD音轨(-audio)方式写入
    • speed=速度值:指定刻录的速度,例如CD可用speed=40倍数,DVD则可用speed=4等
    • -eject:指定刻录完毕后自动推出光盘
    • fs=Ym:指定缓冲内存大小,可用在镜像文件先暂存至缓冲内存,默认为4m,一般建议可增加到8m,不过,还是得视你的刻录机而定
    • driveropts=burnfree:(仅针对DVD使用),打开Buffer  Underrun Free模式的写入功能
    • -sao:(仅针对DVD使用)支持DVD-RW的格式

检测你的刻录机所在位置

  • 要刻录首先要找到刻录机才行。由于早期的刻录机都使用SCSI接口,因此查询刻录机的方法就要配合着SCSI接口的标识来处理。查询刻录机的命令如下(/dev/sr0是Linux光驱的名称)
wodim --devices dev=/dev/sr0

  • 可以看到光驱的名称为:VMware SATA CD01
  • 注意:如果你查询到的是'QEMU DVD=ROM'之类的,这个是虚拟机内的虚拟光驱,无法插入真正的光盘

开始CD/DVD的刻录操作

  • 上面我们使用mkisofs在/tmp下面建立的system2.img镜像文件,我们下面开始对这个镜像文件进行刻录
  • 第一步:先抹除光盘的原始内容(非可重复读写可省略此步骤)
wodim -v dev=/dev/sr0  blank=fast
  • 此步会出现一堆信息告诉你抹除的速度,而且会有10秒钟的时间等待你的取消
  • 第二步:开始刻录
woism  -v dev=/dev/sr0  speed=4 -dummy -eject  /tmp/system2.img
  • 因为加上了-eject选项,所以刻录完成之后,DVD会自动推出光驱,记得推回去
  • 第三步:刻录完成之后,挂载一下(挂载到/mnt目录下),看看一下里面的内容
挂载:mount  /dev/sr0  /mnt
查看内容:ll  /mnt

  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。


http://chatgpt.dhexx.cn/article/uvZ6eNcl.shtml

相关文章

使用最新版UltraISO将ISO镜像刻录到U盘

1. 使用最新版UltraISO将ISO镜像刻录到U盘 一定要是最新版,试用版都可以,按下图操作: 2. U盘启动电脑进入安装界面 正常情况下你应该会看到下面的这个界面: 选择第一项,然后按TAB键,然后会看到下面这个&a…

刻录U盘镜像

Windows下刻录 刻录windows镜像的话,可以用UltraISO软碟通https://cn.ultraiso.net/ 可以无限试用 (1) 打开一个镜像文件XXX.ios (2) menu->启动->写入硬盘映像 (3)会自动识别U盘&#x…

如何利用UltraISO将系统镜像刻录到U盘上

【阅读文章申明】 作者只是想把自己实践中的经验分享给大家,如果文章里面有在大神面前显的很低级的知识点。那么大神你可以不看,请不要发一些“浪费流量”“辣鸡”之类嘲讽的话,这也不是交流的一种方式。每一篇文章都是作者自己。截图&#x…

Rufus刻录大于4G系统镜像

系统安装刻录U盘时经常会遇到ISO大于4G,使用UltraISO等工具无法刻录的问题。今天给大家介绍一款小巧好用的U盘刻录工具Rufus,Rufus相对于软碟通可以刻录UEFI系统,可以刻录大于4G系统镜像。 1、下载地址 Index of /downloadshttp://rufus.ie…

【Linux】Linux环境下制作ISO镜像与刻录U盘

文章目录 前言一、工具包安装二、自定义镜像文件2.1 拷贝2.2 更新软件包2.3 ks文件与启动项修改2.4 制作ISO文件 三、制作USB启动盘(刻录U盘)3.1 插入U盘3.2 格式化U盘分区3.3 写入镜像 四、总结 前言 本文是记录下在Linux环境下制作系统镜像文件&#…

U盘镜像刻录(制作U盘启动盘)

一、下载镜像刻录软件 UItralSO刻录 链接:https://pan.baidu.com/s/1TVLdHxPGtPzlfRyxyHvsog 提取码:uuny 二、刻录系统ISO文件 1、点击菜单栏的文件,打开要安装的ISO文件 2、插入U盘,刻录前,先格式化 右键U盘&…

Vitis开发笔记:将镜像刻录到SD卡

一、方法1:windows系统下 1. 安装Win32DiskImager.exe工具 下载链接: http://sourceforge.net/projects/win32diskimager/ 2. 如下图所示 步骤1:浏览 镜像 文件的路径 步骤 2:选择 SD 卡分区作为设备(必须小心选择&am…

将镜像刻录到U盘的方法

将镜像刻录到U盘的方法 1.利用到的工具:UltraISO,根据ISO的大小,选择适当的U盘一个(之前要进行格式化); 2.将准备刻录的所有ISO文件放在一个文件夹下; 3.打开…

镜像光盘如何刻录到U盘

在我们给计算机装系统过程中,往往碰到使用镜像光盘安装的情况,在安装过程中出现速度过慢、卡在某个百分比的情况,这个时候为解决安装速度过慢的问题,往往需要把系统镜像转移到U盘(刻录系统镜像到U盘)&#…

tcping : ping ip地址+端口号

起因:windows下cmd ping命令无法ping某一个端口。 对策:使用tcping工具了,Windows没有自带这个小工具,需要自己下载下来,放到 C:\Windows\System32 下。 tcping工具下载地址https://elifulkerson.com/projects/tcping.php 之后将 tcping.ex…

TCP/IP---ping命令

简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。 它所利用的原理是这样的:利用网络上机器IP地址的唯一…

自己动手学TCP/IP--ICMP(ping报文)

ping是ICMP的一种,是用来检查网络是否通畅或者网络连接速度的命令。 报文长度(98bytes)= 以太网头(14bytes)+ IP头(20bytes)+ICMP头(8)+ ICMP数据内容(56字节) 报文格式 ICMP回显请求报文类型是8(ICMP_ECHO),标识符字段是进程的ID,用于接受应答包的处理,序列…

ping命令使用什么协议

几乎每一名网工及弱电工程师都遇到过网络不通的情况,通常判断标准是以外网连通性及 Ping 测试得出结果,而 ping 属于 ICMP 协议中的一个工具。ping 是为了测试另一台主机是否可达,发送一份 ICMP 回显请求给目标主机,并等待 ICMP 回…

ping协议(ICMP)的原理

文章目录 ping的工作原理查询报文类型差错报文类型目标不可达消息重定向消息超时消息 查询报文类型的使用整个流程 差错报文类型的使用 ping的工作原理 ping是基于ICMP(Internet Control Message Protocol)协议工作的,首先熟悉一下ICMP协议 …

ping ip+端口

windows 在window中想要ping 某个地址,只需要在cmd 中输入:pingIP ping 127.0.0.1但是这样只能知道ip是可以ping通的,并不知道它的某个端口是否可以ping通,于是可以使用telnet命令。 只需要在cmd中输入:Telnet IP 端…

2.1 TCP/IP命令(Ping)

2.1 TCP/IP命令(Ping) 1.概念 Ping命令来源于物理学中测声纳脉冲的回应情况,利用它可以检查网络是否连通,从而帮助我们分析和判定网络故障。ping命令使用的是ICMP(Internet Control Message Protocol)协议,即Internet控制消息协议的缩写&am…

通过抓包深入分析HTTPS

本文字数:6189字 预计阅读时间:16分钟 Https介绍 https其实是在http上加了一层(SSL/TSL)加密协议,根据维基百科的解释: ❝ 超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写&a…

用Wireshark抓包分析协议 计算机网络

此篇博客记录使用Wireshark抓包分析协议。 目录 一、DNS 二、分析TCP握手过程 三、TLS报文 四、HTTP协议 五、SMTP 六、ARP 七、RTP 八、RTMP 一、DNS DNS是域名系统,Domain Name System的缩写,是基于TCP/IP的一个服务。DNS是将主机名到IP地址转…

TCP/IP协议抓包分析

目录 一、TCP/IP协议在协议中分层的位置 二、TCP三次握手流程 三、打开wireshark抓包 四、TCP三次握手分析 1、TCP第一次握手 五、四次挥手流程 六、四次挥手抓包分析 一、TCP/IP协议在协议中分层的位置 二、TCP三次握手流程 1、客户端向服务端发送⼀个SYN1(…

使用Wireshark抓包分析TCP协议

wireshark数据包详细栏每个字段对应的分层。 1、分层介绍 1.1、数据链路层 我们点开这个字段,从该字段中可以看到相邻两个设备的MAC地址 1.2、网络层 本层主要负责将TCP层传输下来的数据加上目标地址和源地址。 1.3、传输层 这一层用到了TCP协议 tcp包头 每个字…