livecd制作 centos

 LiveCD 制作
制作需要的工具:
         livecd-tool 包
         TeClient的iso目录(将TeClient的iso文件拷到一个目录下面)
         genisoimage iso生成工具
思路:
         配置好一个完整的LINUX系统,将此系统打包
         使用livecd-tools工具 生成一个压缩镜像(镜像里面装的是一个最小化系统)
         解压缩,然后将打包好的LINUX解压的里面,最后生成压缩镜像
         将生成好的压缩镜像拷入到LINUX的iso里面
最后配置菜单生成iso
 
注意:
使用tar将系统拷贝到压缩镜像时,压缩镜像之后4G的大小,
         配置菜单的时候,要在kernel行加入biosdevname=0  net.ifnames=0
         否则网卡名不会是eth0
         备份的时候不要备份/etc/fstab和boot proc目录 镜像将不重要的删除
1备份完成的TeClient系统
         tar –zcvf /mnt/backos.tgz  --exclude=/etc/fstab –exclude=/boot –exclude=/proc –exclude=/sys –exclude=/mnt –exclude=/media /
 
2 生成压缩镜像
         定义最小化安装的ks文件,用来安装最小化系统
         vi ks.cfg
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
auth --useshadow --enablemd5
selinux --disabled
firewall --disabled
repo  --name=a-base  --baseurl=http://mirrors.163.com/centos/7/os/$basearch/
repo --name=a-epel   -baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
repo --name=a-extras   --baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
repo --name=a-centosplus --baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
repo --name=a-live    --baseurl=http://www.nanotechnologies.qc.ca/propos/linux/centos-live/$basearch/live
%packages
bash
kernel
syslinux
passwd
policycoreutils
perl
firewalld
chkconfig
authconfig
rootfiles
comps-extras
xkeyboard-config
grub2
coreutils
parted
%end
 
安装livecd-tools工具
         yum install –y livecd-tools
生产最小化镜像
         livecd-creator --config=ks.cfg --cache=/home/livecd/cache --tmpdir=/home/livecd/tmp
当前目录下面会生成一个livecd-ks-xxxx.iso
 
3 解压缩,将备份好的系统解压到生成的压缩镜像内
         准备一个挂着目录  /home/livecd/test
         准备一个存放零时文件目录 /temp/tmp
         mkdir –p /temp/tmp
         mkdir –p /home/livecd/test
         mount -o loop,rw livecd-ks-201702041124.iso /home/livecd/test
cp -a /home/livecd/test/LiveOS/squashfs.img /temp/tmp
umount /home/livecd/test
cd /temp/tmp/
unsquashfs squashfs.img
cd squashfs-root/LiveOS
mount -o loop,rw ext3fs.img /home/livecd/test
tar xf /mnt/backos.tgz –C /home/livecd/test
umount /home/livecd/test
cd /temp/tmp/
mv squashfs.img squashfs.img.bak
mksquashfs squashfs-root squashfs.img
 
4,将生成的squashfs.img 复制到TeClient的iso里面 然后生成iso
    TeClient 的iso目录 /TeClient/test_Teclient
    cp /temp/tmp/squashfs.img   /TeClient/test_Teclient/LiveOS
         修改iso文件里面的sha256的值
         查看squashfs.img 的sha256值
[root@pdj LiveOS]# sha256sum squashfs.img
25075a6f7d9b7588b0587ac677c55f72981cdf038daa2e73dd18a321054cbf2b  squashfs.img
vi /TeClient/test_Teclient/.treeinfo
LiveOS/squashfs.img = sha256:25075a6f7d9b7588b0587ac677c55f72981cdf038daa2e73dd18a321054cbf2b
 
5 修改菜单/TeClient/test_Teclient /isolinux/isolinux.cfg
vi /TeClient/test_Teclient /isolinux/isolinux.cfg
MENU SEPARATOR
label linux
 menu label [ ^I ] TeClient LiveCD
         kernel vmlinuz biosdevname=0  net.ifnames=0
 append  initrd=initrd.img inst.stage2=hd:LABEL=TeClient rd.live.image quiet
 
生成iso文件
         cd /TeClient
genisoimage -quiet -V "TeClient" -J -R -T -v -boot-info-table -no-emul-boot -boot-load-size 4 –b isolinux/isolinux.bin -c isolinux/boot.cat -o /pub/livecd_teclient.iso test_Teclient/
 
 
补充:       
     解决ext3fs.img文件只有4G的问题
 
将ext3fs.img 扩展4G空间
dd if=/dev/zero of=test count=4096 bs=1M
cat test >> ext3fs.img
e2fsck -f ext3fs.img
resize2fs ext3fs.img
 
posted @ 2017-04-01 14:23  不会游泳的鱼pdj  阅读(2120)  评论(0编辑  收藏  举报