grub.cfg.sh
This commit is contained in:
parent
04ad78a6e1
commit
c92a114205
10 changed files with 144 additions and 119 deletions
109
build.sh
109
build.sh
|
@ -55,7 +55,7 @@ source "${NAME%.*}.mod"
|
|||
MEMDISK_ROOT='boot'
|
||||
MEMDISK_DIRECTORY="${MEMDISK_ROOT}/grub"
|
||||
MEMDISK_FILE="${MEMDISK_DIRECTORY}/grub.cfg"
|
||||
MEMDISK_PUB="${MEMDISK_DIRECTORY}/grub.pub"
|
||||
MEMDISK_PUB="${MEMDISK_DIRECTORY}/grub.pgp"
|
||||
MEMDISK_ARCHIVE="${MEMDISK_ROOT}.tar"
|
||||
UEFI_ROOT="${ROOT}/efi"
|
||||
UEFI_DIRECTORY="${UEFI_ROOT}/boot"
|
||||
|
@ -70,7 +70,7 @@ COMPRESSION='xz'
|
|||
GRUB_ROOT="${ROOT}/boot/grub"
|
||||
GRUB_CFG="${GRUB_ROOT}/grub.cfg"
|
||||
GRUB_ENV="${ROOT}/grub.env"
|
||||
GRUB_PUB="${GRUB_ROOT}/grub.pub"
|
||||
GRUB_PUB="${GRUB_ROOT}/grub.pgp"
|
||||
|
||||
# wipe ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
|
||||
|
@ -175,102 +175,20 @@ mkdir --parents "${GRUB_ROOT}"
|
|||
|
||||
# grub / cfg ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
|
||||
echo -n "\
|
||||
function list_vars {
|
||||
echo -n \"\\
|
||||
root | \${root}
|
||||
prefix | \${prefix}
|
||||
check_signatures | \${check_signatures}
|
||||
\"
|
||||
list_trusted
|
||||
}
|
||||
|
||||
clear
|
||||
ls
|
||||
echo -n \"\\
|
||||
---
|
||||
cpu-platform | \${grub_cpu}-\${grub_platform}
|
||||
cmdpath | \${cmdpath}
|
||||
---
|
||||
\"
|
||||
if [ -f '/.disk/info' -o -f '/.disk/mini-info' ] ; then
|
||||
for f in '/.disk/info' '/.disk/mini-info' ; do
|
||||
echo -n ' |'
|
||||
if [ -f \"\${f}\" ] ; then
|
||||
echo -n '*'
|
||||
else
|
||||
echo -n ' '
|
||||
fi
|
||||
echo \"(\${root})\${f}\"
|
||||
done
|
||||
unset f
|
||||
echo ' *'
|
||||
fi
|
||||
list_vars
|
||||
echo ' ---'
|
||||
|
||||
unset cmdroot
|
||||
regexp --set cmdroot '^\((.*)\)' \"\${cmdpath}\"
|
||||
echo \" cmdroot | \${cmdroot}\"
|
||||
if [ \"\${cmdroot}\" != \"\${root}\" ] ; then
|
||||
if [ -d \"(\${cmdroot})/boot/grub/\${grub_cpu}-\${grub_platform}\" ] ; then
|
||||
prefix=\"(\${cmdroot})/boot/grub\"
|
||||
root=\"\${cmdroot}\"
|
||||
fi
|
||||
fi
|
||||
unset cmdroot
|
||||
check_signatures='enforce'
|
||||
trust --skip-sig \"\${prefix}/grub.pub\"
|
||||
|
||||
function set_init {
|
||||
data_uuid='${DATA}'
|
||||
search --no-floppy --set data \\
|
||||
--fs-uuid \"\${data_uuid}\"
|
||||
#
|
||||
unset esp
|
||||
regexp --set esp '^\((.*)\)' \"\${prefix}\"
|
||||
env=\"(\${esp})/grub.env\"
|
||||
live=\"(\${esp})/${PROJECT}/live\"
|
||||
#
|
||||
for file in \${live}/source/*.sh ; do
|
||||
source \"\${file}\"
|
||||
done
|
||||
unset file
|
||||
}
|
||||
|
||||
set_init
|
||||
|
||||
source \"\${live}/main.sh\"
|
||||
|
||||
echo ' *'
|
||||
list_vars
|
||||
echo -n \"\\
|
||||
---
|
||||
escape | \"
|
||||
sleep --interruptible --verbose 1000
|
||||
" > "${GRUB_CFG}"
|
||||
cp "${DIRECTORY}/grub.cfg.sh" "${GRUB_CFG}"
|
||||
|
||||
# grub / env ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
|
||||
echo -n "\
|
||||
# GRUB Environment Block
|
||||
#######################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
################################################################\
|
||||
" > "${GRUB_ENV}"
|
||||
grubenv="# GRUB Environment Block
|
||||
live_name=${PROJECT}
|
||||
data_uuid=${DATA}
|
||||
"
|
||||
grublen=${#grubenv}
|
||||
while [ $grublen -lt 1024 ] ; do
|
||||
grubenv="${grubenv}#"
|
||||
grublen=${#grubenv}
|
||||
done
|
||||
echo -n "${grubenv}" > "${GRUB_ENV}"
|
||||
|
||||
# grub / fonts ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
|
||||
|
@ -313,7 +231,6 @@ for target in 'x86_64-efi' 'i386-pc' ; do
|
|||
mkdir --parents "${GRUB_ROOT}/${target}"
|
||||
cd "/usr/lib/grub/${target}"
|
||||
for module in *.lst *.mod ; do
|
||||
echo "${target}/${module}"
|
||||
cp "${module}" "${GRUB_ROOT}/${target}"
|
||||
done
|
||||
done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue