#!/bin/bash # # simplive64: distro live em 64 bits usando initrd # feedback: rhatto at riseup.net | gpl # # Nota: ao testar no qemu, nao esqueca de passar a opcao "-m 290", # senao o sistema nao tera memoria suficiente # # Veja o arquivo README para mais informacoes. # Ultima atualizacao: 26/10/2006 # ISO_DIR="/phreak/backup" PACKAGE_DIR="/phreak/apps" ISOS="$PACKAGE_DIR/distros" FOLDER="/phreak/projetos/distros/simplive" MNT="/mnt" INITRD_MNT="simplive" if [ -z "$SLAMD" ]; then VERSION="`cat /etc/slackware-version | awk '{ print $2 }' | sed -e 's/.0$//'`" SLAMD_VERSION="$VERSION" else VERSION="$SLAMD" SLAMD_VERSION="$VERSION" fi if [ -z "$SLACK" ]; then SLACK_VERSION="$VERSION" else SLACK_VERSION="$SLACK" fi if [ -z "$TEMPLATE" ]; then TEMPLATE="simplive" fi if [ -z "$KERNEL" ]; then KERNEL="/boot/vmlinuz" fi if [ -z "$PACKAGES" ]; then PACKAGES="1" fi if [ -z "$INITRD_SIZE" ]; then # max: 300M ou edite o isolinux.cfg INITRD_SIZE="300M" fi echo Criando o sistema live... mkdir -p $MNT/slamd64-{1,2} mkdir -p $MNT/slackware-{1,2} for iso in 1 2 3 4; do if [ -f "$PACKAGE_DIR/distros/slamd64-$VERSION/slamd64-$VERSION-disk$iso.iso" ]; then mount -o loop $PACKAGE_DIR/distros/slamd64-$VERSION/slamd64-$VERSION-disk$iso.iso /mnt/slamd64-$iso elif [ -f "$PACKAGE_DIR/distros/slamd64-$VERSION/slamd64-$VERSION-install-d$iso.iso" ]; then mount -o loop $PACKAGE_DIR/distros/slamd64-$VERSION/slamd64-$VERSION-install-d$iso.iso /mnt/slamd64-$iso fi if [ -f "$PACKAGE_DIR/distros/slackware-$SLACK_VERSION/slackware-$SLACK_VERSION-install-d$iso.iso" ]; then mount -o loop $PACKAGE_DIR/distros/slackware-$SLACK_VERSION/slackware-$SLACK_VERSION-install-d$iso.iso /mnt/slackware-$iso fi done cd $FOLDER # ARCH=x86_64 VERSION=10.2 ROOT=$FOLDER mkjail initrd-tree $TEMPLATE # umount $FOLDER/initrd-tree/proc # isolinux stuff cp $KERNEL tree/boot/vmlinuz # initrd stuff mkdir -p $MNT/$INITRD_MNT dd if=/dev/zero of=tree/boot/initrd bs=$INITRD_SIZE count=1 mkfs.ext3 -F tree/boot/initrd mount -o loop tree/boot/initrd $MNT/$INITRD_MNT ARCH=x86_64 VERSION=$SLAMD_VERSION ROOT=$MNT mkjail $INITRD_MNT $TEMPLATE umount $MNT/$INITRD_MNT echo Gzipping initrd... cd tree/boot if [ -f "initrd.gz" ]; then rm initrd.gz fi gzip -9 initrd # teste da initrd # mkisofs -o simplive.iso -v -J -R -D -A simplive -V simplive -no-emul-boot -boot-info-table \ # -boot-load-size 4 -b boot/isolinux.bin -c boot/isolinux.boot tree/ if [ "$PACKAGES" == "1" ]; then echo Criando os repositorios... cd $FOLDER/tree mkdir packages distros rsync -av --delete --exclude=.svn \ $PACKAGE_DIR/packages/patches/ packages/patches/ rsync -av --delete --exclude=.svn \ $PACKAGE_DIR/packages/slamd64/slamd64-$VERSION/ packages/slamd64-$VERSION/ rsync -av --delete --exclude=.svn \ $PACKAGE_DIR/packages/slackware/slackware-$SLACK_VERSION/ packages/slackware-$SLACK_VERSION/ rsync -av --exclude=kernels --exclude=isolinux $MNT/slamd64-1/ distros/slamd64-$SLAMD_VERSION-1/ rsync -av --exclude=pasture --exclude=source --exclude=kernels $MNT/slamd64-2/ distros/slamd64-$SLAMD_VERSION-2/ rsync -av --exclude=kernels --exclude=source $MNT/slamd64-3/ distros/slamd64-$SLAMD_VERSION-3/ rsync -av --exclude=kernels --exclude=isolinux $MNT/slackware-1/ distros/slackware-$SLACK_VERSION-1/ rsync -av --exclude=rootdisks --exclude=bootdisks --exclude=extra $MNT/slackware-2/ distros/slackware-$SLACK_VERSION-2/ # rsync -av --exclude=testing--exclude=extra --exclude=extra $MNT/slackware-3/ distros/slackware-$SLACK_VERSION-3/ else rm -rf $FOLDER/tree/distros $FOLDER/tree/packages fi echo Criando a imagem... cd $FOLDER mkisofs -o $ISO_DIR/simplive.iso -v -J -R -D -A simplive -V simplive -no-emul-boot -boot-info-table \ -boot-load-size 4 -b boot/isolinux.bin -c boot/isolinux.boot tree/ if [ "$PACKAGES" == "1" ]; then echo Apagando $FOLDER/tree/{distros,packages,opt}... rm -rf $FOLDER/tree/{distros,packages,opt} echo Apagando $FOLDER/tree/boot/initrd.gz... rm $FOLDER/tree/boot/initrd.gz fi umount $MNT/slamd64-{1,2,3} umount $MNT/slackware-{1,2,3} # purge the package cache ARCH=x86_64 VERSION=$SLAMD_VERSION simplaret --purge echo Para gravar num DVD, use: growisofs -dvd-compat -Z /dev/dvd=simplive.iso echo Para gravar num CD, use: cdrecord -v dev=/dev/cdrom simplive.iso