From b24eba4e946e079f26b8a64bf9af13db8763213e Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 25 Nov 2021 22:06:50 +0100 Subject: [PATCH] Added auto building of images and vm launch script --- .gitignore | 1 + build.sh | 4 +-- createLiveImage.sh | 52 +++++++++++++++++++++++++++++++ package.sh | 4 +++ rootfs overrides/chibrax/index.js | 20 ++++++------ startQemu.sh | 14 +++++++++ 6 files changed, 82 insertions(+), 13 deletions(-) create mode 100755 createLiveImage.sh create mode 100755 startQemu.sh diff --git a/.gitignore b/.gitignore index 35262df..05f55fe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ rootfs.iso chibrax.tar.gz rootfs linux-firmware +disk.img \ No newline at end of file diff --git a/build.sh b/build.sh index 38b3f4c..032e869 100755 --- a/build.sh +++ b/build.sh @@ -7,7 +7,7 @@ mkdir -p rootfs/boot mkdir -p rootfs/chibrax #installation de node & de grub -sudo pacstrap rootfs coreutils nodejs grub efibootmgr sed +sudo pacstrap rootfs coreutils nodejs grub sed chmod +x ./chibraxLoader/build.sh cd chibraxLoader && ./build.sh && cd - @@ -29,5 +29,3 @@ sudo chroot rootfs /bin/bash sudo rm rootfs/var/cache -rf -sudo tar -czvf chibrax.tar.gz rootfs -sudo mkisofs -o rootfs.iso chibrax.tar.gz diff --git a/createLiveImage.sh b/createLiveImage.sh new file mode 100755 index 0000000..50f4314 --- /dev/null +++ b/createLiveImage.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# we depend on a properly build rootfs +if [ "$EUID" -ne 0 ] +then echo "Please run as root" + exit +fi + + +CHIBRAX_MOUNT_POINT="/tmp/chibraxMountPoint" + +rm -f disk.img + +#create a 8Gb iso +dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 8)) count=0 + +#creating a msdos image for mbr boot +parted disk.img mklabel msdos +parted disk.img mkpart primary ext4 0% 100% +START_SECTOR=$(file disk.img | cut -d',' -f 8 | cut -d' ' -f3) +echo "Start sector :" $START_SECTOR +OFFSET=$((512*$START_SECTOR)) + +losetup --offset $OFFSET -f disk.img +LOOP=$(losetup -a | grep -v deleted | cut -d':' -f 1) + +losetup -f disk.img +LOOP_ROOT=$(losetup -a | grep -v deleted | grep -v ${LOOP} | cut -d':' -f 1) + +mkdir $CHIBRAX_MOUNT_POINT -p + +mkfs.ext4 ${LOOP} +mount ${LOOP} $CHIBRAX_MOUNT_POINT + +echo "coping rootfs" +cp rootfs/* $CHIBRAX_MOUNT_POINT -r +echo "done" + +echo "installing grub" +arch-chroot $CHIBRAX_MOUNT_POINT grub-install --target=i386-pc ${LOOP_ROOT} --modules=part_msdos +arch-chroot $CHIBRAX_MOUNT_POINT grub-mkconfig -o /boot/grub/grub.cfg + +PARTUUID=$(lsblk /dev/loop7 --fs | awk '{print $4}' | grep -v LABEL) + +echo "menuentry 'Chibrax OS' {" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " set root='hd0,msdos1'" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo " linux /boot/vmlinuz rootfstype=ext4 root=/dev/sda1" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg +echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg + +umount $CHIBRAX_MOUNT_POINT +losetup -d $LOOP_ROOT +losetup -d $LOOP +chmod 755 disk.img \ No newline at end of file diff --git a/package.sh b/package.sh index d6d3020..06664e7 100755 --- a/package.sh +++ b/package.sh @@ -14,3 +14,7 @@ sudo rm rootfs/var/cache -rf sudo tar -czvf chibrax.tar.gz rootfs sudo mkisofs -o rootfs.iso chibrax.tar.gz + +sudo rm rootfs/etc/grub.d/10_linux +sudo rm rootfs/etc/grub.d/10_linux_xen +sudo rm rootfs/etc/grub.d/30_os-prober \ No newline at end of file diff --git a/rootfs overrides/chibrax/index.js b/rootfs overrides/chibrax/index.js index 826405a..720f616 100644 --- a/rootfs overrides/chibrax/index.js +++ b/rootfs overrides/chibrax/index.js @@ -5,22 +5,22 @@ console.log(` _______ _________ ______ _______ _______ -( ____ \|\ /|\__ __/( ___ \ ( ____ )( ___ )|\ /| -| ( \/| ) ( | ) ( | ( ) )| ( )|| ( ) |( \ / ) -| | | (___) | | | | (__/ / | (____)|| (___) | \ (_) / +( ____ \\|\\ /|\\__ __/( ___ \\ ( ____ )( ___ )|\\ /| +| ( \\/| ) ( | ) ( | ( ) )| ( )|| ( ) |( \\ / ) +| | | (___) | | | | (__/ / | (____)|| (___) | \\ (_) / | | | ___ | | | | __ ( | __)| ___ | ) _ ( -| | | ( ) | | | | ( \ \ | (\ ( | ( ) | / ( ) \ -| (____/\| ) ( |___) (___| )___) )| ) \ \__| ) ( |( / \ ) -(_______/|/ \|\_______/|/ \___/ |/ \__/|/ \||/ \| +| | | ( ) | | | | ( \\ \\ | (\\ ( | ( ) | / ( ) \\ +| (____/\\| ) ( |___) (___| )___) )| ) \\ \\__| ) ( |( / \\ ) +(_______/|/ \\|\\_______/|/ \\___/ |/ \\__/|/ \\||/ \\| _______ _______ - ( ___ )( ____ \ - | ( ) || ( \/ + ( ___ )( ____ \\ + | ( ) || ( \\/ | | | || (_____ | | | |(_____ ) | | | | ) | - | (___) |/\____) | - (_______)\_______) + | (___) |/\\____) | + (_______)\\_______) `) diff --git a/startQemu.sh b/startQemu.sh new file mode 100755 index 0000000..1726b53 --- /dev/null +++ b/startQemu.sh @@ -0,0 +1,14 @@ +echo "Attention sur linux le son est a zero par default dans le paneau de config" +qemu-system-x86_64\ + -machine type=q35,accel=kvm\ + -enable-kvm\ + -object rng-random,id=rng0,filename=/dev/urandom -device virtio-rng-pci,rng=rng0\ + -cpu host\ + -smp 2\ + -m 4G\ + -drive file=disk.img,format=raw\ + -net user\ + -k fr\ + -vga qxl\ + -audiodev pa,id=hda,out.mixing-engine=on \ + -device intel-hda -device hda-output,audiodev=hda \ No newline at end of file