Update
This commit is contained in:
		
						commit
						8435cd67fc
					
				| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
# These are supported funding model platforms
 | 
			
		||||
 | 
			
		||||
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
 | 
			
		||||
 | 
			
		||||
#patreon: # Replace with a single Patreon username
 | 
			
		||||
#open_collective: # Replace with a single Open Collective username
 | 
			
		||||
#ko_fi: # Replace with a single Ko-fi username
 | 
			
		||||
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
 | 
			
		||||
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
 | 
			
		||||
#liberapay: # Replace with a single Liberapay username
 | 
			
		||||
#issuehunt: # Replace with a single IssueHunt username
 | 
			
		||||
#otechie: # Replace with a single Otechie username
 | 
			
		||||
#custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
 | 
			
		||||
#github: [Valeria-Fadeeva]
 | 
			
		||||
custom: ["https://www.tinkoff.ru/rm/fadeeva.valeriya96/9bLRi79066", "https://yoomoney.ru/to/4100115921160758", "https://qiwi.com/n/VALERIAFADEEVA", "valeria.fadeeva.me"]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
# This config file controls the automation provided by eos-dracut
 | 
			
		||||
 | 
			
		||||
# When DRACUT_QUIET is set to true, dracut will operate with quiet flag set suppressing most output
 | 
			
		||||
#DRACUT_QUIET="false"
 | 
			
		||||
 | 
			
		||||
# When NO_FALLBACK is set to true, no fallback initrd will be generated
 | 
			
		||||
#NO_DRACUT_FALLBACK="false"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
git add . && git commit -m "Update" && git push
 | 
			
		||||
 | 
			
		||||
echo "Ready"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
#
 | 
			
		||||
# Rebuild the initrds for all kernels found in /usr/lib/modules
 | 
			
		||||
#
 | 
			
		||||
# Run dracut for all the installed kernels
 | 
			
		||||
 | 
			
		||||
# This script requires passing a valid file to regenerate all initrds so we pass a file we know will exist
 | 
			
		||||
/usr/share/libalpm/scripts/dracut-install < "/usr/bin/dracut-rebuild"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# called by dracut
 | 
			
		||||
check() {
 | 
			
		||||
    dracut_module_included btrfs || return 1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# called by dracut
 | 
			
		||||
depends() {
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# called by dracut
 | 
			
		||||
install() {
 | 
			
		||||
    inst mktemp
 | 
			
		||||
    hostonly='' instmods overlay
 | 
			
		||||
    inst_hook pre-pivot 000 "$moddir/snapshot-overlay.sh"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
function mount_snapshot_overlay() {
 | 
			
		||||
    local root_mnt="$NEWROOT"
 | 
			
		||||
    if [[ "$(findmnt --mountpoint "$root_mnt" -o FSTYPE -n)" = "btrfs" ]] && [[ "$(btrfs property get ${root_mnt} ro)" != "ro=false" ]]; then
 | 
			
		||||
        local ram_dir=$(mktemp -d -p /)
 | 
			
		||||
        mount -t tmpfs cowspace ${ram_dir}
 | 
			
		||||
        mkdir -p ${ram_dir}/{upper,work}
 | 
			
		||||
        mount -t overlay -o lowerdir=${root_mnt},upperdir=${ram_dir}/upper,workdir=${ram_dir}/work rootfs ${root_mnt}
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_snapshot_overlay
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
[Trigger]
 | 
			
		||||
Type = Path
 | 
			
		||||
Operation = Remove
 | 
			
		||||
Target = usr/lib/modules/*/pkgbase
 | 
			
		||||
 | 
			
		||||
[Action]
 | 
			
		||||
Description = Removing initramfs...
 | 
			
		||||
When = PreTransaction
 | 
			
		||||
Exec = /usr/share/libalpm/scripts/dracut-remove
 | 
			
		||||
NeedsTargets
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
[Trigger]
 | 
			
		||||
Type = Path
 | 
			
		||||
Operation = Install
 | 
			
		||||
Operation = Upgrade
 | 
			
		||||
Target = usr/lib/modules/*/vmlinuz
 | 
			
		||||
Target = usr/lib/dracut/*
 | 
			
		||||
Target = usr/lib/systemd/systemd
 | 
			
		||||
 | 
			
		||||
[Action]
 | 
			
		||||
Description = Updating initramfs...
 | 
			
		||||
When = PostTransaction
 | 
			
		||||
Exec = /usr/share/libalpm/scripts/dracut-install
 | 
			
		||||
NeedsTargets
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
#!/bin/bash -e
 | 
			
		||||
 | 
			
		||||
all=0
 | 
			
		||||
lines=()
 | 
			
		||||
# Read the optional config file for automation
 | 
			
		||||
[[ -f /etc/grub-dracut.conf ]] && source /etc/grub-dracut.conf
 | 
			
		||||
 | 
			
		||||
while read -r line; do
 | 
			
		||||
	if [[ "${line}" != */vmlinuz ]]; then
 | 
			
		||||
		# triggers when it's a change to dracut files
 | 
			
		||||
		all=1
 | 
			
		||||
		continue
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	lines+=("/${line%/vmlinuz}")
 | 
			
		||||
 | 
			
		||||
	pkgbase="$(<"${lines[-1]}/pkgbase")"
 | 
			
		||||
	install -Dm644 "/${line}" "/boot/vmlinuz-${pkgbase}"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if (( all )); then
 | 
			
		||||
	lines=(/usr/lib/modules/*)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
[[ ${DRACUT_QUIET} == "true" ]] && DRACUT_EXTRA_PARAMS=" --quiet"
 | 
			
		||||
 | 
			
		||||
for line in "${lines[@]}"; do
 | 
			
		||||
	if ! pacman -Qqo "${line}/pkgbase" &> /dev/null; then
 | 
			
		||||
		# if pkgbase does not belong to any package then skip this kernel
 | 
			
		||||
		continue
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	pkgbase="$(<"${line}/pkgbase")"
 | 
			
		||||
	kver="${line##*/}"
 | 
			
		||||
	dracut_restore_img="/usr/lib/modules/${kver}/initrd"
 | 
			
		||||
 | 
			
		||||
	echo ":: Building initramfs for ${pkgbase} (${kver})"
 | 
			
		||||
	dracut --force --hostonly --no-hostonly-cmdline${DRACUT_EXTRA_PARAMS} ${dracut_restore_img} "${kver}"
 | 
			
		||||
	install -Dm644 ${dracut_restore_img} "/boot/initramfs-${pkgbase}.img"
 | 
			
		||||
 | 
			
		||||
    if [[ ${NO_DRACUT_FALLBACK} != "true" ]] ; then
 | 
			
		||||
		echo ":: Building fallback initramfs for ${pkgbase} (${kver})"
 | 
			
		||||
		dracut --force --no-hostonly${DRACUT_EXTRA_PARAMS} "/boot/initramfs-${pkgbase}-fallback.img" "${kver}"
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
#!/bin/bash -e
 | 
			
		||||
 | 
			
		||||
while read -r line; do
 | 
			
		||||
	if [[ "${line}" == */pkgbase ]]; then
 | 
			
		||||
		pkgbase="$(<"/${line}")"
 | 
			
		||||
		kver="$(echo ${line} | cut -d/ -f4)"
 | 
			
		||||
 | 
			
		||||
		rm -rf "/usr/lib/modules/${kver}" "/boot/vmlinuz-${pkgbase}" "/boot/initramfs-${pkgbase}.img" "/boot/initramfs-${pkgbase}-fallback.img" 2> /dev/null
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
		Loading…
	
		Reference in New Issue