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