t_j
By: a guest | Feb 9th, 2010 | Syntax:
None | Size: 2.02 KB | Hits: 23 | Expires: Never
> $ cat mk-mfsroots
#!/bin/sh
CONFIGS=/data/tftpboot/freebsd/install-cfgs
INSTALL=/data/tftpboot/freebsd/
## Cleanup old menus.
cd $INSTALL
for ENV in `find . -type d -name pxe -depth 3`; do
echo "Boot Env: ${ENV}"
rm ${ENV}/boot/loader.menu
touch ${ENV}/boot/loader.menu
done
cd $CONFIGS
for CFG in `find . -type f -iname '*.cfg'`; do
CFG=`echo ${CFG} | cut -b 3-`
VERSION=`echo ${CFG} | cut -d / -f 1`
ARCH=`echo ${CFG} | cut -d / -f 2`
PXEDIR="${INSTALL}`dirname ${CFG}`/pxe/boot"
MFS=`basename ${CFG} .cfg | cut -d - -f 2`
EXTDIR="`dirname ${CFG}`/${MFS}"
MENUITEM=`fgrep '# MINTEL_MENU_ITEM:' ${CFG} | cut -d : -f 2`
echo "Config ${CFG}"
echo -e "\tRelease: ${VERSION}"
echo -e "\tArch ${ARCH}"
echo -e "\tPXE Dir: ${PXEDIR}"
echo -e "\tEXT Dir: ${EXTDIR}"
echo -e "\tMFS Image: ${MFS}"
echo -e "\tMenu Item: ${MENUITEM}"
cp ${PXEDIR}/mfsroot-manual ${PXEDIR}/mfsroot-${MFS}
MD=`mdconfig -a -t vnode -f ${PXEDIR}/mfsroot-${MFS}`
mount /dev/${MD} /mnt
cp $CFG /mnt/install.cfg
if [ -d ${EXTDIR} ]; then
( cd ${EXTDIR}
rsync -av . /mnt/
)
fi
umount /mnt
mdconfig -d -u ${MD}
echo "echo ${MENUITEM}" >> ${PXEDIR}/loader.menu
done
tj@wolo '16:00:10' '/data/tftpboot/freebsd/install-cfgs'
> $ tree
.
|-- 6.2
| |-- amd64
| | `-- install-x9xx.cfg
| `-- i386
| `-- install-x9xx.cfg
|-- 7.0
| |-- amd64
| | `-- install-x9xx.cfg
| `-- i386
| `-- install-x9xx.cfg
|-- 7.1
| |-- amd64
| | |-- install-xxx_nfs_install.cfg
| | |-- install-xxx_nfs_part.cfg
| | |-- install-x9xx.cfg
| | `-- xxx_nfs_part
| | |-- etc
| | | |-- empty-label.conf
| | | `-- fdisk.conf
| | `-- xxx
| | `-- partition.sh
| `-- i386
| |-- install-net5501.cfg
| `-- install-x9xx.cfg
`-- mk-mfsroots
12 directories, 13 files
tj@wolo '16:00:25' '/data/tftpboot/freebsd/install-cfgs'
> $