定制centos安装iso

it2022-05-05  117

定制centos安装iso

参考

https://gist.github.com/pauljeff/4b9ad551cb6c35870d7c https://www.redhat.com/archives/kickstart-list/2014-August/msg00010.html http://www.alexlinux.com/centos-7-kickstart-example http://www.smorgasbork.com/2014/07/16/building-a-custom-centos-7-kickstart-disc-part-1/ https://github.com/joyent/mi-centos-7 http://ngyuki.hatenablog.com/entry/2014/07/08/224533 http://qiita.com/rprev/items/255718ac40b71778c78a #livecd http://minimal.linux-bg.org https://github.com/CentOS/sig-core-livemedia http://billauer.co.il/blog/2012/06/livedvd-kickstart-modified http://multix.jp/headless-liveboot-centos https://github.com/jonlives/centosdojo_resources #book Live Linux CDs: Building and Customizing Bootables The Official Damn Small Linux Book: The Tiny Adaptable Linux That Runs on Anything

usb-disk和usb-cdrom

u盘可制做usb-disk和usb-cdrom两种类型的引导盘。usb-cdrom是用iso写入u盘制成的。usb-cdrom使用isolinux引导,usb-disk使用syslinux引导,同时syslinux.cfg和isolinux.cfg里面的引导位置不同,需要使用cdrom设备或者label。另外iso9600分为通用模式与混合模式(hybrid iso),有些服务器仅支持混合模式的u盘引导。 #查看iso光盘镜像模式 file -s my.iso #转换通用模式到混合模式 isohybrid my.iso

制作usb-disk安装盘

我建议使用usb-disk方式制作引导盘,修改引导盘内容比较方便。我使用unbutu系统,文件位置与centos略有不同。

#u盘复位(写主引导区) sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1 #分区 sudo fdisk /dev/sdb n 分成1个主分区,使用全部容量 t 指定分区类型 选择c W95 FAT32 (LBA) a 设置可引导 w 写入 #格式化,卷标(label)为BOOT sudo mkfs.vfat -n 'BOOT' /dev/sdb1 #写入MBR数据,注意是设备名sdb,不是分区名sdb1 sudo dd conv=notrunc bs=440 count=1 if=/usr/lib/SYSLINUX/mbr.bin of=/dev/sdb #写入syslinux引导,,注意是分区名sdb1,不是设备名sdb sudo syslinux /dev/sdb1 #拷贝syslinux必须文件 cp -rfp /usr/lib/syslinux/modules/bios/{libcom32.c32,libutil.c32,vesamenu.c32} /media/ken/BOOT #拷贝内核引导文件 sudo mount /data/iso/CentOS-7-x86_64-Minimal-1511.iso /mnt cp -rfp /mnt/isolinux/{initrd.img,vmlinuz} /media/ken/BOOT #syslinux启动菜单 使用传统网卡命名 cat > /media/ken/BOOT/syslinux.cfg << EOF default vesamenu.c32 prompt 0 timeout 150 label linux menu default menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:sdb1:/ quiet net.ifnames=0 biosdevname=0 label kickstart menu label Install CentOS 7 of ^Kickstart kernel vmlinuz append initrd=initrd.img inst.stage2=hd:sdb1:/ net.ifnames=0 biosdevname=0 ks=hd:sdb1:/ks.cfg EOF #如果是usb-cdrom方式,hd:sdb1需要变动 #kickstart,/media/ken/BOOT/ks.cfg,这个文件挂载u盘做为本地源,使用eth传统网卡名,支持gpt分区,网卡dhcp lang en_US.UTF-8 keyboard us timezone Asia/Shanghai install cdrom text network --onboot=yes --device=eth0 --bootproto=dhcp --ipv6=auto --activate network --onboot=yes --device=eth1 --bootproto=dhcp --ipv6=auto --activate network --hostname=localhost.localdomain auth --enableshadow --passalgo=sha512 rootpw --iscrypted $6$vE77HiPeSYicTrZH$YHPVeEss83QgJ9t736MkNpw5NqiG18GsXPIhFqKDCe6eN3W33IOnVgFtw6xArfUzP.n7UN2QKNowXYzqjQOfE. #zerombr bootloader --boot-drive=sda --location=mbr ignoredisk --only-use=sda part swap --fstype='swap' --ondisk=sda --size=8000 part biosboot --fstype='biosboot' --size=1 part / --fstype='xfs' --ondisk=sda --size=50000 part /opt --fstype='xfs' --ondisk=sda --size=1 --grow firewall --disabled selinux --disabled firstboot --disabled services --enabled=network,rc-local --disabled=NetworkManager,postfix reboot %packages @core %end %pre clearpart --drives=sda --all --initial /usr/sbin/parted -s /dev/sda mklabel gpt %end %post for nic in eth0 eth1 do /usr/bin/cat > /etc/sysconfig/network-scripts/ifcfg-$nic << EOF DEVICE=$nic BOOTPROTO=dhcp #IPADDR=10.0.10.101 #NETMASK=255.255.255.0 ONBOOT=yes EOF done /usr/bin/cat > /etc/sysconfig/network << EOF NETWORKING=yes #GATEWAY=10.0.10.1 EOF cd /etc/yum.repos.d mkdir bak mv -f CentOS* bak/ /usr/bin/mkdir /mnt/usb /usr/bin/echo 'mount -o ro /dev/sdb1 /mnt/usb' >> /etc/rc.local /usr/bin/chmod 755 /etc/rc.local /usr/bin/cat > /etc/yum.repos.d/usb.repo << EOF [centos7-usb] name=CentOS-\$releasever - usb baseurl=file:///mnt/usb/repo gpgcheck=0 enabled=1 EOF %end #制作本地yum源 1 yum -y install yum-utils reposync - synchronize a remote yum repository to a local directory using yum to retrieve packages 使用reposync可将rpm文件下载到本地 2 yum -y install net-tools vim wget --downloaddir=/root/repo --downloadonly 也可将rpm文件下载到本地 3 yum -y install createrepo createrepo -d -p --update /root/repo 将/root/repo目录拷贝至/media/ken/BOOT下面

