用安装好的虚拟机制作CentOS光盘镜像

简介:
制作条件:一台装有CentOS系统的计算机或者虚拟机,CentOS光盘。本次试验所用虚拟机为Vmware Workstation-7.0.0CentOS光盘版本为CentOS-5.4-i386-bin-DVD
步骤如下:
打开虚拟机的控制台,创建iso 以及iso/CentOS文件夹
#mkdir  -pv iso/CentOS
使用ls命令查看文件夹是否创建成功,在这个目录下,还看到有一个文件是install.log,用vim编辑器或者是cat命令查看到这个文件中有很多以Installing开头的文件(这些文件就是此虚拟机上已经安装过的系统文件,Installing后面的是文件名),现在需要从光盘上找到与它们一样的文件,然后把这些从光盘上找到的文件复制的虚拟机上,请注意,在install.log文件中,有一些文件是以数字开头的,例如:Installing 30:bind-9.3.6-4.P1.el5.i386
 然而这些文件数目很多,而且,我们还知道,在光盘文件中,文件是以.rpm结尾的。Install.log中的文件名和光盘中的文件名并不是完全相同的。真是困难重重啊!呵呵……要解决这些问题,当然不可能一个一个的从光盘上复制啦!这时,linux的强大之处就体现出来了! 完全可以整个shell脚本来执行。但是在整脚本之前,还有一些准备工作要完成。
先建立一个文件,命名为packages.txt   这个文件的作用就是放置那些从Install.log文件中整出来的东东!那么这些东东是怎么整出来的呢?请看命令:
    #awk ‘/^Installing/{print $2}’  Install.log  |  sed  ‘s/^[0-9]*//g’  >>  packages.txt
现在好了,知道packages.txt文件的作用了吧?接下来做什么呢?
接下来的任务是挂载光盘:
                 # mkidr /media/cdrom
                 #mount  /dev/cdrom    /media/cdrom
 好!现在开始编个脚本来执行一下,就以cprpm.sh命名吧!
                   #vim cprpm.sh
切换到文本编辑模式:(终于可以写脚本啦!
#!/bin/bash
#cprpm.sh
FILE='/root/packages.txt'
DEST_DIR='/root/iso/CentOS'
SRC_DIR='/media/cdrom/CentOS'
while read LINE
 do
  cp $SRC_DIR/$LINE.rpm $DEST_DIR || echo "$LINE  copy is error" >>cperr.txt
done < $FILE
~                                                                               
~     
   好了,脚本写好了!要记得保存哦!当然,脚本写好后,要调试一下先!执行命令:
bash –n  cprpm.sh
再来执行一下脚本(可千万别忘记执行脚本啊!本人就是因为这个问题,白白浪费了大半天的时间):
bash –x  cprpm.sh
  执行完脚本后,查看一下/root/iso/CentOS/目录下是否有存在文件。(看到目录下很多的东东,总算觉得刚才写脚本的心血没有白费啊!^_^ 
  做到这里,已经向前迈了一大步啦!来庆贺一下吧?
      切换到光盘目录下:
                    #cd /media/cdrom
      /media/cdrom目录下的一些文件复制到/root/iso目录下:
                    #cp -r .treeinfo .discinfo images/ isolinux/ repodata/ RPM-GPG-KEY-CentOS-5   EULA   GPL   /root/iso/
      可以查看一下是否复制成功:
                     #du  -sh ./iso/
      切换到/iso/isolinux/目录下:
                    #cd /iso/isolinux/
编辑isolinux.cfg文件:
                   #vim isolinux.cfg
        将第一行内容  default linux
改为 default linux ks=cdrom:ks.cfg    修改好后,保存退出。
     好的!切换回主目录,并且复制编辑一个很重要的文件,这个步骤有点繁琐,要仔细哈!(真的很重要,本人在这个问题上也发费了很长一段时间)。千万不要被下面的代码吓坏了啊,^_^呵呵^_^ 其实要修改的行并不是很多的,也就区区六行而已,对你来说,只是小菜一碟啦,呵呵 
开始修改啦!!
将第1行的install改为text
   在第4行加上key  ——skip 
 5行改为keyboard  ——skip
8行改为rootpw  redhat
9和第11行的“enabled”改为“disabled
在第23后面添加以下两行:
bootloader
reboot
本人把这些代码复制到这里,只是想说明一些其他的设置。在第一段的1423行被#注释的部分,代表着磁盘的自动分区,如打开这些设置,系统在安装时会自动分区,但同时也可能会出现意想不到的错误,因此不建议初试者进行设置。
               #cd 
               #cp   anaconda-ks.cfg   iso/ks.cfg
               #cd   iso/
1 # Kickstart file automatically generated by anaconda.
  2 install
  3 cdrom
  4 lang en_US.UTF-8
  5 keyboard us
  6 xconfig --startxonboot
  7 network --device eth0 --bootproto dhcp
  8 rootpw --iscrypted $1$Vsudch9w$pNe6q6ZoMZ3yOhPd9Pets/
  9 firewall --enabled --port=22:tcp
 10 authconfig --enableshadow --enablemd5
 11 selinux --enforcing
 12 timezone --utc Asia/Shanghai
 13 bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
 14 # The following is the partition information you requested
 15 # Note that any partitions you deleted are not expressed
 16 # here so unless you clear all partitions first, this is
 17 # not guaranteed to work
 18 #clearpart --linux --drives=sda
 19 #part /boot --fstype ext3 --size=100 --ondisk=sda
 20 #part pv.2 --size=0 --grow --ondisk=sda
 21 #volgroup VolGroup00 --pesize=32768 pv.2
 22 #logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=208 --grow --maxsize=41    6
 23 #logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
             修改的结果为:
1 # Kickstart file automatically generated by anaconda.
  2 text
  3 cdrom
  4 key --skip
  5 lang en_US.UTF-8
  6 keyboard --skip
  7 xconfig --startxonboot
  8 network --device eth0 --bootproto dhcp
  9 firewall --disabled --port=22:tcp
 10 authconfig --enableshadow --enablemd5
 11 selinux –disabled
 12 rootpw redhat               //设置默认密码为redhat
 13 timezone --utc Asia/Shanghai
 14 bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
 15 # The following is the partition information you requested
 16 # Note that any partitions you deleted are not expressed
 17 # here so unless you clear all partitions first, this is
 18 # not guaranteed to work
 19 #clearpart --linux --drives=sda
 20 #part /boot --fstype ext3 --size=100 --ondisk=sda
 21 #part pv.2 --size=0 --grow --ondisk=sda
 22 #volgroup VolGroup00 --pesize=32768 pv.2
 23 #logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=208 --grow --maxsize=41    6
 24 #logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
 25 bootloader
 26 reboot
 
进行到现在为止,已经走完了两大步,还有一大步就大功告成啦,所以,还需要加油哦!
切换回iso目录:
       #cd   iso/
       # createrepo   -g repodata/comps.xml   ../iso
    (注释:在执行这个步骤时,有可能会提示没有没有createrepo命令,解决办法是切换至/media/cdrom/CentOS/目录下,安装createrepo软件包。
#rpm  -ivh  createrepo-0.4.11-3.el5.noarch.rpm
安装完成后切换回iso目录。
   下面执行最后一个命令,也是最长的一个命令,终于可以完成任务了,成就感啊!
 
#mkisofs  -o MyCENTOS.iso  -b  isolinux/isolinux.bin  -c  isolinux/boot.cat -no-emul-boot  -boot-load-size 4  -boot-info-table  -R  -J  -v  -T  iso/
   
时间有点长,要耐心一些,等待一下就可以啦!!
    却换回根目录,可以看到名称为MyCENTOS.iso的文件,好了,大功告成,镜像文件
制作成功。
  
后面的工作就是把镜像文件复制出来,然后在物理机上新建一台虚拟机测试一下,验证刚刚的劳动成果!
 
 
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
这些天再考虑如何写一个脚本,让上面的步骤自动运行并生成一个镜像文件。这个有难度,思考中…….









本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/274911,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
Linux 虚拟化 Windows
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
45 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
|
7天前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
53 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
25天前
|
安全 Linux
CentOS下载ISO镜像的方法
访问CentOS官方网站(https://www.centos.org/download/),在“Downloads”页面找到ISO镜像下载链接,选择所需版本和架构(如x86_64)开始下载。CentOS分为Linux版和Stream版,前者每两年发行一次并提供10年安全维护,后者为滚动更新。旧版本可在Vault(https://vault.centos.org/)下载。建议选择DVD格式镜像,包含完整系统和常用软件。
821 14
CentOS下载ISO镜像的方法
|
20天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
112 25
|
1月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
81 20
|
1月前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
147 26
|
2月前
|
存储 分布式计算 Hadoop
Centos7.9安装kerberos
Centos7.9安装kerberos
97 25
|
2月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
221 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
存储 Shell 网络安全
Centos7.9安装openldap
Centos7.9安装openldap
63 16
|
2月前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
74 15

热门文章

最新文章