鸟哥的Linux私房菜
  • 目录及概述
  • 第零章 计算机概论
    • 0.1 电脑-辅助人脑的好工具
    • 0.2 个人电脑架构与相关设备元件
    • 0.3 数据表示方式
    • 0.4 软件程序运行
    • 0.5 重点回顾
    • 0.6 本章习题
    • 0.7 参考资料与延伸阅读
  • 第一章 Linux是什么与如何学习
    • 1.1 Linux是什么
    • 1.2 Torvalds的Linux发展
    • 1.3 Linux当前应用的角色
    • 1.4 Linux该如何学习
    • 1.5 重点回顾
    • 1.6 本章习题
    • 1.7 参考资料与延伸阅读
  • 第二章 主机规划与磁盘分区
    • 2.1 Linux与硬件的搭配
    • 2.2 磁盘分区
    • 2.3 安装Linux前的规划
    • 2.4 重点回顾
    • 2.5 本章习题
    • 2.6 参考资料与延伸阅读
  • 第三章 安装CentOS7.X
    • 3.1 本练习机的规划-尤其是分区参数
    • 3.2 开始安装CentOS_7
    • 3.3 多重开机安装流程与管理
    • 3.4 重点回顾
    • 3.5 本章习题
    • 3.6 参考资料与延伸阅读
  • 第四章 首次登陆与线上求助
    • 4.1 首次登录系统
    • 4.2 文字模式下指令的下达
    • 4.3 Linux系统的线上求助man_page与info_page
    • 4.4 超简单文字编辑器-nano
    • 4.5 正确的关机方法
    • 4.6 重点回顾
    • 4.7 本章习题
    • 4.8 参考资料与延伸阅读
  • 第五章 Linux的文件权限与目录配置
    • 5.1 使用者与群组
    • 5.2 Linux文件权限概念
    • 5.3 Linux目录配置
    • 5.4 重点回顾
    • 5.5 本章习题
    • 5.6 参考资料与延伸阅读
  • 第六章 Linux文件与目录管理
    • 6.1 目录与路径
    • 6.2 文件与目录管理
    • 6.3 文件内容查阅
    • 6.4 文件与目录的默认权限与隐藏权限
    • 6.5 指令与文件的搜寻
    • 6.6 极重要的复习-权限与指令间的关系
    • 6.7 重点回顾
    • 6.8 本章习题
    • 6.9 参考资料与延伸阅读
  • 第七章 Linux磁盘与文件系统管理
    • 7.1 认识Linux文件系统
    • 7.2 文件系统的简单操作
    • 7.3 磁盘的分区-格式化-检验与挂载
    • 7.4 设置开机挂载
    • 7.5 内存交换空间swap创建
    • 7.6 文件系统的特殊观察与操作
    • 7.7 重点回顾
    • 7.8 本章习题
    • 7.9 参考资料与延伸阅读
  • 第八章 文件的压缩与打包
    • 8.1 压缩文件的用途与技术
    • 8.2 Linux系统常见的压缩指令
    • 8.3 打包指令-tar
    • 8.4 XFS文件系统的备份与还原
    • 8.5 光盘写入工具
    • 8.6 其他常见的压缩与备份工具
    • 8.7 重点回顾
    • 8.8 本章习题
    • 8.9 参考资料与延伸阅读
  • 第九章 vim程序编辑器
    • 9.1 vi与vim
    • 9.2 vi的使用
    • 9.3 vim的额外功能
    • 9.4 其他vim使用注意事项
    • 9.5 重点回顾
    • 9.6 本章习题
    • 9.7 参考资料与延伸阅读
  • 第十章 认识与学习BASH
    • 10.1 认识bash这个shell
    • 10.2 shell的变量功能
    • 10.3 命令别名与历史命令
    • 10.4 BashShell的操作环境
    • 10.5 数据流重导向
    • 10.6 管线命令-pipe
    • 10.7 重点回顾
    • 10.8 本章习题
    • 10.9 参考资料与延伸阅读
  • 第十一章 正则表达式与文件格式化处理
    • 11.1 开始之前-什么是正则表达式
    • 11.2 基础正则表达式
    • 11.3 延伸正则表达式
    • 11.4 文件的格式化与相关处理
    • 11.5 重点回顾
    • 11.6 本章习题
    • 11.7 参考资料与延伸阅读
  • 第十二章 学习shell scripts
    • 12.1 什么是ShellScripts
    • 12.2 简单的ShellScript练习
    • 12.3 善用判断式
    • 12.4 条件判断式
    • 12.5 循环loop
    • 12.6 ShellScript的追踪与debug
    • 12.7 重点回顾
    • 12.8 本章习题
  • 第十三章 Linux帐号管理与ACL权限控制
    • 13.1 Linux的账户与群组
    • 13.2 账号管理
    • 13.3 主机的细部权限规划-ACL的使用
    • 13.4 使用者身份切换
    • 13.5 使用者的特殊shell和PAM模块
    • 13.6 Linux主机上的使用者讯息传递
    • 13.7 CentOS7环境下大量创建账号的方法
    • 13.8 重点回顾
    • 13.9 本章习题
    • 13.10 参考资料与延伸阅读
  • 第十四章 磁盘配额(Quota)与进阶文件系统管理
    • 14.1 磁盘配额Quota的应用与实作
    • 14.2 软件磁盘阵列SoftwareRAID
    • 14.3 逻辑卷轴管理员LogicalVolumeManager
    • 14.4 重点回顾
    • 14.5 本章习题
    • 14.6 参考资料与延伸阅读
  • 第十五章 例行性工作调度(crontab)
    • 15.1 什么是例行性工作调度
    • 15.2 仅执行一次的工作调度
    • 15.3 循环执行的例行性工作调度
    • 15.4 可唤醒停机期间的工作任务
    • 15.5 重点回顾
    • 15.6 本章习题
  • 第十六章 程序管理与SELinux初探
    • 16.1 什么是程序process
    • 16.2 工作管理JobControl
    • 16.3 程序管理
    • 16.4 特殊文件与程序
    • 16.5 SELinux初探
    • 16.6 重点回顾
    • 16.7 本章习题
    • 16.8 参考资料与延伸阅读
  • 第十七章 认识系统服务(daemon)
    • 17.1 什么是daemon与服务service
    • 17.2 通过systemctl管理服务
    • 17.3 systemctl针对service类型的配置文件
    • 17.4 systemctl针对timer的配置文件
    • 17.5 CentOS7.x默认启动的服务简易说明
    • 17.6 重点回顾
    • 17.7 本章习题
    • 17.8 参考资料与延伸阅读
  • 第十八章 认识与分析登录文件
    • 18.1 什么是登录文件
    • 18.2 rsyslog.service-记录登录文件的服务
    • 18.3 登录文件的轮替logrotate
    • 18.4 systemd-journald.service简介
    • 18.5 分析登录文件
    • 18.6 重点回顾
    • 18.7 本章习题
    • 18.8 参考资料与延伸阅读
  • 第十九章 开机流程、模块管理与Loader
    • 19.1 Linux的开机流程分析
    • 19.2 核心与核心模块
    • 19.3 BootLoader-Grub2
    • 19.4 开机过程的问题解决
    • 19.5 重点回顾
    • 19.6 本章习题
    • 19.7 参考资料与延伸阅读
  • 第二十章 网络设置与备份策略
    • 20.1 系统基本设置
    • 20.2 服务器硬件数据的收集
    • 20.3 备份要点
    • 20.4 备份的种类和频率与工具的选择
    • 20.5 鸟哥的备份策略
    • 20.6 灾难复原的考虑
    • 20.7 重点回顾
    • 20.8 本章习题
    • 20.9 参考资料与延伸阅读
  • 第二十一章 软件安装:源代码与Tarball
    • 21.1 开源代码的软件安装与升级简介
    • 21.2 使用传统程序语言进行编译的简单范例
    • 21.3 用make进行宏编译
    • 21.4 Tarball的管理与建议
    • 21.5 函数库管理
    • 21.6 检验软件正确性
    • 21.7 重点回顾
    • 21.8 本章习题
    • 21.9 参考资料与延伸阅读
  • 第二十二章 软件安装:RPM,SRPM与YUM功能
    • 22.1 软件管理员简介
    • 22.2 RPM软件管理程序-rpm
    • 22.3 YUM线上升级机制
    • 22.4 SRPM的使用-rpmbuild
    • 22.5 重点回顾
    • 22.6 本章习题
    • 22.7 参考资料与延伸阅读
  • 第二十三章 X Window设置介绍
    • 23.1 什么是XWindowSystem
    • 23.2 XServer配置文件解析与设置
    • 23.3 显卡驱动程序安装范例
    • 23.4 重点回顾
    • 23.5 本章习题
    • 23.6 参考资料与延伸阅读
  • 第二十四章 核心编译
    • 24.1 编译前的任务-认识核心与取得核心源代码
    • 24.2 核心编译的前处理与核心功能选择
    • 24.3 核心的编译与安装
    • 24.4 额外-单一核心模块编译
    • 24.5 以最新核心版本编译CentOS7.x的核心
    • 24.6 重点回顾
    • 24.7 本章习题
    • 24.8 参考资料与延伸阅读
