live-boot
This commit is contained in:
1 parent
f8f9e820fa
commit
c92b6b8bd1
3 files changed
+121
No files matched your search
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/initramfs-tools/hook-functions
|
||||||
|
|
||||||
|
manual_add_modules "cdrom"
|
||||||
|
manual_add_modules "loop"
|
||||||
|
manual_add_modules "dm-snapshot"
|
||||||
|
manual_add_modules "overlay"
|
||||||
|
manual_add_modules "isofs"
|
||||||
|
manual_add_modules "squashfs"
|
||||||
|
manual_add_modules "hfsplus"
|
||||||
|
manual_add_modules "sr_mod"
|
||||||
|
manual_add_modules "dm_mod"
|
||||||
|
manual_add_modules "dm-raid"
|
||||||
|
manual_add_modules "raid0"
|
||||||
|
manual_add_modules "raid1"
|
||||||
|
manual_add_modules "raid10"
|
||||||
|
manual_add_modules "raid456"
|
||||||
|
manual_add_modules 'nls'
|
||||||
|
manual_add_modules 'overlayfs'
|
||||||
|
manual_add_modules 'udf'
|
||||||
|
manual_add_modules 'ext4'
|
||||||
|
manual_add_modules 'usb-storage'
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
is_file_avaiable(){
|
||||||
|
disktmp=$(mktemp)
|
||||||
|
rm -f $disktmp
|
||||||
|
mkdir -p $disktmp || true
|
||||||
|
timeout 10 mount -t auto "$1" $disktmp &>/dev/null
|
||||||
|
[ -f "$disktmp/$2" ] && [ -b "$1" ]
|
||||||
|
status=$?
|
||||||
|
umount -lf $disktmp 2>/dev/null
|
||||||
|
return $status
|
||||||
|
}
|
||||||
|
|
||||||
|
mountroot()
|
||||||
|
{
|
||||||
|
while [ "$root" == "" ] ; do
|
||||||
|
list=$(ls /sys/class/block/ | grep ".*[0-9]$" | grep -v loop | grep -v ram | grep -v nbd | grep -v fd | sed "s|^|/dev/|g")
|
||||||
|
for part in $list ; do
|
||||||
|
sleep 0.1
|
||||||
|
echo "Looking for: $part"
|
||||||
|
if is_file_avaiable "$part" "/live/filesystem.squashfs" ; then
|
||||||
|
export root=$part
|
||||||
|
elif is_file_avaiable "$part" "/mount-me" ; then
|
||||||
|
export home=$part
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_top()
|
||||||
|
{
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_premount()
|
||||||
|
{
|
||||||
|
if cat /proc/cmdline | grep "break=live" >/dev/null ; then
|
||||||
|
launch_interactive_shell
|
||||||
|
fi
|
||||||
|
for mod in dm_mod dm-raid raid0 raid1 raid456 loop ; do
|
||||||
|
modprobe $mod || true
|
||||||
|
done
|
||||||
|
if [ -f /ventoy/hook/arch/ventoy-disk.sh ] ; then
|
||||||
|
echo "Loading Ventoy hooks"
|
||||||
|
sh /ventoy/hook/arch/ventoy-disk.sh || true
|
||||||
|
sleep 0.3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_bottom()
|
||||||
|
{
|
||||||
|
mkdir -p /donkey/a # upper
|
||||||
|
mkdir -p /donkey/b # workdir
|
||||||
|
mkdir -p /live_root/
|
||||||
|
mkdir -p ${rootmnt}/
|
||||||
|
mkdir -p /source/ # lower
|
||||||
|
mount $root ${rootmnt}/ 2> /dev/null
|
||||||
|
mount ${rootmnt}/live/airootfs.sfs /source/ 2> /dev/null
|
||||||
|
mount -t overlay -o lowerdir=/source/,upperdir=/donkey/a/,workdir=/donkey/b overlay /live_root
|
||||||
|
mount -t tmpfs -o size=100% none /donkey/a
|
||||||
|
mount -t tmpfs -o size=100% none /donkey/b
|
||||||
|
[ -d /source/merge/ ] && cp -prfv /source/merge/* /live_root/
|
||||||
|
mount --bind /live_root ${rootmnt}/
|
||||||
|
mkdir ${rootmnt}/cdrom/ 2> /dev/null
|
||||||
|
mkdir ${rootmnt}/source/ 2> /dev/null
|
||||||
|
mount $root ${rootmnt}/cdrom/ 2> /dev/null
|
||||||
|
mount ${rootmnt}/live/filesystem.squashfs ${rootmnt}/source/ 2> /dev/null
|
||||||
|
[ "$home" != "" ] && mount $home ${rootmnt}/data/user 2>/dev/null
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
name='live-boot'
|
||||||
|
release='1'
|
||||||
|
version='1.0'
|
||||||
|
url='https://gitlab.com/sulix'
|
||||||
|
description='initramfs tools live hooks'
|
||||||
|
email='aliriza.keskin@pardus.org.tr'
|
||||||
|
maintainer='aliriza'
|
||||||
|
license=('GPLv3')
|
||||||
|
source=('live-boot.script'
|
||||||
|
'live-boot.hook'
|
||||||
|
)
|
||||||
|
depends=(initramfs-tools)
|
||||||
|
makedepends=()
|
||||||
|
md5sums=('SKIP'
|
||||||
|
'SKIP'
|
||||||
|
)
|
||||||
|
group=()
|
||||||
|
uses=()
|
||||||
|
arch=('x86_64')
|
||||||
|
|
||||||
|
package(){
|
||||||
|
mkdir -p ${DESTDIR}/etc/initramfs-tools/scripts/
|
||||||
|
mkdir -p ${DESTDIR}/usr/share/initramfs-tools/hooks/
|
||||||
|
install live-boot.script ${DESTDIR}/etc/initramfs-tools/scripts/live
|
||||||
|
install live-boot.hook ${DESTDIR}/usr/share/initramfs-tools/hooks/live
|
||||||
|
}
|
||||||
|
|
||||||
Reference in new issue
Block a user