文章目录
一、准备工作
- PXE Server
- pxe boot文件:
放到pxe server tftp共享目录下[root@simon pxeboot]# pwd /tftpboot/pxeboot [root@simon pxeboot]# tree . ├── boot-initrd ├── boot-kernel ├── default └── squashfs [root@simon pxeboot]# cp squashfs /var/www/html/pxeboot/squashfs
- 安装系统文件tarball.tar.gz : 将系统打包或mksquashfs
放到pxe server http共享目录下[root@simon centos-6u3]# pwd /var/www/html/images/centos-6u3# [root@simon centos-6u3]# ls tarball.tar.gz
二、 制作装机脚本
2.1、 系统盘分区格式化
-
Legacy
echo "Start Legacy Parted" parted /dev/sda -s mklabel gpt parted /dev/sda -s mklabel msdos parted /dev/sda -s mklabel gpt parted /dev/sda -s mkpart primary 1049KB 2097KB parted /dev/sda -s mkpart primary 2MB 20.0GB parted /dev/sda -s mkpart primary 20.0GB 35.0GB parted /dev/sda -s mkpart primary 35.0GB 50.0GB parted /dev/sda -s mkpart primary 50.0GB 55.0GB parted /dev/sda -s mkpart primary 55.0GB 57.0GB MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'` parted /dev/sda -s mkpart primary 64.0GB $MSize sleep 1 clear parted /dev/sda -s set 1 bios_grub on parted /dev/sda -s set 2 boot parted /dev/sda -s p parted /dev/sda -s p | grep "boot" if [ $? -eq 1 ];then parted /dev/sda -s set 2 boot fi
备注:
grub配置文件路径 /boot/grub2/grub.cfg sda1分区大小 1024k sda1格式化 分区时设置bios_grub,无需格式化 parted -s /dev/sda set 1 bios_grub on sda1 : 'bios_grub', size: 1M sda2 : '/', size: 20G sda3 : '/var', size: 15G sda4 : '/noah', size: 15G sda5 : '/matrix', size: 5G sda6 : '/has', size: 2G sda7 : '/tmp', size: 7G sda8 : '/home', size: 剩余全部
-
UEFI
echo "Start EFI parted" parted /dev/sda -s mklabel gpt parted /dev/sda -s mklabel msdos parted /dev/sda -s mklabel gpt parted /dev/sda -s mkpart primary 1049KB 1000MB parted /dev/sda -s mkpart primary 1000MB 21.0GB parted /dev/sda -s mkpart primary 21.0GB 36.0GB parted /dev/sda -s mkpart primary 36.0GB 51.0GB parted /dev/sda -s mkpart primary 51.0GB 56.0GB parted /dev/sda -s mkpart primary 56.0GB 58.0GB parted /dev/sda -s mkpart primary 58.0GB 65.0GB MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'` parted /dev/sda -s mkpart primary 65.0GB $MSize mkfs -t vfat -F 32 -n uefi-boot /dev/sda1 sleep 2 parted -s /dev/sda set 1 boot on
备注:
grub配置文件路径 /boot/efi/grub2/grub.cfg sda1分区大小 1G sda1格式化 正常分区,格式化时指定vfat格式 mkfs -t vfat -F 32 -n uefi-boot "/dev/sda1" parted -s /dev/sda set 1 boot on parted -s /dev/sda set 2 msftdata on sda1 : 'uefi-boot', size: 1G sda2 : '/', size: 20G sda3 : '/var', size: 15G sda4 : '/noah', size: 15G sda5 : '/matrix', size: 5G sda6 : '/has', size: 2G sda7 : '/tmp', size: 7G sda8 : '/home', size: 剩余全部
汇整Legacy&UEFI分区格式化脚本如下
parted_osdisk()
{
ipmitool chassis identify
if [ -d /sys/firmware/efi ];then
echo "Start EFI parted"
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mklabel msdos
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mkpart primary 1049KB 1000MB
parted /dev/sda -s mkpart primary 1000MB 21.0GB
parted /dev/sda -s mkpart primary 21.0GB 36.0GB
parted /dev/sda -s mkpart primary 36.0GB 51.0GB
parted /dev/sda -s mkpart primary 51.0GB 56.0GB
parted /dev/sda -s mkpart primary 56.0GB 58.0GB
parted /dev/sda -s mkpart primary 58.0GB 65.0GB
MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'`
parted /dev/sda -s mkpart primary 65.0GB $MSize
mkfs -t vfat -F 32 -n uefi-boot /dev/sda1
sleep 2
parted -s /dev/sda set 1 boot on
else
echo "Start Legacy Parted"
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mklabel msdos
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mkpart primary 1049KB 2097KB
parted /dev/sda -s mkpart primary 2MB 20.0GB
parted /dev/sda -s mkpart primary 20.0GB 35.0GB
parted /dev/sda -s mkpart primary 35.0GB 50.0GB
parted /dev/sda -s mkpart primary 50.0GB 55.0GB
parted /dev/sda -s mkpart primary 55.0GB 57.0GB
MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'`
parted /dev/sda -s mkpart primary 64.0GB $MSize
sleep 1
clear
parted /dev/sda -s set 1 bios_grub on
parted /dev/sda -s set 2 boot
parted /dev/sda -s p
parted /dev/sda -s p | grep "boot"
if [ $? -eq 1 ];then
parted /dev/sda -s set 2 boot
fi
fi
}
format_osdisk()
{
ipmitool chassis identify
echo "start formart /dev/sda8 fs type ext4"
mkfs.ext4 /dev/sda8
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda7 fs type ext2"
mkfs.ext2 /dev/sda7
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda6 fs type ext2"
mkfs.ext2 /dev/sda6
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda5 fs type ext2"
mkfs.ext2 /dev/sda5
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda4 fs type ext2"
mkfs.ext2 /dev/sda4
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda3 fs type ext2"
mkfs.ext2 /dev/sda3
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda2 fs type ext2"
mkfs.ext2 /dev/sda2
sleep 10
}
2.2、 下载操作系统tarball.tar.gz
download_img()
{
sip=`cat /proc/cmdline | awk -F "http://" '{print $2}' | awk -F'/' '{print $1}'`
osname=`cat /proc/cmdline | awk -F "osname=" '{print $2}' | awk '{print $1}'`
echo "Start Download $osname tarball from $sip"
wget -t 3 -T 10 -O /tarball.tar.gz "http://${sip}/images/${osname}/tarball.tar.gz"
if [ $? -ne 0 ];then
echo -e "\033[1;31m Download $osname tarball from $sip Failed"
exit 1
else
echo "\033[32m Download $osname tarball from $ip PASS"
fi
}
2.3、 挂载系统盘,并解压tarball.tar.gz到盘内
mount_rootfs()
{
mkdir /mnt/root
mkdir /mnt/root/{var,noah,matrix,has,tmp,home}
mount /dev/sda2 /mnt/root
mount /dev/sda3 /mnt/root/var
mount /dev/sda4 /mnt/root/noah
mount /dev/sda5 /mnt/root/matrix
mount /dev/sda6 /mnt/root/hax
mount /dev/sda7 /mnt/root/tmp
mount /dev/sda8 /mnt/root/home
tar zxvf /tarball.tar.gz -C /mnt/root
}
2.4、 修改系统挂载文件fstab
mod_fstab()
{
if [ -d /sys/firmware/efi ];then
cat > /mnt/root/etc/fstab <<-EOF
#
# /etc/fstab
# Created by curtin fast-path installer.
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/sda2 / ext2 defaults 0 1
/dev/sda1 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/sda3 /var ext2 defaults 0 1
/dev/sda4 /noah ext2 defaults 0 1
/dev/sda5 /matrix ext2 defaults 0 1
/dev/sda6 /has ext2 defaults 0 1
/dev/sda7 /tmp ext2 defaults 0 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
EOF
else
cat > /mnt/root/etc/fstab <<-EOF
#
# /etc/fstab
# Created by curtin fast-path installer.
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda2 / ext2 defaults 0 1
/dev/sda3 /var ext2 defaults 0 1
/dev/sda4 /noah ext2 defaults 0 1
/dev/sda5 /matrix ext2 defaults 0 1
/dev/sda6 /has ext2 defaults 0 1
/dev/sda7 /tmp ext2 defaults 0 1
EOF
fi
}
2.5、 修改网络配置文件
target-network-config()
{
ls /etc/sysconfig/network-scripts/ifcfg-eth* >/dev/null
if [ $? -eq 0 ]; then
rm -v /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth*
cp -pv /etc/sysconfig/network-scripts/ifcfg-eth* /mnt/root/etc/sysconfig/network-scripts/
else
echo -e "DEVICE=xgbe0" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe0
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe0
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe0
echo -e "DEVICE=xgbe1" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe1
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe1
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe1
echo -e "DEVICE=xgbe2" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe2
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe2
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe2
echo -e "DEVICE=xgbe3" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe3
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe3
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-xgbe3
echo -e "DEVICE=eth0" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "DEVICE=eth1" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "DEVICE=eth2" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "DEVICE=eth3" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
fi
}
2.6、 安装bootloader,更新引导grub.cfg菜单
up_grub()
{
ROOT=/mnt/root
mkdir $ROOT
mount /dev/sda2 $ROOT
test -d /sys/firmware/efi && mount /dev/sda1 $ROOT/boot/efi
mount -o bind /dev $ROOT/dev
mount -t devpts devpts $ROOT/dev/pts
mount -t proc proc $ROOT/proc
mount -t sysfs sysfs $ROOT/sys
echo -n -e "111111\n111111\n" | chroot $ROOT passwd
if [ -d /sys/firmware/efi ];then
grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=$ROOT/boot/efi --boot-directory=$ROOT/boot/efi --bootloader-id=GRUB2 --recheck /dev/sda
rm -fr /boot
ln -s $ROOT/boot /boot
cp $ROOT/etc/default/grub.install /etc/default/grub
grub-mkconfig -o $ROOT/boot/efi/grub2/grub.cfg
else
grub-install --root-directory=$ROOT /dev/sda
rm -fr /boot
ln -s $ROOT/boot /boot
cp $ROOT/etc/default/grub.install /etc/default/grub
grub-mkconfig -o $ROOT/boot/grub2/grub.cfg
fi
umount /dev/sda1
umount $ROOT/dev/pts
umount $ROOT/dev
umount $ROOT/proc
umount $ROOT/sys
umount $ROOT
sync
}
2.7、 完整安装脚本
完整的脚本install.sh
parted_osdisk()
{
ipmitool chassis identify
if [ -d /sys/firmware/efi ];then
echo "Start EFI parted"
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mklabel msdos
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mkpart primary 1049KB 1000MB
parted /dev/sda -s mkpart primary 1000MB 21.0GB
parted /dev/sda -s mkpart primary 21.0GB 36.0GB
parted /dev/sda -s mkpart primary 36.0GB 51.0GB
parted /dev/sda -s mkpart primary 51.0GB 56.0GB
parted /dev/sda -s mkpart primary 56.0GB 58.0GB
parted /dev/sda -s mkpart primary 58.0GB 65.0GB
MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'`
parted /dev/sda -s mkpart primary 65.0GB $MSize
mkfs -t vfat32 -F 32 -n uefi-boot /dev/sda1
sleep 2
parted -s /dev/sda set 1 boot on
else
echo "Start Legacy Parted"
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mklabel msdos
parted /dev/sda -s mklabel gpt
parted /dev/sda -s mkpart primary 1049KB 2097KB
parted /dev/sda -s mkpart primary 2MB 20.0GB
parted /dev/sda -s mkpart primary 20.0GB 35.0GB
parted /dev/sda -s mkpart primary 35.0GB 50.0GB
parted /dev/sda -s mkpart primary 50.0GB 55.0GB
parted /dev/sda -s mkpart primary 55.0GB 57.0GB
parted /dev/sda -s mkpart primary 57.0GB 64.0GB
MSize=`parted /dev/sda -s p | grep "Disk /dev/sda" | awk '{print $3}'`
parted /dev/sda -s mkpart primary 64.0GB $MSize
sleep 1
clear
parted /dev/sda -s set 1 bios_grub on
parted /dev/sda -s set 2 boot
parted /dev/sda -s p
parted /dev/sda -s p | grep "boot"
if [ $? -eq 1 ];then
parted /dev/sda -s set 2 boot
fi
fi
}
format_osdisk()
{
ipmitool chassis identify
echo "start formart /dev/sda8 fs type ext4"
mkfs.ext4 /dev/sda8
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda7 fs type ext2"
mkfs.ext2 /dev/sda7
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda6 fs type ext2"
mkfs.ext2 /dev/sda6
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda5 fs type ext2"
mkfs.ext2 /dev/sda5
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda4 fs type ext2"
mkfs.ext2 /dev/sda4
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda3 fs type ext2"
mkfs.ext2 /dev/sda3
sleep 1
ipmitool chassis identify
echo "start formart /dev/sda2 fs type ext2"
mkfs.ext2 /dev/sda2
sleep 10
}
download_img()
{
sip=`cat /proc/cmdline | awk -F "http://" '{print $2}' | awk -F'/' '{print $1}'`
osname=`cat /proc/cmdline | awk -F "osname=" '{print $2}' | awk '{print $1}'`
echo "Start Download $osname tarball from $sip"
wget -t 3 -T 10 -O /tarball.tar.gz "http://${sip}/images/${osname}/tarball.tar.gz"
if [ $? -ne 0 ];then
echo -e "\033[1;31m Download $osname tarball from $sip Failed"
exit 1
else
echo "\033[32m Download $osname tarball from $ip PASS"
fi
}
mount_rootfs()
{
mkdir /mnt/root
mkdir /mnt/root/{var,noah,matrix,has,tmp,home}
mount /dev/sda2 /mnt/root
mount /dev/sda3 /mnt/root/var
mount /dev/sda4 /mnt/root/noah
mount /dev/sda5 /mnt/root/matrix
mount /dev/sda6 /mnt/root/hax
mount /dev/sda7 /mnt/root/tmp
mount /dev/sda8 /mnt/root/home
tar zxvf /tarball.tar.gz -C /mnt/root
}
mod_fstab()
{
if [ -d /sys/firmware/efi ];then
cat > /mnt/root/etc/fstab <<-EOF
#
# /etc/fstab
# Created by curtin fast-path installer.
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/sda2 / ext2 defaults 0 1
/dev/sda1 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/sda3 /var ext2 defaults 0 1
/dev/sda4 /noah ext2 defaults 0 1
/dev/sda5 /matrix ext2 defaults 0 1
/dev/sda6 /has ext2 defaults 0 1
/dev/sda7 /tmp ext2 defaults 0 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
EOF
else
cat > /mnt/root/etc/fstab <<-EOF
#
# /etc/fstab
# Created by curtin fast-path installer.
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda2 / ext2 defaults 0 1
/dev/sda3 /var ext2 defaults 0 1
/dev/sda4 /noah ext2 defaults 0 1
/dev/sda5 /matrix ext2 defaults 0 1
/dev/sda6 /has ext2 defaults 0 1
/dev/sda7 /tmp ext2 defaults 0 1
EOF
fi
}
target-network-config()
{
ls /etc/sysconfig/network-scripts/ifcfg-eth* >/dev/null
if [ $? -eq 0 ]; then
rm -v /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth*
cp -pv /etc/sysconfig/network-scripts/ifcfg-eth* /mnt/root/etc/sysconfig/network-scripts/
else
echo -e "DEVICE=eth0" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0
echo -e "DEVICE=eth1" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth1
echo -e "DEVICE=eth2" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth2
echo -e "DEVICE=eth3" > /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
echo -e "BOOTPROTO=dhcp" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
echo -e "ONBOOT=yes" >> /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth3
fi
}
up_grub()
{
ROOT=/mnt/root
mkdir $ROOT
mount /dev/sda2 $ROOT
test -d /sys/firmware/efi && mount /dev/sda1 $ROOT/boot/efi
mount -o bind /dev $ROOT/dev
mount -t devpts devpts $ROOT/dev/pts
mount -t proc proc $ROOT/proc
mount -t sysfs sysfs $ROOT/sys
echo -n -e "111111\n111111\n" | chroot $ROOT passwd
if [ -d /sys/firmware/efi ];then
grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=$ROOT/boot/efi --boot-directory=$ROOT/boot/efi --bootloader-id=GRUB2 --recheck /dev/sda
rm -fr /boot
ln -s $ROOT/boot /boot
cp $ROOT/etc/default/grub.install /etc/default/grub
grub-mkconfig -o $ROOT/boot/efi/grub2/grub.cfg
else
grub-install --root-directory=$ROOT /dev/sda
rm -fr /boot
ln -s $ROOT/boot /boot
cp $ROOT/etc/default/grub.install /etc/default/grub
grub-mkconfig -o $ROOT/boot/grub2/grub.cfg
fi
umount /dev/sda1
umount $ROOT/dev/pts
umount $ROOT/dev
umount $ROOT/proc
umount $ROOT/sys
umount $ROOT
sync
}
main()
{
parted_osdisk
format_osdisk
download_img
mount_rootfs
mod_fstab
target-network-config
up_grub
sleep 5
reboot -f
}
main
三、 解压并修改squashfs
3.1 解压squashfs
cd /var/www/html/pxeboot
unsquashfs squashfs
3.2 在squashfs-root/opt放入装机脚本,并重命名为start
cd /var/www/html/pxeboot/squashfs-root
mv /root/install.sh ./opt/start
3.3 修改rc.local, 添加自动执行装机
cd /var/www/html/squashfs-root
vim etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
nohup bash -x /opt/start 2>&1 >> /tmp/osstart.log 2>&1 &
exit 0
~
3.4 重新打包squashfs-root
cd /var/www/html/pxeboot
mksquashfs squashfs-root/ squashfs-new
四、添加pxe引导菜单
Legacy
在pxe/tftpboot/pxelinux.cfg/default文件中添加如下内容
label CentOS-6u3
kernel /pxeboot/boot-kernel
append initrd=/pxeboot/boot-initrd root=squash:http://http地址/pxeboot/squashfs-new ro osname=centos-6u3 ip=dhcp ip6=off overlayroot=tmpfs overlayroot_cfgdisk=disabled apparmor=0 net.ifnames=0 biosdevname=0 blacklist=isci
UEFI
在/tftpboot/uefi/grub.cfg中添加
submenu 'CentOS Install under UEFI mode' {
menuentry '01 Install Centos 6U3 OS under UEFI mode' --class fedora --class gnu-linux --class gnu --class os{
set background_color=black
linuxefi /pxeboot/boot-kernel root=squash:http://http地址/pxeboot/squashfs-new ro ip=dhcp i
p6=off overlayroot=tmpfs osname=centos-6u3 overlayroot_cfgdisk=disabled apparmor=0 net.ifnames=0 biosdevname=0 blacklist=isci
,megaraid_sas,mpt3sas
initrdefi /pxeboot/boot-initrd
}