Powered by GitBook
On this page
  • 8.5.1 mkisofs:创建镜像文件
  • 8.5.2 cdrecord:光盘烧录工具
  1. 第八章 文件的压缩与打包

8.5 光盘写入工具

事实上,企业还是挺爱用磁带来进行备份的,容量高、储存时限长、挺耐摔等等,至于以前很热门的 DVD/CD 等,则因为储存速度慢、 容量没有大幅度提升,所以目前除了行政部门为了“归档”而需要的工作之外,这个咚咚的存在性已经被 U盘所取代了。 你可能会谈到说,不是还有蓝光嘛?但这家伙目前主要应用还是在多媒体影音方面,如果要大容量的储存,个人建议,还是使用 USB 外接式硬盘, 一颗好几个 TB 给你用,不是更爽嘛?所以,鸟哥是认为,DVD/CD 虽然还是有存在的价值 (例如前面讲的归档),不过,越来越少人使用了。

虽然很少使用,不过,某些特别的情况下,没有这东西又不行~因此,我们还是来介绍一下创建光盘镜像文件以及烧录软件吧! 否则,偶而需要用到时,找不到软件数据还挺伤脑筋的!文字模式的烧录行为要怎么处理呢?通常的作法是这样的:

  • 先将所需要备份的数据创建成为一个镜像文件(iso),利用 mkisofs 指令来处理;

  • 将该镜像文件烧录至光盘或 DVD 当中,利用 cdrecord 指令来处理。

