revert This is ridiclous but i saw it as a solution 5 times in stack overflow
This commit is contained in:
Ward Nakchbandi (CosmicFusion) 2024-08-11 00:08:35 +02:00
parent 19f63f33a2
commit a6a8a96e86
7 changed files with 50 additions and 94 deletions

View File

@ -1 +1 @@
6
5

View File

@ -50,44 +50,47 @@ mksquashfs \
-Xbcj x86
# Copy Kernel to live (Disabled, Copy Kernels to refind instead)
cp "$ROOTFS_PATH/boot"/vmlinuz-* \
"$LIVE_BOOT_LIVE_PATH/vmlinuz" && \
cp "$ROOTFS_PATH/boot"/initrd.img-* \
"$LIVE_BOOT_LIVE_PATH/initrd" && \
cp ./data/refind/refind_linux.conf \
"$LIVE_BOOT_LIVE_PATH/refind_linux.conf"
#cp "$ROOTFS_PATH/boot"/vmlinuz-* \
# "$LIVE_BOOT_LIVE_PATH/vmlinuz" && \
#cp "$ROOTFS_PATH/boot"/initrd.img-* \
# "$LIVE_BOOT_LIVE_PATH/initrd" && \
#cp ./data/refind/refind_linux.conf \
# "$LIVE_BOOT_LIVE_PATH/refind_linux.conf"
REFIND_SIZE=$(du -s -B1 ./data/refind | cut -f1)
LIVE_SIZE=$(du -s -B1 $LIVE_BOOT_LIVE_PATH | cut -f1)
ISO_SIZE=$(($REFIND_SIZE + $LIVE_SIZE))
# Generate bootable EFI Image from refind
DD_BOOT_IMAGE="./efiboot.img"
DD_LIVE_IMAGE="./live.img"
# Copy kernel to refind
mkdir -p ./data/refind/EFI
cp -vf "$ROOTFS_PATH/boot"/vmlinuz-"$ISO_KERNEL"* "./data/refind/EFI/vmlinuz"
cp -vf "$ROOTFS_PATH/boot"/initrd.img-"$ISO_KERNEL"* "./data/refind/EFI/initrd"
# Create Refind Image
dd if=/dev/zero of="$DD_BOOT_IMAGE" bs=1 count=$REFIND_SIZE
mkfs.vfat -F 16 "$DD_BOOT_IMAGE"
dd if=/dev/zero of="$LIVE_BOOT_PATH/efiboot.img" bs=1 count=$(du -s -B1 ./data/refind | cut -f1)
mkfs.vfat -F 32 "$LIVE_BOOT_PATH/efiboot.img"
for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-)
do
mmd -i "$DD_BOOT_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
mmd -i "$LIVE_BOOT_PATH/efiboot.img" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
done
for file in $(find ./data/refind/EFI/ -type f)
do
mcopy -i "$DD_BOOT_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
mcopy -i "$LIVE_BOOT_PATH/efiboot.img" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
done
# Create Live medium image
dd if=/dev/zero of="$DD_LIVE_IMAGE" bs=1 count=$LIVE_SIZE
mkfs.ext4 "$DD_LIVE_IMAGE"
for directory in $(find $LIVE_BOOT_LIVE_PATH -type d | cut -d'/' -f4-)
do
mmd -i "$DD_LIVE_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
done
# Create Bootable UEFI Full Image
mkdir -p ./output
for file in $(find $LIVE_BOOT_LIVE_PATH -type f)
do
mcopy -i "$DD_LIVE_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
done
xorriso \
-as mkisofs \
-iso-level 3 \
-V "PikaOS 4" \
-e --interval:appended_partition_2:all:: \
-append_partition 2 0xef "$LIVE_BOOT_PATH/efiboot.img" \
-J -joliet-long \
-no-emul-boot \
-isohybrid-gpt-basdat \
-o "./output/$ISO_IMAGE".iso \
"$LIVE_BOOT_DATA_PATH"
cat $DD_BOOT_IMAGE $DD_LIVE_IMAGE > "./output/$ISO_IMAGE".iso
# Generate an integrity sum
touch "./output/$ISO_IMAGE".md5
md5sum "./output/$ISO_IMAGE".iso > "./output/$ISO_IMAGE".md5

