ChibraxOS 2
Changes: - kernel 6.0.2 - Broken init scripts - Switch to bun for better peroformance an easier ffi - Removed grup - Efi support without graphics (at least graphics werent tested) - Suppression de toutes les dépendance non libc - new splash - broken audio - typescript support - ls rewritten to be more reliable
This commit is contained in:
+35
-42
@@ -12,6 +12,7 @@ then
|
||||
fi
|
||||
|
||||
CHIBRAX_MOUNT_POINT="/tmp/core"
|
||||
EFI_MOUNT_POINT="/tmp/efi"
|
||||
|
||||
rm -f disk.img
|
||||
|
||||
@@ -21,63 +22,55 @@ do
|
||||
done
|
||||
|
||||
#create a 8Gb iso
|
||||
dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 2)) count=0
|
||||
dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 8)) count=0
|
||||
|
||||
HEADER_SIZE=2048
|
||||
EFI_SIZE=512
|
||||
EFI_SECTOR_LIMIT=997376
|
||||
ROOT_SECTOR_LIMIT=15382528
|
||||
SECTOR_SIZE=512
|
||||
HEADER_OFFSET=$(($HEADER_SIZE * $SECTOR_SIZE))
|
||||
ROOT_OFFSET=$(( ($EFI_SECTOR_LIMIT + $HEADER_SIZE ) * $SECTOR_SIZE ))
|
||||
|
||||
#creating a msdos image for mbr boot
|
||||
parted disk.img mklabel msdos
|
||||
parted disk.img mkpart primary ext4 0% 100%
|
||||
parted disk.img mklabel gpt
|
||||
echo "parted disk.img mkpart ext4 0% ${EFI_SIZE}M"
|
||||
parted disk.img mkpart efi 0% ${EFI_SIZE}MB
|
||||
parted disk.img mkpart root ${EFI_SIZE}MB 100%
|
||||
|
||||
##EFI
|
||||
#parted disk.img name 1 root
|
||||
START_SECTOR=$(file disk.img | cut -d',' -f 8 | cut -d' ' -f3)
|
||||
echo "Start sector :" $START_SECTOR
|
||||
OFFSET=$((512*$START_SECTOR))
|
||||
|
||||
echo $OFFSET > diskoffset
|
||||
losetup --offset $HEADER_OFFSET -f disk.img
|
||||
EFI_LOOP=$(losetup -a | grep -v deleted | grep disk.img | grep $HEADER_OFFSET | cut -d':' -f 1)
|
||||
mkfs.fat -F 32 ${EFI_LOOP}
|
||||
|
||||
losetup --offset $OFFSET -f disk.img
|
||||
LOOP=$(losetup -a | grep -v deleted | grep disk.img | cut -d':' -f 1)
|
||||
echo "EFI LOOP: $EFI_LOOP"
|
||||
|
||||
losetup -f disk.img
|
||||
LOOP_ROOT=$(losetup -a | grep -v deleted | grep -v ${LOOP} | cut -d':' -f 1)
|
||||
mkdir -p $EFI_MOUNT_POINT
|
||||
mount ${EFI_LOOP} $EFI_MOUNT_POINT
|
||||
|
||||
echo $ROOT_SECTOR_LIMIT
|
||||
losetup --offset $ROOT_OFFSET -f disk.img --sizelimit $(($ROOT_SECTOR_LIMIT * 512))
|
||||
ROOT_LOOP=$(losetup -a | grep -v deleted | grep disk.img | grep $ROOT_OFFSET | grep -v $EFI_LOOP | cut -d':' -f 1)
|
||||
mkfs.ext4 ${ROOT_LOOP}
|
||||
|
||||
echo "ROOT LOOP: $ROOT_LOOP"
|
||||
|
||||
mkdir $CHIBRAX_MOUNT_POINT -p
|
||||
|
||||
mkfs.ext4 ${LOOP}
|
||||
mount ${LOOP} $CHIBRAX_MOUNT_POINT
|
||||
|
||||
echo "rebuilding C++ hooks"
|
||||
./clibs.sh > /dev/null 2> /dev/null
|
||||
echo "done"
|
||||
mount ${ROOT_LOOP} $CHIBRAX_MOUNT_POINT
|
||||
|
||||
echo "coping rootfs"
|
||||
cp rootfs/* $CHIBRAX_MOUNT_POINT -r
|
||||
echo "done"
|
||||
|
||||
echo "installing grub"
|
||||
mount --rbind /dev $CHIBRAX_MOUNT_POINT/dev
|
||||
mount --make-rslave $CHIBRAX_MOUNT_POINT/dev
|
||||
mount -t proc /proc $CHIBRAX_MOUNT_POINT/proc
|
||||
mount --rbind /sys $CHIBRAX_MOUNT_POINT/sys
|
||||
mount --make-rslave $CHIBRAX_MOUNT_POINT/sys
|
||||
mount --rbind /tmp $CHIBRAX_MOUNT_POINT/tmp
|
||||
cp kernel/src/arch/x86/boot/bzImage $EFI_MOUNT_POINT/bzImage.efi
|
||||
|
||||
chroot $CHIBRAX_MOUNT_POINT /usr/sbin/ldconfig
|
||||
chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-install --target=i386-pc ${LOOP_ROOT} --modules=part_msdos
|
||||
#chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
|
||||
PARTUUID=$(lsblk $LOOP --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 rw " >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg
|
||||
echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg
|
||||
|
||||
umount $CHIBRAX_MOUNT_POINT/dev -l
|
||||
umount $CHIBRAX_MOUNT_POINT/proc -l
|
||||
umount $CHIBRAX_MOUNT_POINT/sys -l
|
||||
umount $CHIBRAX_MOUNT_POINT/tmp -l
|
||||
umount $CHIBRAX_MOUNT_POINT
|
||||
losetup -d $LOOP_ROOT
|
||||
losetup -d $LOOP
|
||||
umount $EFI_MOUNT_POINT
|
||||
losetup -d $EFI_LOOP
|
||||
losetup -d $ROOT_LOOP
|
||||
#built by root but used by any, usefull to run the vm without root privileges
|
||||
chmod 757 disk.img
|
||||
chmod 757 disk.img
|
||||
|
||||
Reference in New Issue
Block a user