下面我们就分别来谈谈这两个指令的用法吧!

8.5.1 mkisofs:创建镜像文件

烧录可开机与不可开机的光盘,使用的方法不太一样喔 !

  • 制作一般数据光盘镜像文件

我们从 FTP 站捉下来的 Linux 镜像文件 (不管是 CD 还是 DVD) 都得要继续烧录成为实体的光盘/DVD 后, 才能够进一步的使用,包括安装或更新你的 Linux 啦!同样的道理,你想要利用烧录机将你的数据烧录到 DVD 时, 也得要先将你的数据包成一个镜像文件,这样才能够写入DVD片中。而将你的数据包成一个镜像文件的方式就通过 mkisofs 这个指令即可。 mkisofs 的使用方式如下:

[root@study ~]# mkisofs [-o 镜像文件] [-Jrv] [-V vol] [-m file] 待备份文件... \
>  -graft-point isodir=systemdir ...
选项与参数:
-o :后面接你想要产生的那个镜像文件文件名。
-J :产生较相容于 windows 机器的文件名结构,可增加文件名长度到 64 个 unicode 字符
-r :通过 Rock Ridge 产生支持 Unix/Linux 的文件数据,可记录较多的信息(如 UID/GID等) ;
-v :显示创建 ISO文件的过程
-V vol  :创建 Volume,有点像 Windows 在文件资源管理器内看到的 CD title 的东西
-m file :-m 为排除文件 (exclude) 的意思,后面的文件不备份到镜像文件中,也能使用 * 万用字符喔
-graft-point:graft有转嫁或移植的意思,相关数据在下面文章内说明。

