@ -1,44 +1,2 @@ |
|||
|
|||
disksdir="$build_rock/bootdisk" |
|||
|
|||
if [ "$ROCK_DEBUG_BOOTDISK_NOSTAGE2" != 1 -a \ |
|||
"$ROCK_DEBUG_BOOTDISK_NOSTAGE1" != 1 ] |
|||
then |
|||
pkgloop |
|||
rm -rf $disksdir; mkdir -p $disksdir; chmod 700 $disksdir |
|||
fi |
|||
|
|||
# Re-evaluate CC and other variables (as we have built the cross cc now) |
|||
. scripts/parse-config |
|||
|
|||
# Add tools.cross/diet-bin/ to path so we find our 'diet' program |
|||
PATH="$base/build/${ROCKCFG_ID}/ROCK/$toolsdir/diet-bin:$PATH" |
|||
export DIETHOME="$base/build/${ROCKCFG_ID}/usr/dietlibc" |
|||
|
|||
if [ "$ROCK_DEBUG_BOOTDISK_NOSTAGE2" != 1 ] |
|||
then |
|||
. $base/target/$target/build_stage2.sh |
|||
fi |
|||
|
|||
if [ "$ROCK_DEBUG_BOOTDISK_NOSTAGE1" != 1 ] |
|||
then |
|||
. $base/target/$target/build_stage1.sh |
|||
fi |
|||
|
|||
if [ -f $base/target/$target/$arch/build.sh ]; then |
|||
. $base/target/$target/$arch/build.sh |
|||
fi |
|||
|
|||
|
|||
echo_header "Creating ISO filesystem description." |
|||
cd $disksdir; rm -rf isofs; mkdir -p isofs |
|||
|
|||
echo_status "Creating bootdisk/isofs directory.." |
|||
ln 2nd_stage.tar.gz 2nd_stage_small.tar.gz isofs/ |
|||
ln *.img initrd.gz isofs/ 2>/dev/null || true # might not exist on some architectures |
|||
|
|||
echo_status "Creating isofs.txt file .." |
|||
echo "DISK1 build/${ROCKCFG_ID}/ROCK/bootdisk/isofs/ ` |
|||
`${ROCKCFG_SHORTID}/" > ../isofs_generic.txt |
|||
cat ../isofs_*.txt > ../isofs.txt |
|||
|
|||
pkgloop |
|||
@ -1,226 +0,0 @@ |
|||
#!/bin/bash |
|||
|
|||
echo_header "Creating initrd data:" |
|||
rm -rf $disksdir/initrd |
|||
mkdir -p $disksdir/initrd/{dev,proc,sys,tmp,scsi,net,bin,etc,lib} |
|||
cd $disksdir/initrd; ln -s bin sbin; ln -s . usr |
|||
|
|||
rock_targetdir="$base/target/$target/" |
|||
rock_target="$target" |
|||
|
|||
# make mount not complain |
|||
touch etc/fstab |
|||
|
|||
# supress udev uig/gid warnings |
|||
cp -a $base/build/$ROCKCFG_ID/etc/{passwd,group} etc/ |
|||
cp -a $base/build/$ROCKCFG_ID/lib/libnss_files[-.]* lib/ |
|||
|
|||
rootdir="$disksdir/2nd_stage" |
|||
targetdir="$disksdir/initrd" |
|||
cross_compile="" |
|||
if [ "$ROCKCFG_CROSSBUILD" = "1" ] ; then |
|||
cross_compile="`find ${base}/ROCK/tools.cross/ -name "*-readelf"`" |
|||
cross_compile="${cross_compile##*/}" |
|||
cross_compile="${cross_compile%%readelf}" |
|||
fi |
|||
initrdfs="ext2fs" |
|||
block_size="" |
|||
ramdisk_size=12288 |
|||
|
|||
case ${initrdfs} in |
|||
ext2fs|ext3fs|cramfs) |
|||
initrd_img="${disksdir}/initrd.img" |
|||
;; |
|||
ramfs) |
|||
initrd_img="${disksdir}/initrd.cpio" |
|||
;; |
|||
esac |
|||
|
|||
echo_status "Creating some device nodes" |
|||
mknod ${targetdir}/dev/ram0 b 1 0 |
|||
mknod ${targetdir}/dev/null c 1 3 |
|||
mknod ${targetdir}/dev/zero c 1 5 |
|||
mknod ${targetdir}/dev/tty c 5 0 |
|||
mknod ${targetdir}/dev/console c 5 1 |
|||
|
|||
# this copies a set of programs and the necessary libraries into a |
|||
# chroot environment |
|||
|
|||
echo_status "Create checkisomd5 binary" |
|||
cp -r ${base}/misc/isomd5sum ${base}/build/${ROCKCFG_ID}/ |
|||
cat >${base}/build/${ROCKCFG_ID}/compile_isomd5sum.sh <<EOF |
|||
#!/bin/bash |
|||
cd /isomd5sum |
|||
make clean |
|||
make CC=gcc |
|||
EOF |
|||
chmod +x ${base}/build/${ROCKCFG_ID}/compile_isomd5sum.sh |
|||
chroot ${base}/build/${ROCKCFG_ID}/ /compile_isomd5sum.sh |
|||
cp ${base}/build/${ROCKCFG_ID}/isomd5sum/checkisomd5 bin/ |
|||
rm -rf ${base}/build/${ROCKCFG_ID}/compile_isomd5sum.sh ${base}/build/${ROCKCFG_ID}/isomd5sum |
|||
echo_status "Copying and adjusting linuxrc scipt" |
|||
cp ${base}/target/${target}/linuxrc.sh sbin/init |
|||
chmod +x sbin/init |
|||
sed -i -e "s,^STAGE_2_BIG_IMAGE=\"2nd_stage.tar.gz\"$,STAGE_2_BIG_IMAGE=\"${ROCKCFG_SHORTID}/2nd_stage.tar.gz\"," \ |
|||
-e "s,^STAGE_2_SMALL_IMAGE=\"2nd_stage_small.tar.gz\"$,STAGE_2_SMALL_IMAGE=\"${ROCKCFG_SHORTID}/2nd_stage_small.tar.gz\"," \ |
|||
sbin/init |
|||
|
|||
libdirs="${rootdir}/$multilib ${rootdir}/usr/$multilib \ |
|||
`sed -r -e'/^[ ]*(#|$)/ d' -e"s,^(.*),${rootdir}\1," -e"s,/lib(/|$),/$multilib\1,p" \ |
|||
${rootdir}/etc/ld.so.conf | uniq | tr '\n' ' '`" |
|||
|
|||
needed_libs() { |
|||
local x="${1}" library |
|||
|
|||
${cross_compile}readelf -d ${x} 2>/dev/null | grep "(NEEDED)" | |
|||
sed -e"s,.*Shared library: \[\(.*\)\],\1," | |
|||
while read library ; do |
|||
find ${libdirs} -name "${library}" 2>/dev/null | |
|||
sed -e "s,^${rootdir},,g" | tr '\n' ' ' |
|||
done |
|||
} |
|||
|
|||
libs="${libs} `needed_libs bin/checkisomd5`" |
|||
|
|||
echo_status "Copying other files ... " |
|||
for x in ${rock_targetdir}/initrd/initrd_* ; do |
|||
[ -f ${x} ] || continue |
|||
while read file target ; do |
|||
file="${rootdir}/${file}" |
|||
[ -e ${file} ] || continue |
|||
|
|||
while read f ; do |
|||
tfile=${targetdir}/${target}${f#${file}} |
|||
[ -e ${tfile} ] && continue |
|||
|
|||
if [ -d ${f} -a ! -L ${f} ] ; then |
|||
mkdir -p ${tfile} |
|||
continue |
|||
else |
|||
mkdir -p ${tfile%/*} |
|||
fi |
|||
|
|||
# if [ -b ${f} -o -c ${f} -o -p ${f} -o -L ${f} ] ; then |
|||
cp -a ${f} ${tfile} |
|||
# else |
|||
# cp ${f} ${tfile} |
|||
# fi |
|||
|
|||
file -L ${f} | grep -q ELF || continue |
|||
libs="${libs} `needed_libs ${f}`" |
|||
done < <( find "${file}" ) |
|||
done < ${x} |
|||
done |
|||
|
|||
for x in modprobe.static modprobe.static.old insmod.static insmod.static.old ; do |
|||
if [ -f ../2nd_stage/sbin/${x/.static/} ]; then |
|||
rm -f bin/${x/.static/} |
|||
cp -a ../2nd_stage/sbin/${x/.static/} bin/ |
|||
fi |
|||
if [ -f ../2nd_stage/sbin/$x ]; then |
|||
rm -f bin/$x bin/${x/.static/} |
|||
cp -a ../2nd_stage/sbin/$x bin/ |
|||
ln -sf $x bin/${x/.static/} |
|||
fi |
|||
done |
|||
|
|||
echo_status "Copy scsi and network kernel modules." |
|||
tmptar="`mktemp`" ; tar cfT ${tmptar} /dev/null |
|||
|
|||
for x in $( cd ../2nd_stage ; ls -d lib/modules/*/kernel/drivers/{scsi,net} ) |
|||
do |
|||
[ -e "../2nd_stage/${x}" ] && tar rf ${tmptar} -C ../2nd_stage ${x} |
|||
done |
|||
tar xf ${tmptar} ; rm -f ${tmptar} |
|||
|
|||
[ -e lib/modules ] && find lib/modules -type f -exec $STRIP --strip-debug {} \; |
|||
|
|||
for x in ../2nd_stage/lib/modules/*/modules.{dep,pcimap,isapnpmap} ; do |
|||
cp $x ${x#../2nd_stage/} || echo_status "not found: $x" ; |
|||
done |
|||
|
|||
for x in lib/modules/*/kernel/drivers/{scsi,net}; do |
|||
[ -d $x ] && ln -s ${x#lib/modules/} lib/modules/ |
|||
done |
|||
rm -f lib/modules/[0-9]*/kernel/drivers/scsi/{st,scsi_debug}.{o,ko} |
|||
rm -f lib/modules/[0-9]*/kernel/drivers/net/{dummy,ppp*}.{o,ko} |
|||
|
|||
echo_status "Copying required libraries ... " |
|||
while [ -n "${libs}" ] ; do |
|||
oldlibs=${libs} |
|||
libs="" |
|||
for x in ${oldlibs} ; do |
|||
[ -e ${targetdir}/${x} ] && continue |
|||
mkdir -p ${targetdir}/${x%/*} |
|||
cp ${rootdir}/${x} ${targetdir}/${x} |
|||
file -L ${rootdir}/${x} | grep -q ELF || continue |
|||
for y in `needed_libs ${rootdir}/${x}` ; do |
|||
[ ! -e "${targetdir}/${y}" ] && libs="${libs} ${y}" |
|||
done |
|||
done |
|||
done |
|||
|
|||
echo_status "Creating links for identical files ..." |
|||
while read ck fn |
|||
do |
|||
# don't link empty files... |
|||
if [ "${oldck}" = "${ck}" -a -s "${fn}" ] ; then |
|||
echo_status "\`- Found ${fn#${targetdir}} -> ${oldfn#${targetdir}}." |
|||
rm ${fn} ; ln -s /${oldfn#${targetdir}} ${fn} |
|||
else |
|||
oldck=${ck} ; oldfn=${fn} |
|||
fi |
|||
done < <( find ${targetdir} -type f | xargs md5sum | sort ) |
|||
|
|||
cd .. |
|||
|
|||
echo_header "Creating initrd filesystem image (${initrdfs}): " |
|||
case "${initrdfs}" in |
|||
cramfs) |
|||
[ "${block_size}" == "" ] && block_size=4096 |
|||
mkfs.cramfs -b ${block_size} ${targetdir} ${initrd_img} |
|||
;; |
|||
ramfs) |
|||
# cp -a ${targetdir}/{linuxrc,init} |
|||
( cd ${targetdir} ; find | cpio -o -c > ${initrd_img} ; ) |
|||
;; |
|||
ext2fs|ext3fs) |
|||
[ "${block_size}" == "" ] && block_size=1024 |
|||
block_count=$(( ( 1024 * ${ramdisk_size} ) / ${block_size} )) |
|||
|
|||
echo_status "Creating temporary files." |
|||
tmpdir=`mktemp -d` ; mkdir -p ${tmpdir} |
|||
dd if=/dev/zero of=${initrd_img} bs=${block_size} count=${block_count} &> /dev/null |
|||
tmpdev="`losetup -f 2>/dev/null`" |
|||
if [ -z "${tmpdev}" ] ; then |
|||
for x in /dev/loop* /dev/loop/* ; do |
|||
[ -b "${x}" ] || continue |
|||
losetup ${x} 2>&1 >/dev/null || tmpdev="${x}" |
|||
[ -n "${tmpdev}" ] && break |
|||
done |
|||
if [ -z "${tmpdev}" ] ; then |
|||
echo_status "No free loopback device found!" |
|||
rm -f ${tmpfile} ; rmdir ${tmpdir}; exit 1 |
|||
fi |
|||
fi |
|||
echo_status "Using loopback device ${tmpdev}." |
|||
losetup "${tmpdev}" ${initrd_img} |
|||
|
|||
echo_status "Writing initrd image file." |
|||
mkfs.${initrdfs:0:4} -b ${block_size} -m 0 -q ${tmpdev} &> /dev/null |
|||
mount -t ${initrdfs:0:4} ${tmpdev} ${tmpdir} |
|||
rmdir ${tmpdir}/lost+found/ |
|||
cp -a ${targetdir}/* ${tmpdir} |
|||
umount ${tmpdir} |
|||
|
|||
echo_status "Removing temporary files." |
|||
losetup -d ${tmpdev} |
|||
rm -rf ${tmpdir} |
|||
;; |
|||
esac |
|||
|
|||
echo_status "Compressing initrd image file." |
|||
gzip -9 -c ${initrd_img} > ${initrd_img}.gz |
|||
mv ${initrd_img%.img}{.img,}.gz |
|||
|
|||
target="$rock_target" |
|||
@ -1,194 +0,0 @@ |
|||
|
|||
set -e |
|||
taropt="--use-compress-program=bzip2 -xf" |
|||
|
|||
echo_header "Creating 2nd stage filesystem:" |
|||
mkdir -p $disksdir/2nd_stage |
|||
cd $disksdir/2nd_stage |
|||
mkdir -p mnt/source mnt/target |
|||
# |
|||
package_map=" +00-dirtree -gcc42 |
|||
-automake17 -automake18 -automake19 -gcc2 |
|||
-gcc33 -gcc34 -gcc40 -gcc41 |
|||
-gmp -mpfr -rockinitrd +stone |
|||
-linux24-source -linux26-header -linux24 +udev |
|||
-linux26-source -linux26-header -linux26 -postinstall |
|||
-binutils -bin86 -nasm -dietlibc |
|||
+grub +lilo +yaboot +aboot |
|||
+silo +parted +mac-fdisk +pdisk |
|||
+xfsprogs +dosfstools +jfsutils +hfsutils |
|||
+e2fsprogs +reiserfsprogs +genromfs +device-mapper |
|||
+popt +file +mdadm +lvm2 |
|||
+dump +eject +disktype +lvm-wrapper |
|||
+hdparm +memtest86 +cpuburn +bonnie++ |
|||
-mine -bize -termcap +ncurses |
|||
+readline -strace -ltrace -perl5 |
|||
-m4 -time -gettext -zlib |
|||
-etcnet +attr +acl +findutils |
|||
+mktemp +coreutils -diffutils -patch |
|||
-make +grep +sed +gzip |
|||
+tar +gawk -flex +bzip2 |
|||
-texinfo +less -groff -man |
|||
+nvi -bison +bc +cpio |
|||
+ed -autoconf -automake -libtool |
|||
+curl +wget +dialog +minicom |
|||
+lrzsz +rsync +tcpdump +module-init-tools |
|||
+sysvinit +shadow +util-linux +wireless-tools |
|||
+net-tools +procps +psmisc +rockplug |
|||
+modutils +pciutils -cron +portmap |
|||
+sysklogd +devfsd +setserial +iproute2 |
|||
+netkit-base +netkit-ftp +netkit-telnet +netkit-tftp |
|||
+sysfiles +libpcap +iptables +tcp_wrappers |
|||
-kiss +kbd -syslinux +ntfsprogs |
|||
-ethtool -uml_utilities +ddrescue +libelf" |
|||
|
|||
if [ -f ../../pkgs/bize.tar.bz2 -a ! -f ../../pkgs/mine.tar.bz2 ] ; then |
|||
packager=bize |
|||
else |
|||
packager=mine |
|||
fi |
|||
|
|||
package_map="+$ROCKCFG_PKG_LINUX_DEFAULT +$packager $package_map" |
|||
package_map="+$ROCKCFG_PKG_GLIBC_BRANCH +$ROCKCFG_PKG_BASH_DEFAULT $package_map" |
|||
|
|||
echo_status "Extracting the packages archives." |
|||
for x in $( ls ../../pkgs/*.tar.bz2 | tr . / | cut -f8 -d/ ) |
|||
do |
|||
if [ -z "${x##*:dev*}" -o -z "${x##*:doc*}" ] |
|||
then |
|||
# simply ignore :dev and :doc packages |
|||
true |
|||
elif echo "" $package_map "" | grep -q " +$x " |
|||
then |
|||
echo_status "\`- Extracting $x.tar.bz2 ..." |
|||
tar --use-compress-program=bzip2 -xpf ../../pkgs/$x.tar.bz2 |
|||
elif ! echo "" $package_map "" | grep -q " -$x " |
|||
then |
|||
echo_error "\`- Not found in \$package_map: $x" |
|||
echo_error " ... target/bootdisk/build_stage1.sh" |
|||
fi |
|||
done |
|||
# |
|||
echo_status "Saving boot/* - we do not need this on the 2nd stage ..." |
|||
rm -rf ../boot ; mkdir ../boot |
|||
mv boot/* ../boot/ |
|||
# |
|||
echo_status "Remove the stuff we do not need ..." |
|||
rm -rf home usr/{local,doc,man,info,games,share} |
|||
rm -rf var/adm/* var/games var/adm var/mail var/opt |
|||
rm -rf usr/{include,src} usr/*-linux-gnu {,usr/}lib/*.{a,la,o} |
|||
for x in usr/lib/*/; do rm -rf ${x%/}; done |
|||
# |
|||
echo_status "Installing some terminfo databases ..." |
|||
tar $taropt ../../pkgs/ncurses.tar.bz2 \ |
|||
usr/share/terminfo/x/xterm usr/share/terminfo/a/ansi \ |
|||
usr/share/terminfo/n/nxterm usr/share/terminfo/l/linux \ |
|||
usr/share/terminfo/v/vt200 usr/share/terminfo/v/vt220 \ |
|||
usr/share/terminfo/v/vt100 usr/share/terminfo/s/screen |
|||
# |
|||
if [ -f ../../pkgs/kbd.tar.bz2 ] ; then |
|||
echo_status "Installing some keymaps ..." |
|||
tar $taropt ../../pkgs/kbd.tar.bz2 \ |
|||
usr/share/kbd/keymaps/amiga usr/share/kbd/keymaps/i386/qwerty \ |
|||
usr/share/kbd/keymaps/atari usr/share/kbd/keymaps/i386/qwertz \ |
|||
usr/share/kbd/keymaps/sun |
|||
find usr/share/kbd -name '*dvo*' -o -name '*az*' -o -name '*fgG*' | \ |
|||
xargs rm -f |
|||
fi |
|||
# |
|||
if [ -f ../../pkgs/pciutils.tar.bz2 ] ; then |
|||
echo_status "Installing pci.ids ..." |
|||
tar $taropt ../../pkgs/pciutils.tar.bz2 \ |
|||
usr/share/pci.ids |
|||
fi |
|||
# |
|||
echo_status "Creating 2nd stage linuxrc." |
|||
cp $base/target/$target/linuxrc2.sh sbin/init ; chmod +x sbin/init |
|||
cp $base/target/$target/shutdown sbin/shutdown ; chmod +x sbin/shutdown |
|||
echo '$STONE install' > etc/stone.d/default.sh |
|||
# |
|||
echo_status "Creating 2nd_stage.tar.gz archive." |
|||
tar -czf ../2nd_stage.tar.gz * ; cd .. |
|||
|
|||
|
|||
echo_header "Creating small 2nd stage filesystem:" |
|||
mkdir -p 2nd_stage_small ; cd 2nd_stage_small |
|||
mkdir -p dev proc sys tmp bin lib etc share |
|||
mkdir -p mnt/source mnt/target |
|||
ln -s bin sbin ; ln -s . usr |
|||
|
|||
# |
|||
|
|||
progs="agetty bash cat cp date dd df ifconfig ln ls $packager mkdir mke2fs \ |
|||
mkswap mount mv rm reboot route sleep swapoff swapon sync umount \ |
|||
eject chmod chroot grep halt rmdir sh shutdown uname killall5 \ |
|||
stone mktemp sort fold sed mkreiserfs cut head tail disktype" |
|||
|
|||
progs="$progs fdisk sfdisk" |
|||
|
|||
if [ $arch = ppc ] ; then |
|||
progs="$progs mac-fdisk pdisk" |
|||
fi |
|||
|
|||
if [ $packager = bize ] ; then |
|||
progs="$progs bzip2 md5sum" |
|||
fi |
|||
|
|||
echo_status "Copy the most important programs ..." |
|||
for x in $progs ; do |
|||
fn="" |
|||
[ -f ../2nd_stage/bin/$x ] && fn="bin/$x" |
|||
[ -f ../2nd_stage/sbin/$x ] && fn="sbin/$x" |
|||
[ -f ../2nd_stage/usr/bin/$x ] && fn="usr/bin/$x" |
|||
[ -f ../2nd_stage/usr/sbin/$x ] && fn="usr/sbin/$x" |
|||
|
|||
if [ "$fn" ] ; then |
|||
cp ../2nd_stage/$fn $fn |
|||
else |
|||
echo_error "\`- Program not found: $x" |
|||
fi |
|||
done |
|||
|
|||
# |
|||
|
|||
echo_status "Copy the required libraries ..." |
|||
found=1 ; while [ $found = 1 ] |
|||
do |
|||
found=0 |
|||
for x in ../2nd_stage/lib ../2nd_stage/usr/lib |
|||
do |
|||
for y in $( cd $x ; ls *.so.* 2> /dev/null ) |
|||
do |
|||
if [ ! -f lib/$y ] && |
|||
grep -q $y bin/* lib/* 2> /dev/null |
|||
then |
|||
echo_status "\`- Found $y." |
|||
cp $x/$y lib/$y ; found=1 |
|||
fi |
|||
done |
|||
done |
|||
done |
|||
# |
|||
echo_status "Copy linuxrc." |
|||
cp ../2nd_stage/sbin/init sbin/init |
|||
echo_status "Copy /etc/fstab." |
|||
cp ../2nd_stage/etc/fstab etc |
|||
echo_status "Copy stone.d." |
|||
mkdir -p etc/stone.d |
|||
for i in gui_text mod_install mod_packages mod_gas default ; do |
|||
cp ../2nd_stage/etc/stone.d/$i.sh etc/stone.d |
|||
done |
|||
# |
|||
echo_status "Creating links for identical files." |
|||
while read ck fn |
|||
do |
|||
if [ "$oldck" = "$ck" ] ; then |
|||
echo_status "\`- Found $fn -> $oldfn." |
|||
rm $fn ; ln $oldfn $fn |
|||
else |
|||
oldck=$ck ; oldfn=$fn |
|||
fi |
|||
done < <( find -type f | xargs md5sum | sort ) |
|||
# |
|||
echo_status "Creating 2nd_stage_small.tar.gz archive." |
|||
tar -cf- * | gzip -9 > ../2nd_stage_small.tar.gz ; cd .. |
|||
@ -1,2 +0,0 @@ |
|||
2125465292 syslinux-2.11.tar.bz2 http://www.kernel.org/pub/linux/utils/boot/syslinux/ |
|||
1570862055 mdlbl-0.1a.tar.bz2 http://www.rocklinux.net/people/clifford/MDLBL/ |
|||
@ -1,46 +0,0 @@ |
|||
/bin/tar /bin/tar |
|||
/bin/gzip /bin/gzip |
|||
/bin/bash2 /bin/bash2 |
|||
/bin/bash3 /bin/bash3 |
|||
/bin/bash /bin/bash |
|||
/bin/sh /bin/sh |
|||
/bin/mount /bin/mount |
|||
/bin/umount /bin/umount |
|||
/bin/ls /bin/ls |
|||
/bin/sed /bin/sed |
|||
/bin/cut /bin/cut |
|||
/bin/cp /bin/cp |
|||
/bin/cat /bin/cat |
|||
/bin/uname /bin/uname |
|||
/bin/rm /bin/rm |
|||
/bin/ln /bin/ln |
|||
/bin/mkdir /bin/mkdir |
|||
/bin/rmdir /bin/rmdir |
|||
/bin/find /bin/find |
|||
/bin/gawk /bin/gawk |
|||
/bin/awk /bin/awk |
|||
/bin/grep /bin/grep |
|||
/bin/sleep /bin/sleep |
|||
/sbin/ip /sbin/ip |
|||
/sbin/hwscan /sbin/hwscan |
|||
/sbin/pivot_root /sbin/pivot_root |
|||
/sbin/swapon /sbin/swapon |
|||
/sbin/swapoff /sbin/swapoff |
|||
/sbin/udevd /sbin/udevd |
|||
/sbin/udevsettle /sbin/udevsettle |
|||
/sbin/udevtrigger /sbin/udevtrigger |
|||
/usr/bin/wget /usr/bin/wget |
|||
/usr/bin/expand /usr/bin/expand |
|||
/usr/bin/readlink /usr/bin/readlink |
|||
/usr/bin/basename /usr/bin/basename |
|||
/usr/bin/tr /usr/bin/tr |
|||
/usr/sbin/lspci /usr/sbin/lspci |
|||
/etc/udev /etc/udev |
|||
/lib/udev /lib/udev |
|||
/bin/ps /bin/ps |
|||
/sbin/modinfo /sbin/modinfo |
|||
/usr/bin/lsmod /usr/bin/lsmod |
|||
/usr/bin/find /usr/bin/find |
|||
/usr/sbin/udevmonitor /usr/sbin/udevmonitor |
|||
/sbin/rmmod /sbin/rmmod |
|||
/sbin/depmod /sbin/depmod |
|||
@ -1,509 +0,0 @@ |
|||
#!/bin/bash |
|||
|
|||
STAGE_2_BIG_IMAGE="2nd_stage.tar.gz" |
|||
STAGE_2_SMALL_IMAGE="2nd_stage_small.tar.gz" |
|||
STAGE_2_COMPRESS_ARG="--use-compress-program=gzip" |
|||
|
|||
#640kB, err, 64 MB should be enought for the tmpfs ;-) |
|||
TMPFS_OPTIONS="size=67108864" |
|||
|
|||
mod_load_info () { # {{{ |
|||
read os host version rest < <( uname -a ) |
|||
if [ -z "${os}" ] ; then |
|||
echo "Can't run \`uname -a\`" |
|||
return |
|||
elif [ "${os}" != "Linux" ] ; then |
|||
echo "Your operating system is not supported ?!" |
|||
return |
|||
fi |
|||
|
|||
mod_loader="/sbin/insmod" |
|||
mod_dir="/lib/modules/" |
|||
|
|||
# kernel module suffix for <= 2.4 is .o, .ko if above |
|||
if [ ${version:2:1} -gt 4 ] ; then |
|||
mod_suffix=".ko" |
|||
mod_suffix_len=3 |
|||
else |
|||
mod_suffix=".o" |
|||
mod_suffix_len=2 |
|||
fi |
|||
} # }}} |
|||
doboot() { # {{{ |
|||
if ! mkdir -p /mnt_root/old_root ; then |
|||
echo "Can't create /mnt_root/old_root" |
|||
return 1 |
|||
fi |
|||
|
|||
if [ ! -f /mnt_root/sbin/init ] ; then |
|||
echo "Can't find /mnt_root/sbin/init!" |
|||
return 1 |
|||
fi |
|||
|
|||
# pivot_root may or may not change the PWD and root of the |
|||
# caller, so we change into the new root directory first. |
|||
cd /mnt_root |
|||
if ! pivot_root . "/mnt_root/old_root" ; then |
|||
echo "Can't call pivot_root" |
|||
cd / |
|||
return 1 |
|||
fi |
|||
|
|||
if ! mount --move /old_root/dev /dev ; then |
|||
echo "Can't remount /old_root/dev as /dev" |
|||
fi |
|||
|
|||
if ! mount --move /old_root/proc /proc ; then |
|||
echo "Can't remount /old_root/proc as /proc" |
|||
fi |
|||
|
|||
if [[ "$( < /proc/version )" == "Linux version 2.6."* ]] ; then |
|||
if ! mount --move /old_root/sys /sys ; then |
|||
echo "Can't remount /old_root/sys as /sys" |
|||
fi |
|||
fi |
|||
|
|||
if ! umount /old_root/tmp ; then |
|||
echo "Can't umount /old_root/tmp" |
|||
fi |
|||
|
|||
sed -e "s, /mnt_root , / ," /old_root/etc/mtab > /etc/mtab |
|||
|
|||
# Kill udevd so /old_root can be unmounted. |
|||
killall udevd |
|||
|
|||
exec chroot . sh -c "exec /sbin/init" <dev/console >dev/console 2>&1 |
|||
|
|||
echo "Can't exec /sbin/init!" |
|||
return 1 |
|||
} # }}} |
|||
trymount() { # {{{ |
|||
source=${1} |
|||
target=${2} |
|||
mount -t iso9600 -o ro ${source} ${target} && return 0 |
|||
mount -t ext3 -o ro ${source} ${target} && return 0 |
|||
mount -t ext2 -o ro ${source} ${target} && return 0 |
|||
mount -t minix -o ro ${source} ${target} && return 0 |
|||
mount -t vfat -o ro ${source} ${target} && return 0 |
|||
return -1 |
|||
} # }}} |
|||
httpload() { # {{{ |
|||
echo -n "Enter base URL (e.g. http://1.2.3.4/rock): " |
|||
|
|||
read baseurl |
|||
[ -z "${baseurl}" ] && return |
|||
|
|||
cat <<EOF |
|||
Select a stage 2 image file: |
|||
|
|||
0. ${STAGE_2_BIG_IMAGE} |
|||
1. ${STAGE_2_SMALL_IMAGE} |
|||
|
|||
EOF |
|||
echo -n "Enter number or image file name (default=0): " |
|||
read filename |
|||
|
|||
if [ -z "${filename}" ] ; then |
|||
filename="${STAGE_2_BIG_IMAGE}" |
|||
elif [ "${filename}" == "0" ] ; then |
|||
filename=${STAGE_2_BIG_IMAGE} |
|||
elif [ "${filename}" == "1" ] ; then |
|||
filename="${STAGE_2_SMALL_IMAGE}" |
|||
fi |
|||
|
|||
url="${baseurl%/}/${filename}" |
|||
echo "[ ${url} ]" |
|||
export ROCK_INSTALL_SOURCE_URL=${baseurl} |
|||
|
|||
if ! mkdir -p /mnt_root ; then |
|||
echo "Can't create /mnt_root" |
|||
return 1 |
|||
fi |
|||
|
|||
if ! mount -t tmpfs -O ${TMPFS_OPTIONS} tmpfs /mnt_root ; then |
|||
echo "Can't mount /mnt_root" |
|||
return 1 |
|||
fi |
|||
|
|||
wget -O - ${url} | tar ${STAGE_2_COMPRESS_ARG} -C /mnt_root -xf - |
|||
|
|||
echo "finished ... now booting 2nd stage" |
|||
doboot |
|||
} # }}} |
|||
load_modules() { # {{{ |
|||
# this starts the module loading shell |
|||
directory=${1} |
|||
cat <<EOF |
|||
module loading shell |
|||
|
|||
you can navigate through the filestem with 'cd'. for loading a module |
|||
simply enter the shown name, to exit press enter on a blank line. |
|||
|
|||
EOF |
|||
cd ${directory} |
|||
while : ; do |
|||
echo "Directories:" |
|||
count=0 |
|||
while read inode ; do |
|||
[ -d "${inode}" ] || continue |
|||
echo -n " [ ${inode} ]" |
|||
count=$((${count}+1)) |
|||
if [ ${count} -gt 3 ] ; then |
|||
echo |
|||
count=0 |
|||
fi |
|||
done < <( ls ) | expand -t1,3,19,21,23,39,41,43,59,61,63,78 |
|||
echo |
|||
echo "Modules:" |
|||
count=0 |
|||
while read inode ; do |
|||
[ -f "${inode}" ] || continue |
|||
[ "${inode%${mod_suffix}}" == "${inode}" ] && continue |
|||
echo -n " [ ${inode%${mod_suffix}} ]" |
|||
count=$((${count}+1)) |
|||
if [ ${count} -gt 3 ] ; then |
|||
echo |
|||
count=0 |
|||
fi |
|||
done < <( ls ) | expand -t1,3,19,21,23,39,41,43,59,61,63,78 |
|||
echo |
|||
echo -n "[${PWD##*/} ] > " |
|||
read cmd par |
|||
if [ "${cmd}" == "cd" ] ; then |
|||
cd ${par} |
|||
elif [ -f "${cmd}${mod_suffix}" ] ; then |
|||
insmod ${PWD%/}/${cmd}${mod_suffix} ${par} |
|||
elif [ -z "${cmd}" ] ; then |
|||
break |
|||
else |
|||
echo "No such module: ${cmd}" |
|||
fi |
|||
done |
|||
return |
|||
} # }}} |
|||
getdevice () { # {{{ |
|||
while : ; do |
|||
echo -en "\nDevice file to use (q to return) : "; |
|||
read device; |
|||
[ "${device}" == "q" ] && return -1; |
|||
if [ ! -e "${device}" ] ; then |
|||
echo -e "\nNot a valid device!" |
|||
else |
|||
devicefile=${device} |
|||
return 0; |
|||
fi |
|||
done |
|||
} # }}} |
|||
getcdromdevice () { # {{{ |
|||
cdroms="${1}" |
|||
floppies="${2}" |
|||
autoboot="${3}" |
|||
devicelists="/dev/cdroms/* /dev/floppy/*" |
|||
|
|||
[ "${cdroms}" == "0" -a "${floppies}" == "0" ] && return -1 |
|||
|
|||
devnr=0 |
|||
for dev in ${devicelists} ; do |
|||
[ -e "${dev}" ] || continue |
|||
[[ ${dev} = /dev/cdroms* ]] && [ "${cdroms}" == "0" ] && continue |
|||
[[ ${dev} = /dev/floppy* ]] && [ "${floppies}" == "0" ] && continue |
|||
|
|||
eval "device_${devnr}='${dev}'" |
|||
devnr=$((${devnr}+1)) |
|||
done |
|||
|
|||
[ ${devnr} -eq 0 ] && return -1 |
|||
|
|||
x=0 |
|||
floppy=1 |
|||
cdrom=1 |
|||
while [ ${x} -lt ${devnr} ] ; do |
|||
eval "device=\${device_${x}}" |
|||
if [[ ${device} = /dev/cdrom* ]] ; then |
|||
echo " ${x}. CD-ROM #${cdrom} (IDE/ATAPI or SCSI)" |
|||
cdrom=$((${cdrom}+1)) |
|||
fi |
|||
if [[ ${device} = /dev/flopp* ]] ; then |
|||
echo " ${x}. FDD (Floppy Disk Drive) #${floppy}" |
|||
floppy=$((${floppy}+1)) |
|||
fi |
|||
x=$((${x}+1)) |
|||
done |
|||
|
|||
echo -en "\nEnter number or device file name (default=0): " |
|||
|
|||
if [ ${autoboot} -eq 1 ] ; then |
|||
echo "0" |
|||
text=0 |
|||
else |
|||
read text |
|||
fi |
|||
|
|||
[ -z "${text}" ] && text=0 |
|||
|
|||
while : ; do |
|||
if [ -e "${text}" ] ; then |
|||
devicefile="${text}" |
|||
return 0 |
|||
fi |
|||
|
|||
eval "text=\"\${device_${text}}\"" |
|||
if [ -n "${text}" ] ; then |
|||
devicefile="${text}" |
|||
return 0 |
|||
fi |
|||
|
|||
echo -n "No such device found. Try again (enter=back): " |
|||
read text |
|||
[ -z "${text}" ] && return -1 |
|||
done |
|||
|
|||
return 1; |
|||
} # }}} |
|||
load_ramdisk_file() { # {{{ |
|||
devicetype=${1} |
|||
autoboot=${2} |
|||
mountopts="" |
|||
|
|||
echo -en "Select a device for loading the 2nd stage system from: \n\n" |
|||
|
|||
if [ "${devicetype}" == "cdroms" ] ; then |
|||
getcdromdevice 1 1 ${autoboot} || return |
|||
mountopts="-o ro" |
|||
else |
|||
getdevice || return |
|||
fi |
|||
|
|||
cat << EOF |
|||
Select a stage 2 image file: |
|||
|
|||
1. ${STAGE_2_BIG_IMAGE} |
|||
2. ${STAGE_2_SMALL_IMAGE} |
|||
|
|||
EOF |
|||
echo -n "Enter number or image file name (default=1): " |
|||
if [ ${autoboot} -eq 1 ] ; then |
|||
echo "1" |
|||
text=1 |
|||
else |
|||
read text |
|||
fi |
|||
|
|||
if [ -z "${text}" ] ; then |
|||
filename="${STAGE_2_BIG_IMAGE}" |
|||
elif [ "${text}" == "1" ] ; then |
|||
filename="${STAGE_2_BIG_IMAGE}" |
|||
elif [ "${text}" == "2" ] ; then |
|||
filename="${STAGE_2_SMALL_IMAGE}" |
|||
else |
|||
filename="${text}" |
|||
fi |
|||
|
|||
echo "Using ${devicefile}:${filename}." |
|||
|
|||
if ! mkdir -p /mnt_source ; then |
|||
echo "Can't create /mnt_source" |
|||
return 1 |
|||
fi |
|||
|
|||
if ! mount ${mountopts} ${devicefile} "/mnt_source" ; then |
|||
echo "Can't mount /mnt_source" |
|||
return 1 |
|||
fi |
|||
|
|||
if ! mkdir -p /mnt_root ; then |
|||
echo "Can't create /mnt_root" |
|||
return 1 |
|||
fi |
|||
|
|||
if ! mount -t tmpfs -o ${TMPFS_OPTIONS} tmpfs /mnt_root ; then |
|||
echo "Can't mount tmpfs on /mnt_root" |
|||
return 1 |
|||
fi |
|||
|
|||
echo "Extracting 2nd stage filesystem to ram ..." |
|||
if ! tar ${STAGE_2_COMPRESS_ARG} -C /mnt_root -xf /mnt_source/${filename} ; then |
|||
echo "Can't extract /mnt/source/${filename}" |
|||
return 1 |
|||
fi |
|||
|
|||
if ! umount "/mnt_source" ; then |
|||
echo "Can't umount /mnt_source" |
|||
fi |
|||
|
|||
if ! rmdir "/mnt_source" ; then |
|||
echo "Can't remove /mnt_source" |
|||
fi |
|||
|
|||
export ROCK_INSTALL_SOURCE_DEV=${devicefile} |
|||
export ROCK_INSTALL_SOURCE_FILE=${filename} |
|||
doboot |
|||
} # }}} |
|||
activate_swap() { # {{{ |
|||
echo |
|||
echo -n "Enter file name of swap device: " |
|||
|
|||
read text |
|||
if [ -n "${text}" ] ; then |
|||
swapon ${text} |
|||
fi |
|||
} # }}} |
|||
config_net() { # {{{ |
|||
ip addr |
|||
echo |
|||
ip route |
|||
echo |
|||
|
|||
echo -n "Enter interface name (eth0): " |
|||
read dv |
|||
[ -z "${dv}" ] && dv="eth0" |
|||
|
|||
echo -n "Enter ip (192.168.0.254/24): " |
|||
read ip |
|||
[ -z "${ip}" ] && ip="192.168.0.254/24" |
|||
|
|||
ip addr add ${ip} dev ${dv} |
|||
ip link set ${dv} up |
|||
|
|||
echo -n "Enter default gateway (none): " |
|||
read gw |
|||
[ -n "${gw}" ] && ip route add default via ${gw} |
|||
|
|||
ip addr |
|||
echo |
|||
ip route |
|||
echo |
|||
} # }}} |
|||
exec_sh() { # {{{ |
|||
echo "Quit the shell to return to the stage 1 loader!" |
|||
/bin/sh |
|||
} # }}} |
|||
checkisomd5() { # {{{ |
|||
echo "Select a device for checking: " |
|||
|
|||
getcdromdevice 1 0 0 || return |
|||
echo "Running check..." |
|||
|
|||
/bin/checkisomd5 --verbose ${devicefile} |
|||
code=${?} |
|||
if [ ${code} -eq 0 ] ; then |
|||
echo "MD5Sum is correct." |
|||
elif [ ${code} -eq 1 ] ; then |
|||
echo "MD5Sum is NOT correct! Please contact the authors!" |
|||
fi |
|||
|
|||
echo "Press Return key to continue." |
|||
read |
|||
} # }}} |
|||
|
|||
emit_udev_events() { # {{{ |
|||
/sbin/udevtrigger |
|||
/sbin/udevsettle |
|||
} # }}} |
|||
|
|||
input=1 |
|||
[ -z "${autoboot}" ] && autoboot=0 |
|||
|
|||
# mount / / -o remount,rw || echo "Can't remount / read-/writeable" |
|||
# mount / / -o remount,rw || echo "Can't remount / read-/writeable (for mount log)" |
|||
mount -t tmpfs tmpfs /tmp -o ${TMPFS_OPTIONS} || echo "Can't mount a tmpfs on /tmp" |
|||
mount -t proc proc /proc || echo "Can't mount proc on /proc!" |
|||
|
|||
/sbin/depmod -ae |
|||
|
|||
case "$( < /proc/version )" in |
|||
"Linux version 2.4."*) |
|||
mount -t devfs devfs /dev || echo "Can't mount devfs on /dev!" ;; |
|||
"Linux version 2.6."*) |
|||
mount -t sysfs sysfs /sys || echo "Can't mount sysfs on /sys!" |
|||
|
|||
if type -p udevd > /dev/null ; then |
|||
mount -t tmpfs tmpfs /dev || echo "Can't mount a tmpfs on /dev!" |
|||
|
|||
cp -r /lib/udev/devices/* /dev |
|||
|
|||
echo "" > /proc/sys/kernel/hotplug |
|||
/sbin/udevd --daemon |
|||
|
|||
# create nodes for devices already in kernel |
|||
emit_udev_events |
|||
mod_load_info |
|||
|
|||
# some devices (scsi...) need time to settle... |
|||
echo "Waiting for devices to settle..." |
|||
sleep 5 |
|||
fi ;; |
|||
esac |
|||
|
|||
ip addr add 127.0.0.1 dev lo |
|||
ip link set lo up |
|||
|
|||
if [ ${autoboot} -eq 1 ] ; then |
|||
load_ramdisk_file cdroms 1 |
|||
fi |
|||
autoboot=0 |
|||
cat << EOF |
|||
============================================ |
|||
=== ROCK Linux 1st stage boot system === |
|||
============================================ |
|||
|
|||
The ROCK Linux install / rescue system boots up in two stages. You |
|||
are now in the first of this two stages and if everything goes right |
|||
you will not spend much time here. Just load your SCSI and networking |
|||
drivers (if needed) and configure the installation source so the |
|||
2nd stage boot system can be loaded and you can start the installation. |
|||
EOF |
|||
while : ; do |
|||
cat <<EOF |
|||
0. Load 2nd stage system from cdrom or floppy drive |
|||
1. Load 2nd stage system from any device |
|||
2. Load 2nd stage system from network |
|||
3. Configure network interfaces (IPv4 only) |
|||
4. Load kernel modules from this disk |
|||
5. Load kernel modules from another disk |
|||
6. Activate already formatted swap device |
|||
7. Execute a shell (for experts!) |
|||
8. Validate a CD/DVD against its embedded checksum |
|||
|
|||
EOF |
|||
echo -n "What do you want to do [0-8] (default=0)? " |
|||
read text |
|||
[ -z "${text}" ] && text=0 |
|||
input=${text//[^0-9]/} |
|||
|
|||
|
|||
case "${input}" in |
|||
0) |
|||
load_ramdisk_file cdroms 0 |
|||
;; |
|||
1) |
|||
load_ramdisk_file any 0 |
|||
;; |
|||
2) |
|||
httpload |
|||
;; |
|||
3) |
|||
config_net |
|||
;; |
|||
4) |
|||
load_modules "${mod_dir}" |
|||
;; |
|||
5) |
|||
mkdir "/mnt_floppy" || echo "Can't create /mnt_floppy" |
|||
trymount "/dev/floppy/0" "/mnt_floppy" && load_modules "/mnt_floppy" |
|||
umount "/mnt_floppy" || echo "Can't umount /mnt_floppy" |
|||
rmdir "/mnt_floppy" || echo "Can't remove /mnt_floppy" |
|||
;; |
|||
6) |
|||
activate_swap |
|||
;; |
|||
7) |
|||
exec_sh |
|||
;; |
|||
8) |
|||
checkisomd5 |
|||
;; |
|||
*) |
|||
echo "No such option present!" |
|||
esac |
|||
done |
|||
@ -1,93 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
export PATH="/sbin:/bin:/usr/sbin:/usr/bin" |
|||
|
|||
if [ -d /old_root ] && umount /old_root ; then |
|||
rmdir /old_root |
|||
else |
|||
echo "Can't umount /old_root" |
|||
fi |
|||
|
|||
mkdir -p /lib/modules/$( uname -r ) |
|||
echo -n >> /lib/modules/$( uname -r )/modules.dep |
|||
|
|||
if [[ "$( < /proc/version)" == "Linux version 2.6."* ]] \ |
|||
&& type -p udevd > /dev/null ; then |
|||
/sbin/udevd --daemon |
|||
udevtrigger |
|||
udevsettle |
|||
fi |
|||
|
|||
setterm -blank 0 -powersave off -powerdown 0 |
|||
|
|||
echo |
|||
echo ' ******************************************************************' |
|||
echo ' * Welcome to the ROCK Linux 2nd stage boot disk. *' |
|||
echo ' ******************************************************************' |
|||
echo |
|||
echo "This is a small linux distribution, loaded into your computer's memory." |
|||
echo "It has everything needed to install ROCK Linux, restore an old installation" |
|||
echo "or perform some administrative tasks." |
|||
|
|||
for x in /etc/setup-*.sh /setup/setup.sh ; do |
|||
if [ -f "$x" ] ; then |
|||
echo ; echo "Running $x ..." ; sh $x |
|||
echo "Setup script $x finished." |
|||
fi |
|||
done |
|||
|
|||
echo |
|||
ttydevs="" |
|||
|
|||
if [ -z "$autoboot" ]; then |
|||
echo "Enter the names of all terminal devices (e.g. 'vc/1' or 'tts/0')." |
|||
echo -n "An empty text stands for vc/1 - vc/6: "; read ttydevs |
|||
fi |
|||
|
|||
if [ -z "$ttydevs" ]; then |
|||
ttydevs="vc/1 vc/2 vc/3 vc/4 vc/5 vc/6" |
|||
fi |
|||
|
|||
if [[ "$ttydevs" = *tts/* ]] ; then |
|||
echo -n "Connection speed in Baud (default: 9600): " ; read baud |
|||
[ -z "$baud" ] && baud=9600 |
|||
else |
|||
baud=38400 |
|||
fi |
|||
|
|||
echo |
|||
echo 'Just type "stone" now if you want to make a normal installation of a ROCK' |
|||
echo -n 'Linux build ' |
|||
if type -p dialog > /dev/null ; then |
|||
echo '(or type "stone -text" if you prefer non-dialog based menus).' |
|||
else |
|||
echo '(only the text interface is available).' |
|||
fi |
|||
|
|||
if [ -z "$autoboot" ]; then |
|||
echo -e '#!/bin/sh\ncd ; exec /bin/sh --login' > /sbin/login-shell |
|||
else |
|||
cat <<- EOT > /sbin/login-shell |
|||
#!/bin/bash |
|||
cd |
|||
case "\$( tty )" in |
|||
/dev/vc/1) |
|||
echo "Running 'stone' now.." |
|||
/bin/sh --login -c "stone" |
|||
echo -e '#!/bin/sh\\ncd ; exec /bin/sh --login' > /sbin/login-shell |
|||
exit 0 |
|||
;; |
|||
*) |
|||
exec /bin/sh --login |
|||
esac |
|||
EOT |
|||
fi |
|||
chmod +x /sbin/login-shell |
|||
|
|||
for x in $ttydevs ; do |
|||
( ( while : ; do agetty -i $baud $x -n -l /sbin/login-shell ; done ) & ) |
|||
done |
|||
|
|||
exec < /dev/null > /dev/null 2>&1 |
|||
while : ; do sleep 1 ; done |
|||
|
|||
@ -1,16 +0,0 @@ |
|||
____ ___ ___ _ __ _ |
|||
| _ \ / _ \ / __| |/ / | | _ _ __ _ _ _ _ |
|||
| . _/| | | | | | '_/ | | |_| '_ \| | | | \/ | |
|||
| |\ \| |_| | |__| . \ | |__| | | | | `_' |> < |
|||
|_| \_\ ___/ \___|_|\_\ |____|_|_| |_|\___/|_/\_| |
|||
[============> http://www.rocklinux.org/ <============] |
|||
|
|||
So you are going to install ROCK Linux ... |
|||
|
|||
Possible choices are: |
|||
install ........... normal CD boot |
|||
install-novideo .., normal CD boot without accelerated framebuffer |
|||
hd-install ........ boot from hard-disc image |
|||
hd-install-novide . boot from hard-disc image without accelerated framebuffer |
|||
|
|||
. |
|||
@ -1,52 +0,0 @@ |
|||
|
|||
use_yaboot=1 |
|||
|
|||
cd $disksdir |
|||
|
|||
echo_header "Creating cleaning boot directory:" |
|||
rm -rfv boot/*-rock boot/System.map boot/kconfig* |
|||
|
|||
if [ $use_yaboot -eq 1 ] |
|||
then |
|||
echo_header "Creating yaboot setup:" |
|||
# |
|||
echo_status "Extracting yaboot boot loader images." |
|||
mkdir -p boot etc |
|||
tar -O --use-compress-program=bzip2 \ |
|||
-xf $base/build/${ROCKCFG_ID}/ROCK/pkgs/yaboot.tar.bz2 \ |
|||
usr/lib/yaboot/yaboot > boot/yaboot |
|||
tar -O --use-compress-program=bzip2 \ |
|||
-xf $base/build/${ROCKCFG_ID}/ROCK/pkgs/yaboot.tar.bz2 \ |
|||
usr/lib/yaboot/yaboot.rs6k > boot/yaboot.rs6k |
|||
cp boot/yaboot.rs6k install.bin |
|||
# |
|||
echo_status "Creating yaboot config files." |
|||
cp -v $base/target/$target/powerpc/{boot.msg,ofboot.b} \ |
|||
boot |
|||
( |
|||
echo "device=cdrom:" |
|||
cat $base/target/$target/powerpc/yaboot.conf |
|||
) > etc/yaboot.conf |
|||
( |
|||
echo "device=cd:" |
|||
cat $base/target/$target/powerpc/yaboot.conf |
|||
) > boot/yaboot.conf |
|||
# |
|||
echo_status "Moving image (initrd) to boot directory." |
|||
mv -v initrd.gz boot/ |
|||
# |
|||
echo_status "Copy more config files." |
|||
cp -v $base/target/$target/powerpc/mapping . |
|||
# |
|||
datadir="build/${ROCKCFG_ID}/ROCK/bootdisk" |
|||
cat > ../isofs_arch.txt <<- EOT |
|||
BOOT -hfs -part -map $datadir/mapping -hfs-volid "ROCK_Linux_CD" |
|||
BOOTx -hfs-bless boot -sysid PPC -l -L -r -T -chrp-boot |
|||
BOOTx --prep-boot install.bin |
|||
DISK1 $datadir/boot/ boot/ |
|||
DISK1 $datadir/etc/ etc/ |
|||
DISK1 $datadir/install.bin install.bin |
|||
EOT |
|||
# SCRIPT sh $base/target/bootdisk/powerpc/bless-rs6k.sh $disksdir |
|||
fi |
|||
|
|||
@ -1,10 +0,0 @@ |
|||
# Example filename mapping file |
|||
# |
|||
# EXTN XLate CREATOR TYPE Comment |
|||
.b Raw 'UNIX' 'tbxi' "bootstrap" |
|||
yaboot Raw 'UNIX' 'boot' "bootstrap" |
|||
*linux Raw 'UNIX' 'boot' "kernel" |
|||
*.conf Raw 'UNIX' 'conf' "bootstrap" |
|||
root.bin Raw 'UNIX' 'root' "root_image" |
|||
* Raw '????' '????' "Unknown" |
|||
|
|||
@ -1,64 +0,0 @@ |
|||
<CHRP-BOOT> |
|||
<COMPATIBLE> |
|||
MacRISC MacRISC3 |
|||
</COMPATIBLE> |
|||
<DESCRIPTION> |
|||
GNU/Linux PPC bootloader |
|||
</DESCRIPTION> |
|||
<BOOT-SCRIPT> |
|||
" screen" output |
|||
load-base release-load-area |
|||
boot cd:,\\yaboot |
|||
</BOOT-SCRIPT> |
|||
<OS-BADGE-ICONS> |
|||
1010 |
|||
000000000000F8FEACF6000000000000 |
|||
0000000000F5FFFFFEFEF50000000000 |
|||
00000000002BFAFEFAFCF70000000000 |
|||
0000000000F65D5857812B0000000000 |
|||
0000000000F5350B2F88560000000000 |
|||
0000000000F6335708F8FE0000000000 |
|||
00000000005600F600F5FD8100000000 |
|||
00000000F9F8000000F5FAFFF8000000 |
|||
000000008100F5F50000F6FEFE000000 |
|||
000000F8F700F500F50000FCFFF70000 |
|||
00000088F70000F50000F5FCFF2B0000 |
|||
0000002F582A00F5000008ADE02C0000 |
|||
00090B0A35A62B0000002D3B350A0000 |
|||
000A0A0B0B3BF60000505E0B0A0B0A00 |
|||
002E350B0B2F87FAFCF45F0B2E090000 |
|||
00000007335FF82BF72B575907000000 |
|||
000000000000ACFFFF81000000000000 |
|||
000000000081FFFFFFFF810000000000 |
|||
0000000000FBFFFFFFFFAC0000000000 |
|||
000000000081DFDFDFFFFB0000000000 |
|||
000000000081DD5F83FFFD0000000000 |
|||
000000000081DDDF5EACFF0000000000 |
|||
0000000000FDF981F981FFFF00000000 |
|||
00000000FFACF9F9F981FFFFAC000000 |
|||
00000000FFF98181F9F981FFFF000000 |
|||
000000ACACF981F981F9F9FFFFAC0000 |
|||
000000FFACF9F981F9F981FFFFFB0000 |
|||
00000083DFFBF981F9F95EFFFFFC0000 |
|||
005F5F5FDDFFFBF9F9F983DDDD5F0000 |
|||
005F5F5F5FDD81F9F9E7DF5F5F5F5F00 |
|||
0083DD5F5F83FFFFFFFFDF5F835F0000 |
|||
000000FBDDDFACFBACFBDFDFFB000000 |
|||
000000000000FFFFFFFF000000000000 |
|||
0000000000FFFFFFFFFFFF0000000000 |
|||
0000000000FFFFFFFFFFFF0000000000 |
|||
0000000000FFFFFFFFFFFF0000000000 |
|||
0000000000FFFFFFFFFFFF0000000000 |
|||
0000000000FFFFFFFFFFFF0000000000 |
|||
0000000000FFFFFFFFFFFFFF00000000 |
|||
00000000FFFFFFFFFFFFFFFFFF000000 |
|||
00000000FFFFFFFFFFFFFFFFFF000000 |
|||
000000FFFFFFFFFFFFFFFFFFFFFF0000 |
|||
000000FFFFFFFFFFFFFFFFFFFFFF0000 |
|||
000000FFFFFFFFFFFFFFFFFFFFFF0000 |
|||
00FFFFFFFFFFFFFFFFFFFFFFFFFF0000 |
|||
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00 |
|||
00FFFFFFFFFFFFFFFFFFFFFFFFFF0000 |
|||
000000FFFFFFFFFFFFFFFFFFFF000000 |
|||
</OS-BADGE-ICONS> |
|||
</CHRP-BOOT> |
|||
@ -1,24 +0,0 @@ |
|||
message=/boot/boot.msg |
|||
|
|||
timeout = 120 |
|||
default = auto |
|||
|
|||
## CD-ROM Installs ## |
|||
image=/boot/vmlinux |
|||
label=auto |
|||
initrd=/boot/initrd.gz |
|||
initrd-size=12288 |
|||
append="root=/dev/ram0 devfs=nocompat autoboot=1 rw" |
|||
|
|||
image=/boot/vmlinux |
|||
label=install |
|||
initrd=/boot/initrd.gz |
|||
initrd-size=12288 |
|||
append="root=/dev/ram0 devfs=nocompat rw" |
|||
|
|||
image=/boot/vmlinux |
|||
label=install-novideo |
|||
initrd=/boot/initrd.gz |
|||
initrd-size=12288 |
|||
append="root=/dev/ram0 devfs=nocompat rw video=ofonly" |
|||
|
|||
@ -1,21 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
echo "Sending all processes a SIGTERM (15)." |
|||
killall5 -15 || error=$? ; sleep 5 |
|||
|
|||
echo "Sending all processes a 2nd SIGTERM (15)." |
|||
killall5 -15 || error=$? ; sleep 5 |
|||
|
|||
echo "Sending all processes a SIGKILL (9)." |
|||
killall5 -9 || error=$? ; sleep 5 |
|||
|
|||
echo "Turning off swap devices." |
|||
swapoff -a || error=$? |
|||
sync ; sleep 1 |
|||
|
|||
echo "Unmounting filesystems." |
|||
umount -advf || error=$? |
|||
|
|||
echo "Reboot ..." |
|||
reboot -f |
|||
|
|||
@ -1,20 +0,0 @@ |
|||
____ ___ ___ _ __ _ |
|||
| _ \ / _ \ / __| |/ / | | _ _ __ _ _ _ _ |
|||
| . _/| | | | | | '_/ | | |_| '_ \| | | | \/ | |
|||
| |\ \| |_| | |__| . \ | |__| | | | | `_' |> < |
|||
|_| \_\ ___/ \___|_|\_\ |____|_|_| |_|\___/|_/\_| |
|||
[============> http://www.rocklinux.org/ <============] |
|||
|
|||
Help Screens: |
|||
------------- |
|||
|
|||
<1> Installation overview |
|||
<0> This help-text |
|||
|
|||
Actions: |
|||
-------- |
|||
|
|||
<ENTER> Start installation |
|||
install options <Enter> Start install with the given kernel options |
|||
help Show SILO's help |
|||
|
|||
@ -1,28 +0,0 @@ |
|||
|
|||
cd $disksdir |
|||
|
|||
echo_header "Cleaning boot directory:" |
|||
rm -rfv boot/*-rock boot/System.map boot/kconfig* boot/initrd*img boot/*.b |
|||
|
|||
echo_header "Creating silo setup:" |
|||
# |
|||
echo_status "Extracting silo boot loader images." |
|||
mkdir -p boot |
|||
tar --use-compress-program=bzip2 \ |
|||
-xf $base/build/${ROCKCFG_ID}/ROCK/pkgs/silo.tar.bz2 \ |
|||
boot/second.b -O > boot/second.b |
|||
# |
|||
echo_status "Creating silo config file." |
|||
cp -v $base/target/$target/sparc/{silo.conf,boot.msg,help1.txt} \ |
|||
boot |
|||
# |
|||
echo_status "Moving image (initrd) to boot directory." |
|||
mv -v initrd.gz boot/ |
|||
# |
|||
buildroot="build/${ROCKCFG_ID}" |
|||
datadir="build/${ROCKCFG_ID}/ROCK/bootdisk" |
|||
cat > ../isofs_arch.txt <<- EOT |
|||
BOOT -G $buildroot/boot/isofs.b -B ... |
|||
DISK1 $datadir/boot/ boot/ |
|||
EOT |
|||
|
|||
@ -1,22 +0,0 @@ |
|||
Installation Overview: |
|||
|
|||
The ROCK Linux install / rescue system boots up in two stages. In the first |
|||
stage only a small binary is running which is used to load the complete |
|||
install / rescue system into the memory. So in the first stage you can load |
|||
network and scsi kernel modules, configure network devices (for netwok |
|||
installation) or load the system from a floppy or CD-ROM device. |
|||
|
|||
For a normal installation from the first CD-ROM you only need to press enter |
|||
for each question to do use default options. |
|||
|
|||
You can freely choose which terminal devices (e.g. 'vc/1' or 'tts/0'). |
|||
If you just hit <ENTER>, you'll use vc/1 to vc/6. |
|||
|
|||
To start the installation just exectute our Setup Tool ONE via 'stone' or |
|||
'stone -text', if you prefer non-dialog based menus. |
|||
|
|||
|
|||
In STONE you can create your partitions and filesystems and after selecting |
|||
the Package Manager choose wich packages to install. |
|||
|
|||
At the end reboot your machine with 'reboot -f'. |
|||
@ -1,22 +0,0 @@ |
|||
partition=1 |
|||
timeout=600 |
|||
message=/boot/boot.msg |
|||
default=install |
|||
root=/dev/ram0 |
|||
initrd=/boot/initrd.gz |
|||
read-write |
|||
append="devfs=nocompat" |
|||
|
|||
image="cat /boot/boot.msg" |
|||
label=0 |
|||
single-key |
|||
image="cat /boot/help1.txt" |
|||
label=1 |
|||
single-key |
|||
|
|||
image[sun4u]=/boot/vmlinux64.gz |
|||
label=install |
|||
alias=linux |
|||
image[sun4c,sun4d,sun4m]=/boot/vmlinux32.gz |
|||
label=install |
|||
alias=linux |
|||
@ -1,67 +0,0 @@ |
|||
|
|||
use_isolinux=1 |
|||
syslinux_ver="`sed -n 's,.*syslinux-\(.*\).tar.*,\1,p' \ |
|||
$base/target/bootdisk/download.txt`" |
|||
use_mdlbl=1 |
|||
mdlbl_ver="`sed -n 's,.*mdlbl-\(.*\).tar.*,\1,p' \ |
|||
$base/target/bootdisk/download.txt`" |
|||
|
|||
cd $disksdir |
|||
|
|||
echo_header "Creating lilo config and cleaning boot directory:" |
|||
cp $base/target/$target/x86/lilo-* boot/ |
|||
for x in boot/*; do |
|||
[ -L $x -a -f $x ] || continue |
|||
cp -L $x $x.data; mv $x.data $x |
|||
echo "dereferenced \`$x'" |
|||
done |
|||
rm -rfv boot/*-rock boot/grub boot/System.map boot/kconfig boot/*.24** |
|||
|
|||
echo_header "Creating floppy disk images:" |
|||
cp $base/target/$target/x86/makeimages.sh . |
|||
chmod +x makeimages.sh |
|||
|
|||
if [ $use_mdlbl -eq 1 ] |
|||
then |
|||
tar $taropt $base/download/mirror/m/mdlbl-$mdlbl_ver.tar.bz2 |
|||
cd mdlbl-$mdlbl_ver |
|||
cp ../boot/vmlinuz .; cp ../initrd.gz initrd; ./makedisks.sh |
|||
for x in disk*.img; do mv $x ../floppy${x#disk}; done; cd .. |
|||
du -sh floppy*.img | while read x; do echo_status $x; done |
|||
else |
|||
tmpfile=`mktemp -p $PWD` |
|||
if sh ./makeimages.sh &> $tmpfile; then |
|||
cat $tmpfile | while read x; do echo_status "$x"; done |
|||
else |
|||
cat $tmpfile | while read x; do echo_error "$x"; done |
|||
fi |
|||
rm -f $tmpfile |
|||
cat > ../isofs_arch.txt <<- EOT |
|||
BOOT -b ${ROCKCFG_SHORTID}/boot_288.img -c ${ROCKCFG_SHORTID}/boot.catalog |
|||
EOT |
|||
fi |
|||
|
|||
if [ $use_isolinux -eq 1 ] |
|||
then |
|||
echo_header "Creating isolinux setup:" |
|||
# |
|||
echo_status "Extracting isolinux boot loader." |
|||
mkdir -p isolinux |
|||
tar -O $taropt $base/download/mirror/s/syslinux-$syslinux_ver.tar.bz2 \ |
|||
syslinux-$syslinux_ver/isolinux.bin > isolinux/isolinux.bin |
|||
# |
|||
echo_status "Creating isolinux config file." |
|||
cp $base/target/$target/x86/isolinux.cfg isolinux/ |
|||
cp $base/target/$target/x86/help?.txt isolinux/ |
|||
# |
|||
echo_status "Copy images to isolinux directory." |
|||
cp boot/memtest86.bin isolinux/memtest86 |
|||
cp initrd.gz boot/vmlinuz isolinux/ |
|||
# |
|||
cat > ../isofs_arch.txt <<- EOT |
|||
BOOT -b isolinux/isolinux.bin -c isolinux/boot.catalog |
|||
BOOTx -no-emul-boot -boot-load-size 4 -boot-info-table |
|||
DISK1 build/${ROCKCFG_ID}/ROCK/bootdisk/isolinux/ isolinux/ |
|||
EOT |
|||
fi |
|||
|
|||
@ -1,22 +0,0 @@ |
|||
____ ___ ___ _ __ _ |
|||
| _ \ / _ \ / __| |/ / | | _ _ __ _ _ _ _ |
|||
| . _/| | | | | | '_/ | | |_| '_ \| | | | \/ | |
|||
| |\ \| |_| | |__| . \ | |__| | | | | `_' |> < |
|||
|_| \_\ ___/ \___|_|\_\ |____|_|_| |_|\___/|_/\_| |
|||
[============> http://www.rocklinux.org/ <============] |
|||
|
|||
Help Screens: |
|||
------------- |
|||
|
|||
<F1> <Ctrl-F><1> Installation overview |
|||
<F2> <Ctrl-F><2> Installing on systems with less than 64 MB RAM |
|||
<F10> <Ctrl-F><0> This help-text |
|||
|
|||
Actions: |
|||
-------- |
|||
|
|||
<ENTER> Start installation system |
|||
ROCK [options] <Enter> The same with interactive stage 1 (for experts) |
|||
linux [options] <Enter> Boot a plain linux kernel (for rescue purposes) |
|||
memtest86 <Enter> Boot the memtest86 mini-os |
|||
|
|||
@ -1,22 +0,0 @@ |
|||
Installation Overview: |
|||
|
|||
The ROCK Linux install / rescue system boots up in two stages. In the first |
|||
stage only a small binary is running which is used to load the complete |
|||
install / rescue system into the memory. So in the first stage you can load |
|||
network and scsi kernel modules, configure network devices (for netwok |
|||
installation) or load the system from a floppy or CD-ROM device. |
|||
|
|||
For a normal installation from the first CD-ROM you only need to press enter |
|||
for each question to do use default options. |
|||
|
|||
You can freely choose which terminal devices (e.g. 'vc/1' or 'tts/0'). |
|||
If you just hit <ENTER>, you'll use vc/1 to vc/6. |
|||
|
|||
To start the installation just exectute our Setup Tool ONE via 'stone' or |
|||
'stone -text', if you prefer non-dialog based menus. |
|||
|
|||
|
|||
In STONE you can create your partitions and filesystems and after selecting |
|||
the Package Manager choose wich packages to install. |
|||
|
|||
At the end reboot your machine with 'reboot -f'. |
|||
@ -1,13 +0,0 @@ |
|||
Installation on systems with less than 64MB of RAM: |
|||
|
|||
To load the ramdisk for the 2nd stage installation you nead arround |
|||
20MB of RAM. It can also be loaded on small sized memory systems when |
|||
a swap partition is available. If you already have partitionized the |
|||
disk you can activate it in the first stage program using the option |
|||
"Activate already formatted swap device". |
|||
|
|||
If you need to partitionize your disk you can load a very small ram- |
|||
disk ("2nd_stage_small") to perform initial configuration such as |
|||
partitionizing the disk, and then reboot to choose the normal 2nd_ |
|||
stage file for installation. |
|||
|
|||
@ -1,36 +0,0 @@ |
|||
|
|||
DEFAULT auto |
|||
TIMEOUT 600 |
|||
PROMPT 1 |
|||
|
|||
DISPLAY help0.txt |
|||
|
|||
F1 help1.txt |
|||
F2 help2.txt |
|||
F3 help3.txt |
|||
F4 help4.txt |
|||
F5 help5.txt |
|||
F6 help6.txt |
|||
F7 help7.txt |
|||
F8 help8.txt |
|||
F9 help9.txt |
|||
F0 help0.txt |
|||
|
|||
LABEL auto |
|||
kernel vmlinuz |
|||
APPEND initrd=initrd.gz root=/dev/ram0 devfs=nocompat autoboot=1 rw |
|||
|
|||
LABEL ROCK |
|||
kernel vmlinuz |
|||
APPEND initrd=initrd.gz root=/dev/ram0 devfs=nocompat rw |
|||
|
|||
LABEL ramdisk |
|||
kernel vmlinuz |
|||
APPEND initrd=initrd.gz root=/dev/ram0 devfs=nocompat rw |
|||
|
|||
LABEL linux |
|||
kernel vmlinuz |
|||
|
|||
LABEL memtest86 |
|||
kernel memtest86 |
|||
|
|||
@ -1,30 +0,0 @@ |
|||
disk=/dev/floppy/0 |
|||
bios = 0x00 |
|||
sectors = 18 |
|||
heads = 2 |
|||
cylinders = 80 |
|||
|
|||
nowarn |
|||
boot=/dev/floppy/0 |
|||
install=/mnt/boot.b |
|||
map=/mnt/map |
|||
vga=normal |
|||
message=/mnt/lilo-help.txt |
|||
geometric |
|||
compact |
|||
prompt |
|||
|
|||
image=/mnt/vmlinuz |
|||
read-write |
|||
append="root=/dev/fd devfs=nocompat \ |
|||
load_ramdisk=1 prompt_ramdisk=1 \ |
|||
ramdisk_size=12288" |
|||
label=ramdisk |
|||
|
|||
image=/mnt/vmlinuz |
|||
label=linux |
|||
|
|||
image=/mnt/memtest.bin |
|||
label=memtest |
|||
optional |
|||
|
|||
@ -1,29 +0,0 @@ |
|||
disk=/dev/floppy/0 |
|||
bios = 0x00 |
|||
sectors = 18 |
|||
heads = 2 |
|||
cylinders = 80 |
|||
|
|||
nowarn |
|||
boot=/dev/floppy/0 |
|||
install=/mnt/boot.b |
|||
map=/mnt/map |
|||
vga=normal |
|||
message=/mnt/lilo-help.txt |
|||
geometric |
|||
compact |
|||
prompt |
|||
|
|||
image=/mnt/vmlinuz |
|||
read-write |
|||
append="root=/dev/ram0 devfs=nocompat" |
|||
initrd=/mnt/initrd.gz |
|||
label=ramdisk |
|||
|
|||
image=/mnt/vmlinuz |
|||
label=linux |
|||
|
|||
image=/mnt/memtest.bin |
|||
label=memtest |
|||
optional |
|||
|
|||
@ -1,29 +0,0 @@ |
|||
disk=/dev/floppy/0 |
|||
bios = 0x00 |
|||
sectors = 36 |
|||
heads = 2 |
|||
cylinders = 80 |
|||
|
|||
nowarn |
|||
boot=/dev/floppy/0 |
|||
install=/mnt/boot.b |
|||
map=/mnt/map |
|||
vga=normal |
|||
message=/mnt/lilo-help.txt |
|||
geometric |
|||
compact |
|||
prompt |
|||
|
|||
image=/mnt/vmlinuz |
|||
read-write |
|||
append="root=/dev/ram0 devfs=nocompat" |
|||
initrd=/mnt/initrd.gz |
|||
label=ramdisk |
|||
|
|||
image=/mnt/vmlinuz |
|||
label=linux |
|||
|
|||
image=/mnt/memtest.bin |
|||
label=memtest |
|||
optional |
|||
|
|||
@ -1,4 +0,0 @@ |
|||
|
|||
This is the ROCK Linux Install system. If you don't know what to do now just |
|||
press enter and start reading the documentation. |
|||
|
|||
@ -1,92 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ "$1" = -reroot ] ; then |
|||
echo "Old PATH: $PATH" |
|||
PATH="../../sbin:../../bin:../../../sbin:../usr/bin:$PATH" |
|||
echo "New PATH: $PATH" |
|||
echo "Old LD_LIBRARY_PATH: $LD_LIBRARY_PATH" |
|||
export LD_LIBRARY_PATH="../../lib:../../usr/lib:$LD_LIBRARY_PATH" |
|||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH%:} |
|||
echo "New LD_LIBRARY_PATH: $LD_LIBRARY_PATH" |
|||
shift |
|||
fi |
|||
|
|||
if [ "$1" = -combo ] ; then |
|||
combo=1 |
|||
elif [ "$#" != 0 ] ; then |
|||
echo "usage: $0 [-reroot] [-combo]" |
|||
exit 1 |
|||
fi |
|||
|
|||
tmpfile=`mktemp -p $PWD` |
|||
tmpdir=$tmpfile.dir |
|||
mkdir $tmpdir || exit 1 |
|||
rc=0 |
|||
|
|||
tmpdev="" |
|||
for x in /dev/loop/* ; do |
|||
if losetup $x $tmpfile 2> /dev/null ; then |
|||
tmpdev=$x ; break |
|||
fi |
|||
done |
|||
if [ -z "$tmpdev" ] ; then |
|||
echo "No free loopback device found!" |
|||
rm -f $tmpfile ; rmdir $tmpdir |
|||
exit 1 |
|||
fi |
|||
echo "Using $tmpdev." |
|||
|
|||
for image in initrd boot_144 boot_288 |
|||
do |
|||
case ${image} in |
|||
initrd) |
|||
echo "Creating ${image}.gz ..." |
|||
size=4096 ;; |
|||
boot_144) |
|||
echo "Creating ${image}.img ..." |
|||
size=1440 ;; |
|||
boot_288) |
|||
echo "Creating ${image}.img ..." |
|||
size=2880 ;; |
|||
esac |
|||
|
|||
dd if=/dev/zero of=$tmpfile bs=1024 count=$size &> /dev/null |
|||
losetup -d $tmpdev ; losetup $tmpdev $tmpfile || rc=1 |
|||
mke2fs -q $tmpdev &> /dev/null ; mount $tmpdev $tmpdir || rc=1 |
|||
|
|||
case ${image} in |
|||
initrd) |
|||
cp -a initrd/* $tmpdir || rc=1 |
|||
;; |
|||
|
|||
boot_144|boot_288) |
|||
cp -a boot/{vmlinuz,lilo-help.txt} $tmpdir || rc=1 |
|||
if [ -f /boot/boot-text.b ]; then |
|||
cp /boot/boot-text.b $tmpdir/boot.b || rc=1 |
|||
fi |
|||
liloconf=lilo-conf-${image#boot_} |
|||
if [ $image = boot_288 -o "$combo" = 1 ] ; then |
|||
cp initrd.gz $tmpdir || rc=1 |
|||
[ $image = boot_144 ] && liloconf=lilo-conf-1x2 |
|||
fi |
|||
sed -e "s,/mnt/,$tmpdir/,g" \ |
|||
-e "s,/dev/floppy/0,$tmpdev,;" \ |
|||
< boot/$liloconf > $tmpdir/lilo.conf || rc=1 |
|||
lilo -C $tmpdir/lilo.conf > /dev/null || rc=1 |
|||
;; |
|||
esac |
|||
|
|||
umount $tmpdir |
|||
|
|||
case ${image} in |
|||
initrd) gzip -9 < $tmpfile > $image.gz || rc=1 ;; |
|||
*) cp $tmpfile $image.img || rc=1 ;; |
|||
esac |
|||
done |
|||
|
|||
losetup -d $tmpdev |
|||
rm -f $tmpfile |
|||
rmdir $tmpdir |
|||
|
|||
exit $rc |
|||
|
|||