其他

#写iso镜像到u盘 dd if=/opt/iso/CentOS-7-x86_64-Minimal-1511.iso of=/dev/sdb #u盘克隆 ddrescue /dev/sdb /dev/sdc -v -f #生成系统密码 python -c 'import crypt; print(crypt.crypt("123456", "$6$MySalt"))' #用虚拟机测试iso qemu-kvm -m 2048 -vga qxl -cdrom filename.iso or qemu-system-x86_64 -m 1024 -vga qxl -cdrom my-livecd.iso /dev/shm /sys/fs/cgroup /run/install/isodir # 挂载引导U盘(sdb1)分区 /run/install/repo # 挂载inst.stage2指向的目标,这里是引导U盘(sdb1)分区内centos7的iso文件,挂载源/dev/loop0 /mnt/sysimage # 目标硬盘(sda)的root分区 /mnt/sysimage/dev/shm # tmpfs /mnt/sysimage/opt # 目标硬盘(sda)的opt分区

制作一个livecd

1 制作一个live cd,尽可能的减少容量,ssh服务,curl,python环境,网 2 被安装服务器远程pxe引导这个live cd,上面启动ssh服务和http接口服务,自动将被安装服务器的信息post给安装控制服务器,自动分配的ip信息。

yum -y install livecd-tools git clone https://github.com/CentOS/sig-core-livemedia cd sig-core-livemedia/kickstarts #https://github.com/rhinstaller/livecd-tools/tree/master/imgcreate #livecd-tools调用python模块imgcreate,生成引导img import imgcreate ks = imgcreate.read_kickstart("foo.ks") imgcreate.ImageCreator(ks, "foo").create()

livecd-creator --cache=/root/cache --tmpdir=/root/tmp --config=ks.cfg --name=my-livecd

#kickstart - ks.cfg bootloader --location=mbr --append='norhgb quiet net.ifnames=0 biosdevname=0' clearpart --all firstboot --disabled firewall --disabled selinux --disabled auth --enableshadow --passalgo=sha512 rootpw --iscrypted $6$MySalt$e0fnxWlZ3UCN4HnSSx6U7zQGgzX7AlGBfZ75msCser0B2ZPRHBmwZjOVW6Cai/1Ba5f7B5uTsucedaHsEd8W6/ install lang en_US.UTF-8 network --bootproto dhcp --device eth0 --onboot yes part / --fstype=ext4 --size=1024 reboot zerombr repo --name=base --baseurl=http://yum.local/centos/7/os/$basearch repo --name=update --baseurl=http://yum.local/centos/7/updates/$basearch repo --name=extra --baseurl=http://yum.local/centos/7/extras/$basearch repo --name=local --baseurl=file:///root/rpms %packages basesystem kernel rootfiles firewalld aic94xx-firmware linux-firmware vim-minimal net-tools #raidcfg #dell tools #syscfg #dell tools %end %pre %end %post %end /mnt/livecd ├── isolinux │   ├── boot.cat │   ├── initrd0.img │   ├── isolinux.bin │   ├── isolinux.cfg │   ├── vesamenu.c32 │   └── vmlinuz0 └── LiveOS ├── osmin.img └── squashfs.img posted on 2016-12-23 12:03 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/6214327.html


最新回复(0)