其实 mkisofs 有非常多好用的选项可以选择,不过如果我们只是想要制作“数据光盘”时,上述的选项也就够用了。 光盘的格式一般称为 iso9660 ,这种格式一般仅支持旧版的 DOS 文件名,亦即文件名只能以 8.3 (文件名8个字符,扩展名3个字符) 的方式存在。如果加上 -r 的选项之后,那么文件信息能够被记录的比较完整,可包括UID/GID与权限等等! 所以,记得加这个 -r 的选项。

此外,一般默认的情况下,所有要被加到镜像文件中的文件都会被放置到镜像文件中的根目录, 如此一来可能会造成烧录后的文件分类不易的情况。所以,你可以使用 -graft-point 这个选项,当你使用这个选项之后, 可以利用如下的方法来定义位于镜像文件中的目录,例如:

  • 镜像文件中的目录所在=实际 Linux 文件系统的目录所在

  • /movies/=/srv/movies/ (在 Linux 的 /srv/movies 内的文件,加至镜像文件中的 /movies/ 目录)

  • /linux/etc=/etc (将 Linux 中的 /etc/ 内的所有数据备份到镜像文件中的 /linux/etc/ 目录中)

我们通过一个简单的范例来说明一下吧。如果你想要将 /root, /home, /etc 等目录内的数据通通烧录起来的话, 先得要处理一下镜像文件,我们先不使用 -graft-point 的选项来处理这个镜像文件试看看:

[root@study ~]# mkisofs -r -v -o /tmp/system.img /root /home /etc
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.11 (Linux)
Scanning /root
.....(中间省略).....
Scanning /etc/scl/prefixes
Using SYSTE000.;1 for  /system-release-cpe (system-release)      # 被改名子了!
Using CENTO000.;1 for  /centos-release-upstream (centos-release) # 被改名子了!
Using CRONT000.;1 for  /crontab (crontab)
genisoimage: Error: '/etc/crontab' and '/root/crontab' have the same Rock Ridge name 'crontab'.
Unable to sort directory                                         # 文件名不可一样啊!
NOTE: multiple source directories have been specified and merged into the root
of the filesystem. Check your program arguments. genisoimage is not tar.
# 看到没?因为文件名一模一样,所以就不给你创建 ISO 档了啦!
# 请先删除 /root/crontab 这个文件,然后再重复执行一次 mkisofs 吧!

[root@study ~]# rm /root/crontab
[root@study ~]# mkisofs -r -v -o /tmp/system.img /root /home /etc
.....(前面省略).....
 83.91% done, estimate finish Thu Jul  2 18:48:04 2015
 92.29% done, estimate finish Thu Jul  2 18:48:04 2015
Total translation table size: 0
Total rockridge attributes Bytes: 600251
Total directory Bytes: 2150400
Path table size(Bytes): 12598
Done with: The File(s)                     Block(s)    58329
Writing:   Ending Padblock                 Start Block 59449
Done with: Ending Padblock                 Block(s)    150
Max brk space used 548000
59599 extents written (116 MB)

[root@study ~]# ll -h /tmp/system.img
-rw-r--r--. 1 root root 117M Jul  2 18:48 /tmp/system.img

[root@study ~]# mount -o loop /tmp/system.img /mnt
[root@study ~]# df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      117M  117M     0 100% /mnt

[root@study ~]# ls /mnt
abrt            festival          mail.rc                   rsyncd.conf
adjtime         filesystems       makedumpfile.conf.sample  rsyslog.conf
alex            firewalld         man_db.conf               rsyslog.d
# 看吧!一堆数据都放置在一起!包括有的没有的目录与文件等等!

[root@study ~]# umount /mnt
# 测试完毕要记得卸载!

由上面的范例我们可以看到,三个目录 (/root, /home, /etc) 的数据通通放置到了镜像文件的最顶层目录中! 真是不方便~尤其由于 /root/etc 的存在,导致那个 /etc 的数据似乎没有被包含进来的样子!真不合理~ 此时我们可以使用 -graft-point 来处理啰!

[root@study ~]# mkisofs -r -V 'linux_file' -o /tmp/system.img \
>  -m /root/etc -graft-point /root=/root /home=/home /etc=/etc
[root@study ~]# ll -h /tmp/system.img
-rw-r--r--. 1 root root 92M Jul  2 19:00 /tmp/system.img
# 上面的指令会创建一个大文件,其中 -graft-point 后面接的就是我们要备份的数据。
# 必须要注意的是那个等号的两边,等号左边是在镜像文件内的目录,右侧则是实际的数据。

