# Copyfilesfromtherel. isoimagetosystem...
# copy files from the rhel.iso image to system if [ ! -b /tmp/cdrom ];then echo "make cdrom node using mknod" >> /root/ins.log # get the major number major=$(lsblk |grep rom | awk '{print $2}' |awk -F : '{print $1}') # get the minor number minor=$(lsblk |grep rom | awk '{print $2}' |awk -F : '{print $2}') echo "major=${major} minor=${minor}" >> /root/ins.log # make sure we have what we need; create device node if so [ -n "$major" -a -n "$minor" ] && mknod /tmp/cdrom b ${major} ${minor} fi echo "mount the iso to /mnt/source" >> /root/ins.log [ ! -d /mnt/source ] && mkdir -p /mnt/source mount -t iso9660 -o ro /tmp/cdrom /mnt/source
In this case, the installation image rhel. iso will be mounted to the/mnt/source directory, and the script for copying files will be added under % post in kickstart. cfg.
# copy the id_rsa.pub to authorized_keys [ ! -d /root/.ssh ] && mkdir -p /root/.ssh cat /mnt/source/id_rsa.pub >> /root/.ssh/authorized_keys [ $? -ne 0 ] && echo "copy id_rsa.pub to authorized_keys failed." >> /root/ins.log
Original problem: you can use kickstart to redhat. the content of the cfg file is automatically installed on kickstart. add the % post tag to the cfg file to execute some scripts after the installation is complete. these scripts are placed behind the % post tag. But one problem is that after the OS is installed, if we want to copy a file from the original ISO image to the installed system, we must mount it. the above code implements its function.