mirror of
https://gitlab.com/JKANetwork/JKArch.git
synced 2026-03-04 01:19:59 +01:00
First commit of new scripts
This commit is contained in:
152
ISOCreateScripts/totalisocreate.sh
Executable file
152
ISOCreateScripts/totalisocreate.sh
Executable file
@@ -0,0 +1,152 @@
|
||||
#!/bin/bash
|
||||
### Este script crea las iso Online y Offline de JKArch desde parte de los archivos de una iso original de archlinux (Descargada desde rediris)
|
||||
### Creado por JKANetwork
|
||||
### Este script debe ser ejecutado con el clone del git de JKArch sin mover ningun fichero
|
||||
|
||||
sfslocate="/tmp/sfsfile" #Donde se harán las modificaciones temporales (El chroot)
|
||||
|
||||
#Funciones
|
||||
|
||||
##Esta funcion actualiza el sistema del sfs, borra e instala paquetes, y crea el sfs final no dejando temporales
|
||||
function modifyimage {
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman-key --init
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman-key --populate
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman -Sy archlinux-keyring --noconfirm
|
||||
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman -S reflector --noconfirm
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/reflector --verbose -l 6 --sort rate --save /etc/pacman.d/mirrorlist
|
||||
#Delete packages not needed from official iso
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman -R clonezilla darkhttpd diffutils grml-zsh-config irssi linux-atm lvm2 man-db man-pages mc ndisc6 nmap smartmontools testdisk vi vim vim-runtime zsh openconnect pcsclite python2 --noconfirm
|
||||
#Install new
|
||||
sudo arch-chroot $sfslocate/ /usr/bin/pacman -Su gparted xf86-video-vesa xorg-xinit --noconfirm --ignore linux #Do not upgrade kernel automatically
|
||||
sudo rm -rf $sfslocate/var/cache/pacman/pkg/*
|
||||
sudo rm $sfslocate/root/.bash_history
|
||||
#Devolver permisos de root
|
||||
sudo chmod 700 $sfslocate/root/
|
||||
|
||||
#Crear nuevo sfs y comprobar su creacion
|
||||
sudo mksquashfs $sfslocate/ iso/arch/x86_64/airootfs.sfs.new -comp xz
|
||||
if [[ $? == 0 ]];then
|
||||
sudo rm -r iso/arch/x86_64/airootfs.sfs
|
||||
sudo mv iso/arch/x86_64/airootfs.sfs.new iso/arch/x86_64/airootfs.sfs
|
||||
else #Error en mksquashfs
|
||||
sudo rm -r iso/arch/x86_64/airootfs.sfs.new
|
||||
sudo umount $sfslocate/*
|
||||
sudo rm -rf $sfslocate/
|
||||
echo "ERROR AL INTENTAR CREAR EL SFS, PROGRAMA DETENIDO"
|
||||
exit
|
||||
fi
|
||||
#md5
|
||||
md5sum iso/arch/x86_64/airootfs.sfs > iso/arch/x86_64/airootfs.md5
|
||||
#Borrar archivos temporales del pc real
|
||||
sudo umount $sfslocate/*
|
||||
sudo rm -rf $sfslocate/
|
||||
}
|
||||
|
||||
##Esta funcion genera el .bash_profile
|
||||
function bashprofile {
|
||||
sudo echo "#" > $sfslocate/root/.bash_profile
|
||||
sudo echo "# ~/.bash_profile" >> $sfslocate/root/.bash_profile
|
||||
sudo echo "#" >> $sfslocate/root/.bash_profile
|
||||
sudo echo "cd /root/" >> $sfslocate/root/.bash_profile
|
||||
if [[ $1 = "Online" ]];then
|
||||
sudo echo "./downloadinstall.sh" >> $sfslocate/root/.bash_profile
|
||||
else #Offline
|
||||
sudo echo "./selectlang.sh" >> $sfslocate/root/.bash_profile
|
||||
fi
|
||||
sudo echo "[[ -f ~/.bashrc ]] && . ~/.bashrc" >> $sfslocate/root/.bash_profile
|
||||
}
|
||||
|
||||
##Esta funcion prepara la carpeta iso
|
||||
prepareISOFolder {
|
||||
rm -rf iso/*
|
||||
mkdir iso
|
||||
cp -r data/* iso/
|
||||
mkdir -p iso/arch/x86_64 #This folder is needed
|
||||
cp temp/archiso.img iso/arch/archiso.img
|
||||
cp temp/vmlinuz iso/arch/vmlinuz
|
||||
cp temp/intel_ucode.img iso/arch/intel_ucode.img
|
||||
cp temp/intel_ucode.LICENSE iso/arch/intel_ucode.LICENSE
|
||||
cp temp/airootfs.sfs iso/arch/x86_64/airootfs.sfs
|
||||
}
|
||||
|
||||
#Borramos carpeta temporal
|
||||
rm -rf temp/
|
||||
mkdir temp
|
||||
|
||||
#Download necessary files
|
||||
wget http://sunsite.rediris.es/mirror/archlinux/iso/latest/arch/boot/x86_64/archiso.img -O temp/archiso.img
|
||||
wget http://sunsite.rediris.es/mirror/archlinux/iso/latest/arch/boot/x86_64/vmlinuz -O temp/vmlinuz
|
||||
wget http://sunsite.rediris.es/mirror/archlinux/iso/latest/arch/boot/intel_ucode.img -O temp/intel_ucode.img
|
||||
wget http://sunsite.rediris.es/mirror/archlinux/iso/latest/arch/boot/intel_ucode.LICENSE -O temp/intel_ucode.LICENSE
|
||||
wget http://sunsite.rediris.es/mirror/archlinux/iso/latest/arch/x86_64/airootfs.sfs -O temp/airootfs.sfs
|
||||
#
|
||||
|
||||
# Online ISO Procedure
|
||||
|
||||
#Copy important files
|
||||
prepareISOFolder
|
||||
|
||||
sudo unsquashfs -d $sfslocate/ iso/arch/x86_64/airootfs.sfs
|
||||
|
||||
#Permisos de root de la imagen cambiar temporalmente
|
||||
sudo chmod 777 $sfslocate/root/
|
||||
sudo rm $sfslocate/root/*
|
||||
|
||||
#.bash_profile Online
|
||||
bashprofile "Online"
|
||||
|
||||
#Copiar ficheros instalador
|
||||
sudo cp ../archinstall/* $sfslocate/root/
|
||||
sudo rm $sfslocate/root/pacman-offline.conf
|
||||
|
||||
#Resto de modificaciones (las comunes) y cerrado del sfs
|
||||
modifyimage
|
||||
|
||||
#Creamos la ISO
|
||||
mkisofs -b isolinux/isolinux.bin -r -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "JKARCH-ISO" -o output-Online.iso iso/
|
||||
sudo rm -rf iso/
|
||||
echo "ISO Online creada"
|
||||
|
||||
|
||||
|
||||
# Offline ISO Procedure
|
||||
|
||||
#Copy important files
|
||||
prepareISOFolder
|
||||
|
||||
#Unsquash sfs file
|
||||
sudo unsquashfs -d $sfslocate/ iso/arch/x86_64/airootfs.sfs
|
||||
|
||||
#Permisos de root de la imagen cambiar temporalmente
|
||||
sudo chmod 777 $sfslocate/root/
|
||||
sudo rm $sfslocate/root/*
|
||||
|
||||
#.bash_profile Offline
|
||||
bashprofile "Offline"
|
||||
|
||||
#Create subfolder and folder at same time
|
||||
sudo mkdir -p $sfslocate/root/offlinefiles/mods/
|
||||
#Esta ruta es absoluta, no vale para todos los sistemas (Es "temporal")
|
||||
sudo cp ../archinstall/* $sfslocate/root/offlinefiles/
|
||||
sudo rm $sfslocate/root/offlinefiles/downloadinstall.sh $sfslocate/root/offlinefiles/archinstall-dev.sh
|
||||
sudo cp ../mods/* $sfslocate/root/offlinefiles/mods/
|
||||
|
||||
#Resto de modificaciones (las comunes) y cerrado del sfs
|
||||
modifyimage
|
||||
|
||||
#Creamos el repositorio
|
||||
sudo sh depsjkarch.sh
|
||||
#Lo movemos a su sitio
|
||||
mv repoofflinejkarch/* iso/repo/
|
||||
rm -rf repoofflinejkarch/
|
||||
|
||||
#Creamos la ISO
|
||||
mkisofs -b isolinux/isolinux.bin -r -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "JKARCH-ISO" -o output-Offline.iso iso/
|
||||
sudo rm -rf iso/
|
||||
echo "ISO Offline creada"
|
||||
|
||||
#Borramos carpeta temporal
|
||||
rm -rf temp/
|
||||
mkdir temp
|
||||
echo "Script terminado"
|
||||
Reference in New Issue
Block a user