[root@study ~]# mount -o loop /tmp/system.img /mnt
[root@study ~]# ll /mnt
dr-xr-xr-x. 131 root root 34816 Jun 26 22:14 etc
dr-xr-xr-x.   5 root root  2048 Jun 17 00:20 home
dr-xr-xr-x.   8 root root  4096 Jul  2 18:48 root
# 瞧!数据是分门别类的在各个目录中喔这样了解乎?最后将数据卸载一下:

[root@study ~]# umount /mnt

如果你想要将实际的数据直接倒进 ISO 档中,那就得要使用这个 -graft-point 来处理处理比较妥当!不然没有分第一层目录, 后面的数据管理实在是很麻烦。如果你是有自己要制作的数据内容,其实最简单的方法,就是将所有的数据预先处理到某一个目录中, 再烧录该目录即可!例如上述的 /etc, /root, /home 先全部复制到 /srv/cdrom 当中,然后跑到 /srv/cdrom 当中, 再使用类似“ mkisofs -r -v -o /tmp/system.img . ”的方式来处理即可!这样也比较单纯~

  • 制作/修改可开机光盘图像挡

在鸟哥的研究室中,学生常被要求要制作“一键安装”的安装光盘!也就是说,得要修改原版的光盘镜像文件,改成可以自动载入某些程序的流程, 让这片光盘放入主机光驱后,只要开机利用光盘片来开机,那就直接安装系统,不再需要询问管理员一些有的没有的!等于是自动化处理啦! 那些流程比较麻烦,因为得要知道 kickstart 的相关技术等,那个我们先不谈,这里要谈的是,那如何让这片光盘的内容被修改之后, 还可以烧录成为可开机的模样呢?

# 1\. 先观察一下这片光盘里面有啥东西?是否是我们需要的光盘系统!
[root@study ~]# isoinfo -d -i /home/CentOS-7-x86_64-Minimal-1503-01.iso
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: CentOS 7 x86_64
Volume set id:
Publisher id:
Data preparer id:
Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) ...
Copyright File id:
.....(中间省略).....
    Eltorito defaultboot header:
 Bootid 88 (bootable)
        Boot media 0 (No Emulation Boot)
        Load segment 0
        Sys type 0
        Nsect 4

# 2\. 开始挂载这片光盘到 /mnt ,并且将所有数据完整复制到 /srv/newcd 目录去喔
[root@study ~]# mount /home/CentOS-7-x86_64-Minimal-1503-01.iso /mnt
[root@study ~]# mkdir /srv/newcd
[root@study ~]# rsync -a /mnt/ /srv/newcd
[root@study ~]# ll /srv/newcd/
-rw-r--r--. 1 root root    16 Apr  1 07:11 CentOS_BuildTag
drwxr-xr-x. 3 root root    33 Mar 28 06:34 EFI
-rw-r--r--. 1 root root   215 Mar 28 06:36 EULA
-rw-r--r--. 1 root root 18009 Mar 28 06:36 GPL
drwxr-xr-x. 3 root root    54 Mar 28 06:34 images
drwxr-xr-x. 2 root root  4096 Mar 28 06:34 isolinux
drwxr-xr-x. 2 root root    41 Mar 28 06:34 LiveOS
drwxr-xr-x. 2 root root 20480 Apr  1 07:11 Packages
drwxr-xr-x. 2 root root  4096 Apr  1 07:11 repodata
-rw-r--r--. 1 root root  1690 Mar 28 06:36 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root  1690 Mar 28 06:36 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root  2883 Apr  1 07:15 TRANS.TBL
# rsync 可以完整的复制所有的权限属性等数据,也能够进行镜像处理!相当好用的指令喔!
# 这里先了解一下即可。现在 newcd/ 目录内已经是完整的镜像文件内容!

