init
This commit is contained in:
commit
927863dbc8
18
grub/grub.cfg
Normal file
18
grub/grub.cfg
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
if loadfont /boot/grub/font.pf2 ; then
|
||||||
|
set gfxmode=auto
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod gfxterm
|
||||||
|
terminal_output gfxterm
|
||||||
|
fi
|
||||||
|
|
||||||
|
set menu_color_normal=white/black
|
||||||
|
set menu_color_highlight=black/light-gray
|
||||||
|
set timeout=0
|
||||||
|
|
||||||
|
menuentry "Demarrer ou installer Linux Mint 20.1 MATE 64-bit LIS67" --class linuxmint {
|
||||||
|
set gfxpayload=keep
|
||||||
|
linux /casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=${iso_path} quiet splash --
|
||||||
|
initrd /casper/initrd.lz
|
||||||
|
}
|
44
isolinux/isolinux.cfg
Normal file
44
isolinux/isolinux.cfg
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
default vesamenu.c32
|
||||||
|
timeout 100
|
||||||
|
|
||||||
|
menu background splash.png
|
||||||
|
menu title Bienvenue sur Linux Mint 20.1 MATE 64bit LIS67
|
||||||
|
|
||||||
|
menu color screen 37;40 #80ffffff #00000000 std
|
||||||
|
MENU COLOR border 30;44 #40ffffff #a0000000 std
|
||||||
|
MENU COLOR title 1;36;44 #ffffffff #a0000000 std
|
||||||
|
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
|
||||||
|
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
|
||||||
|
MENU COLOR help 37;40 #c0ffffff #a0000000 std
|
||||||
|
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
|
||||||
|
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
|
||||||
|
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
|
||||||
|
MENU COLOR tabmsg 31;40 #ffDEDEDE #00000000 std
|
||||||
|
MENU WIDTH 80
|
||||||
|
MENU MARGIN 14
|
||||||
|
MENU ROWS 7
|
||||||
|
MENU VSHIFT 10
|
||||||
|
MENU TABMSGROW 12
|
||||||
|
MENU CMDLINEROW 12
|
||||||
|
MENU HELPMSGROW 16
|
||||||
|
MENU HELPMSGENDROW 29
|
||||||
|
|
||||||
|
label live
|
||||||
|
menu label Demarrer ou installer Linux Mint
|
||||||
|
kernel /casper/vmlinuz
|
||||||
|
append file=/cdrom/preseed/linuxmint.seed boot=casper initrd=/casper/initrd.lz quiet splash --
|
||||||
|
label check
|
||||||
|
menu label Verifier l'integrite
|
||||||
|
kernel /casper/vmlinuz
|
||||||
|
append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
|
||||||
|
label hdt
|
||||||
|
menu label Detection du materiel
|
||||||
|
kernel hdt.c32
|
||||||
|
label memtest
|
||||||
|
menu label Test memoire
|
||||||
|
kernel /casper/memtest
|
||||||
|
label local
|
||||||
|
menu label Demarrer sur le disque local
|
||||||
|
COM32 chain.c32
|
||||||
|
APPEND hd0
|
BIN
isolinux/splash.png
Normal file
BIN
isolinux/splash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 167 KiB |
77
prepare.sh
Executable file
77
prepare.sh
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eE
|
||||||
|
|
||||||
|
function clean() {
|
||||||
|
echo "==== CLEAN ERR ===="
|
||||||
|
sudo umount "$WORKDIR/squashfs" || :
|
||||||
|
sudo umount /tmp/livecd || :
|
||||||
|
}
|
||||||
|
|
||||||
|
trap clean ERR
|
||||||
|
|
||||||
|
SPATH=$(cd $(dirname $0) && pwd)
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "Usage: prepare.sh <iso_path>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
full_iso=$1
|
||||||
|
iso_wo_ext=${full_iso##*/}
|
||||||
|
iso_wo_ext=${iso_wo_ext%.iso}
|
||||||
|
|
||||||
|
WORKDIR="$SPATH/$iso_wo_ext"
|
||||||
|
|
||||||
|
echo "==== Prepare CD ===="
|
||||||
|
mkdir /tmp/livecd || :
|
||||||
|
sudo mount -o loop "$1" /tmp/livecd
|
||||||
|
|
||||||
|
mkdir -p "$WORKDIR"
|
||||||
|
rsync --exclude=/casper/filesystem.squashfs -a /tmp/livecd/ "$WORKDIR/cd"
|
||||||
|
mkdir "$WORKDIR/squashfs" "$WORKDIR/custom"
|
||||||
|
sudo modprobe squashfs
|
||||||
|
sudo mount -t squashfs -o loop /tmp/livecd/casper/filesystem.squashfs "$WORKDIR/squashfs/"
|
||||||
|
|
||||||
|
echo "==== Copy squashfs contents to $WORKDIR/custom ===="
|
||||||
|
sudo cp -a "$WORKDIR"/squashfs/* "$WORKDIR/custom"
|
||||||
|
|
||||||
|
# network access
|
||||||
|
sudo cp /etc/resolv.conf /etc/hosts "$WORKDIR/custom/etc/"
|
||||||
|
|
||||||
|
# mount proc, sys, opens a shell (for changes), and clean everything after
|
||||||
|
echo "==== CHROOT ===="
|
||||||
|
cat "$SPATH/tasks.sh" | sudo chroot "$WORKDIR/custom" /bin/bash
|
||||||
|
|
||||||
|
echo "==== Mod ISOLINUX (BIOS) AND GRUB (EFI) ===="
|
||||||
|
# isolinux
|
||||||
|
chmod -R +w "$WORKDIR/cd/isolinux"
|
||||||
|
cp isolinux/* "$WORKDIR/cd/isolinux/"
|
||||||
|
# grub
|
||||||
|
chmod -R +w "$WORKDIR/cd/boot/grub"
|
||||||
|
cp grub/* "$WORKDIR/cd/boot/grub/"
|
||||||
|
|
||||||
|
# setup iso
|
||||||
|
echo "==== Setup ISO ===="
|
||||||
|
chmod +w "$WORKDIR/cd/casper/filesystem.manifest"
|
||||||
|
sudo chroot "$WORKDIR/custom" dpkg-query -W --showformat='${Package} ${Version}\n' > "$WORKDIR/cd/casper/filesystem.manifest"
|
||||||
|
sudo cp "$WORKDIR/cd/casper/filesystem.manifest" "$WORKDIR/cd/casper/filesystem.manifest-desktop"
|
||||||
|
sudo mksquashfs "$WORKDIR/custom" "$WORKDIR/cd/casper/filesystem.squashfs"
|
||||||
|
sudo rm "$WORKDIR/cd/MD5SUMS"
|
||||||
|
sudo chmod +w "$WORKDIR/cd"
|
||||||
|
sudo bash -c 'cd '"$WORKDIR"'/cd && find . -type f -exec md5sum {} +' > "$WORKDIR"/cd/MD5SUMS
|
||||||
|
|
||||||
|
# create iso
|
||||||
|
echo "==== Create ISO ===="
|
||||||
|
cd "$WORKDIR/cd"
|
||||||
|
# create a DVD-burnable ISO with BIOS (isolinux) and EFI (grub) support
|
||||||
|
sudo mkisofs -U -A "$iso_wo_ext-LIS67" -V "$iso_wo_ext-LIS67" -volset "$iso_wo_ext-LIS67" -J -joliet-long -r -v -T -o "$WORKDIR/$iso_wo_ext-lis67.iso" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot .
|
||||||
|
|
||||||
|
# convert iso to a bootable USB drive iso
|
||||||
|
sudo isohybrid --uefi "$WORKDIR/$iso_wo_ext-lis67.iso"
|
||||||
|
|
||||||
|
# umount & clean
|
||||||
|
echo "==== Clean ===="
|
||||||
|
sudo umount "$WORKDIR/squashfs"
|
||||||
|
sudo umount /tmp/livecd
|
||||||
|
sudo chown -R $USER: "$WORKDIR"
|
||||||
|
|
||||||
|
echo "Final ISO: $WORKDIR/$iso_wo_ext-lis67.iso"
|
||||||
|
echo "Done"
|
29
reset.sh
Executable file
29
reset.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
SPATH=$(cd $(dirname $0) && pwd)
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "Usage: reset.sh <work_path>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
full_iso=$1
|
||||||
|
iso_wo_ext=${full_iso##*/}
|
||||||
|
iso_wo_ext=${iso_wo_ext%.iso}
|
||||||
|
|
||||||
|
WORKDIR="$SPATH/$iso_wo_ext"
|
||||||
|
[ -z "$WORKDIR" ] && exit 1
|
||||||
|
echo "$WORKDIR"
|
||||||
|
|
||||||
|
# mount proc, sys, opens a shell (for changes), and clean everything after
|
||||||
|
echo "==== CHROOT ===="
|
||||||
|
sudo chroot "$WORKDIR/custom" /bin/bash << EOF
|
||||||
|
umount /sys
|
||||||
|
umount /proc
|
||||||
|
umount /dev/pts
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# umount & clean
|
||||||
|
echo "==== Clean ===="
|
||||||
|
sudo umount "$WORKDIR/squashfs"
|
||||||
|
sudo umount /tmp/livecd
|
||||||
|
sudo rm -rf "$WORKDIR"
|
||||||
|
|
||||||
|
echo "Done"
|
68
tasks.sh
Normal file
68
tasks.sh
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# setup - do not touch
|
||||||
|
mount -t proc none /proc/
|
||||||
|
mount -t sysfs none /sys/
|
||||||
|
mount -t devpts none /dev/pts/
|
||||||
|
# end setup
|
||||||
|
|
||||||
|
|
||||||
|
# set timezone
|
||||||
|
echo "Europe/Paris" > /etc/timezone
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
|
# install lang pack
|
||||||
|
lang=fr
|
||||||
|
for l in $(cat /usr/share/linuxmint/mintlocale/language_packs); do
|
||||||
|
category=$(echo $l | awk -F ':' '{print $1}')
|
||||||
|
if [ $category = 'tr' ]; then
|
||||||
|
languagecode=$(echo $l | awk -F ':' '{print $2}')
|
||||||
|
if [ -z $languagecode ] || [ $languagecode = 'fr' ]; then
|
||||||
|
dep=$(echo $l | awk -F ':' '{print $3}')
|
||||||
|
if [ -z $dep ] || dpkg -l $dep > /dev/null 2>&1; then
|
||||||
|
pull=$(echo $l | awk -F ':' '{print $4}')
|
||||||
|
echo "Installing $pull$lang because dep is '$dep'"
|
||||||
|
sudo apt-get install -y $pull$lang
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# gen locales
|
||||||
|
locale-gen fr
|
||||||
|
|
||||||
|
# language french
|
||||||
|
update-locale LANG=fr_FR.UTF-8 LANGUAGE=fr_FR.UTF-8 LC_ALL=fr_FR.UTF-8
|
||||||
|
|
||||||
|
# keyboard french
|
||||||
|
sed -i 's/us/fr/g' /etc/default/keyboard
|
||||||
|
|
||||||
|
# install custom packages
|
||||||
|
|
||||||
|
# ANCESTRIS
|
||||||
|
sudo add-apt-repository -y ppa:ancestris/ancestris-stable
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y ancestris
|
||||||
|
|
||||||
|
# ABRICOTINE
|
||||||
|
wget "https://github.com/brrd/abricotine/releases/download/1.0.0/abricotine-1.0.0-ubuntu-debian-x64.deb"
|
||||||
|
sudo dpkg -i abricotine-1.0.0-ubuntu-debian-x64.deb
|
||||||
|
rm abricotine-1.0.0-ubuntu-debian-x64.deb
|
||||||
|
|
||||||
|
# BAOBAB
|
||||||
|
sudo apt-get install -y baobab
|
||||||
|
|
||||||
|
# SCRIBUS
|
||||||
|
sudo apt-get install -y scribus
|
||||||
|
|
||||||
|
# KEEPASSXC
|
||||||
|
sudo add-apt-repository -y ppa:phoerious/keepassxc
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y keepassxc
|
||||||
|
|
||||||
|
|
||||||
|
# clean - do not touch
|
||||||
|
rm -rf /tmp/*
|
||||||
|
rm -f /etc/hosts /etc/resolv.conf
|
||||||
|
umount /proc/
|
||||||
|
umount /sys/
|
||||||
|
umount /dev/pts
|
Reference in New Issue
Block a user