View File

@ -331,7 +331,7 @@ showtools install,bootorder,shell,memtest,gdisk,apple_recovery,csr_rotate,window
# On UEFI PCs, default is internal,external,optical,manual
# On Macs, default is internal,hdbios,external,biosexternal,optical,cd,manual
#
#scanfor internal,external,optical,manual,firmware
scanfor manual
# By default, rEFInd relies on the UEFI firmware to detect BIOS-mode boot
# devices. This sometimes doesn't detect all the available devices, though.
@ -647,9 +647,6 @@ csr_values 10,77
# except when you must pass a forward slash to the loader, as when
# passing a root= option to a Linux kernel.
# Below are several sample boot stanzas. All are disabled by default.
# Find one similar to what you need, copy it, remove the "disabled" line,
# and adjust the entries to suit your needs.
menuentry "PikaOS Live Image" {
icon EFI/BOOT/REFIND-DARK/ICONS/OS_PIKAOS.PNG
loader EFI/VMLINUZ

25
los.sh
View File

@ -1,25 +0,0 @@
los() (
img="$1"
dev="$(sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
sudo mkdir -p "$dst"
sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
sudo umount "$dst"
done
sudo losetup -d "$dev"
)

View File

@ -331,7 +331,7 @@ showtools install,bootorder,shell,memtest,gdisk,apple_recovery,csr_rotate,window
# On UEFI PCs, default is internal,external,optical,manual
# On Macs, default is internal,hdbios,external,biosexternal,optical,cd,manual
#
#scanfor internal,external,optical,manual,firmware
scanfor manual
# By default, rEFInd relies on the UEFI firmware to detect BIOS-mode boot
# devices. This sometimes doesn't detect all the available devices, though.
@ -647,10 +647,6 @@ csr_values 10,77
# except when you must pass a forward slash to the loader, as when
# passing a root= option to a Linux kernel.
# Below are several sample boot stanzas. All are disabled by default.
# Find one similar to what you need, copy it, remove the "disabled" line,
# and adjust the entries to suit your needs.
menuentry "PikaOS Live Image" {
icon EFI/BOOT/REFIND-DARK/ICONS/OS_PIKAOS.PNG
loader EFI/VMLINUZ

View File

@ -0,0 +1,15 @@
#!/bin/bash
. /chroot_scripts/info.sh
if [ -z $ISO_KERNEL ]
then
exit 1
fi
echo "Workaround: Link chroot kernel to host kernel..."
ln -sfv /boot/config-$ISO_KERNEL /boot/config-$(uname -r)
ln -sfv /boot/initrd.img-$ISO_KERNEL /boot/initrd.img-$(uname -r)
ln -sfv /usr/src/linux-headers-$ISO_KERNEL /usr/src/linux-headers-$(uname -r)
ln -sfv /boot/System.map-$ISO_KERNEL /boot/System.map-$(uname -r)
ln -sfv /boot/vmlinuz-$ISO_KERNEL /boot/vmlinuz-$(uname -r)

30
old.sh
View File

@ -1,30 +0,0 @@
dd if=/dev/zero of="$LIVE_BOOT_PATH/efiboot.img" bs=1 count=$(du -s -B1 ./data/refind | cut -f1)
mkfs.vfat -F 32 "$LIVE_BOOT_PATH/efiboot.img"
for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-)
do
mmd -i "$LIVE_BOOT_PATH/efiboot.img" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')"
done
for file in $(find ./data/refind/EFI/ -type f)
do
mcopy -i "$LIVE_BOOT_PATH/efiboot.img" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')"
done
# Create Bootable UEFI Full Image
mkdir -p ./output
xorriso \
-as mkisofs \
-iso-level 3 \
-V "PikaOS 4" \
-e --interval:appended_partition_2:all:: \
-append_partition 2 0xef "$LIVE_BOOT_PATH/efiboot.img" \
-J -joliet-long \
-no-emul-boot \
-isohybrid-gpt-basdat \
-o "./output/$ISO_IMAGE".iso \
"$LIVE_BOOT_DATA_PATH"
# Generate an integrity sum
touch "./output/$ISO_IMAGE".md5
md5sum "./output/$ISO_IMAGE".iso > "./output/$ISO_IMAGE".md5