# 3\. 假设已经处理完毕你在 /srv/newcd 里面所要进行的各项修改行为,准备创建 ISO 档!
[root@study ~]# ll /srv/newcd/isolinux/
-r--r--r--. 1 root root     2048 Apr  1 07:15 boot.cat      # 开机的型号数据等等
-rw-r--r--. 1 root root       84 Mar 28 06:34 boot.msg
-rw-r--r--. 1 root root      281 Mar 28 06:34 grub.conf
-rw-r--r--. 1 root root 35745476 Mar 28 06:31 initrd.img
-rw-r--r--. 1 root root    24576 Mar 28 06:38 isolinux.bin  # 相当于开机管理程序
-rw-r--r--. 1 root root     3032 Mar 28 06:34 isolinux.cfg
-rw-r--r--. 1 root root   176500 Sep 11  2014 memtest
-rw-r--r--. 1 root root      186 Jul  2  2014 splash.png
-r--r--r--. 1 root root     2438 Apr  1 07:15 TRANS.TBL
-rw-r--r--. 1 root root 33997348 Mar 28 06:33 upgrade.img
-rw-r--r--. 1 root root   153104 Mar  6 13:46 vesamenu.c32
-rwxr-xr-x. 1 root root  5029136 Mar  6 19:45 vmlinuz       # Linux 核心文件

[root@study ~]# cd /srv/newcd
[root@study newcd]# mkisofs -o /custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
> -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T .

此时你就有一个 /custom.img 的文件存在,可以将该光盘烧录出来啰!就这么简单!

8.5.2 cdrecord:光盘烧录工具

新版的 CentOS 7 使用的是 wodim 这个文字界面指令来进行烧录的行为。不过为了相容于旧版的 cdrecord 这个指令, 因此 wodim 也有链接到 cdrecord 就是了!因此,你还是可以使用 cdrecord 这个指令。不过,鸟哥建议还是改用 wodim 比较干脆! 这个指令常见的选项有下面数个:

[root@study ~]# wodim --devices dev=/dev/sr0...               <==查询烧录机的 BUS 位置
[root@study ~]# wodim -v dev=/dev/sr0 blank=[fast&#124;all]        <==抹除重复读写片
[root@study ~]# wodim -v dev=/dev/sr0 -format                 <==格式化DVD+RW
[root@study ~]# wodim -v dev=/dev/sr0 [可用选项功能] file.iso
选项与参数:
--devices       :用在扫瞄磁盘总线并找出可用的烧录机,后续的设备为 ATA 接口
-v              :在 cdrecord 运行的过程中,显示过程而已。
dev=/dev/sr0    :可以找出此光驱的 bus 位址,非常重要!
blank=[fast&#124;all]:blank 为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整
-format         :对光盘片进行格式化,但是仅针对 DVD+RW 这种格式的 DVD 而已;
[可用选项功能] 主要是写入 CD/DVD 时可使用的选项,常见的选项包括有:
   -data   :指定后面的文件以数据格式写入,不是以 CD 音轨(-audio)方式写入!
   speed=X :指定烧录速度,例如CD可用 speed=40 为40倍数,DVD则可用 speed=4 之类
   -eject  :指定烧录完毕后自动退出光盘
   fs=Ym   :指定多少缓冲内存,可用在将镜像文件先暂存至缓冲内存。默认为 4m,
             一般建议可增加到 8m ,不过,还是得视你的烧录机而定。
针对 DVD 的选项功能:
   driveropts=burnfree :打开 Buffer Underrun Free 模式的写入功能
   -sao                :支持 DVD-RW 的格式
  • 侦测你的烧录机所在位置:

文字模式的烧录确实是比较麻烦的,因为没有所见即所得的环境嘛!要烧录首先就得要找到烧录机才行! 而由于早期的烧录机都是使用 SCSI 接口,因此查询烧录机的方法就得要配合着 SCSI 接口的认定来处理了。 查询烧录机的方式为:

[root@study ~]# ll /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Jun 26 22:14 /dev/sr0 # 一般 Linux 光驱文件名!

[root@study ~]# wodim --devices dev=/dev/sr0
-------------------------------------------------------------------------
 0  dev='/dev/sr0'      rwrw-- : 'QEMU' 'QEMU DVD-ROM'
-------------------------------------------------------------------------

[root@demo ~]# wodim --devices dev=/dev/sr0
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
 0  dev='/dev/sr0'      rwrw-- : 'ASUS' 'DRW-24D1ST'
-------------------------------------------------------------------------
# 你可以发现到其实鸟哥做了两个测试!上面的那部主机系统是虚拟机,当然光驱也是仿真的,没法用。
# 因此在这里与下面的 wodim 用法,鸟哥只能使用另一部 Demo 机器测试给大家看了!

因为上面那部机器是虚拟机内的虚拟光驱 (QEMU DVD-ROM),那个无法塞入真正的光盘片啦!真讨厌~所以鸟哥只好找另一部实体 CentOS 7 的主机系统来测试。 因此你可以看到下面那部使用的就是正统的 ASUS 光驱了!这样会查阅了吗?注意喔,一定要有 dev=/dev/xxx 那一段,不然系统会告诉你找不到光盘! 这真的是很奇怪!不过,反正我们知道光驱的文件名为 /dev/sr0 之类的,直接带入即可。

  • 进行 CD/DVD 的烧录动作:

好了,那么现在要如何将 /tmp/system.img 烧录到 CD/DVD 里面去呢?因为要节省空间与避免浪费,鸟哥拿之前多买的可重复读写的 DVD 四倍数 DVD 片来操作! 因为是可抹除的 DVD,因此可能得要在烧录前先抹除 DVD 片里面的数据才行喔!

# 0\. 先抹除光盘的原始内容:(非可重复读写则可略过此步骤)
[root@demo ~]# wodim -v dev=/dev/sr0 blank=fast
# 中间会跑出一堆讯息告诉你抹除的进度,而且会有 10 秒钟的时间等待你的取消!

# 1\. 开始烧录:
[root@demo ~]# wodim -v dev=/dev/sr0 speed=4 -dummy -eject /tmp/system.img
....(前面省略)....
Waiting for reader process to fill input buffer ... input buffer ready.
Starting new track at sector: 0
Track 01:   86 of   86 MB written (fifo 100%) [buf  97%]   4.0x.       # 这里有流程时间!
Track 01: Total Bytes read/written: 90937344/90937344 (44403 sectors).
Writing  time:   38.337s                                               # 写入的总时间
Average write speed   1.7x.                                            # 换算下来的写入时间
Min drive buffer fill was 97%
Fixating...
Fixating time:  120.943s
wodim: fifo had 1433 puts and 1433 gets.
wodim: fifo was 0 times empty and 777 times full, min fill was 89%.
# 因为有加上 -eject 这个选项的缘故,因此烧录完成后,DVD 会被退出光驱喔!记得推回去!

# 2\. 烧录完毕后,测试挂载一下,检验内容:
[root@demo ~]# mount /dev/sr0/mnt
[root@demo ~]# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
Filesystem      Size  Used Avail Use% Mounted on
/dev/sr0         87M   87M     0 100% /mnt

[root@demo ~]# ll /mnt
dr-xr-xr-x. 135 root root 36864 Jun 30 04:00 etc
dr-xr-xr-x.  19 root root  8192 Jul  2 13:16 root

[root@demo ~]# umount /mnt    <==不要忘了卸载

基本上,光盘烧录的指令越来越简单,虽然有很多的参数可以使用,不过,鸟哥认为,学习上面的语法就很足够了! 一般来说,如果有烧录的需求,大多还是使用图形界面的软件来处理比较妥当~使用文字界面的烧录,真的大部分都是烧录数据光盘较多。 因此,上面的语法已经足够工程师的使用啰!

如果你的 Linux 是用来做为服务器之用的话,那么无时无刻的去想“如何备份重要数据”是相当重要的! 关于备份我们会在第五篇再仔细的谈一谈,这里你要会使用这些工具即可!

Previous8.4 XFS文件系统的备份与还原Next8.6 其他常见的压缩与备份工具

Last updated 2 years ago

因为鸟哥这部测试机的容量比较小,又仅是测试而已啊,因此鸟哥选择 CentOS-7-x86_64-Minimal-1503-01.iso 这个最小安装光盘镜像文件来测试给各位瞧瞧! 假设你已经到昆山科大 取得了最小安装的 Image 档,而且放在 /home 下面~之后我们要将里头的数据进行修改,假设新的镜像文件目录放置于 /srv/newcd 里面,那你应该要这样做:

http://ftp.ksu.edu.tw/FTP/CentOS/7/isos/x86_64/