mirror of
https://github.com/SkimrMe/funky_tv
synced 2026-01-29 19:15:23 +00:00
Add files via upload
This commit is contained in:
12
新建文件夹 (4)/tools/01_linuxefi
Normal file
12
新建文件夹 (4)/tools/01_linuxefi
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
cat <<EOF
|
||||
function linuxefi {
|
||||
linux "\$@"
|
||||
}
|
||||
|
||||
function initrdefi {
|
||||
initrd "\$@"
|
||||
}
|
||||
EOF
|
||||
1
新建文件夹 (4)/tools/bootbin
Normal file
1
新建文件夹 (4)/tools/bootbin
Normal file
@@ -0,0 +1 @@
|
||||
"#
|
||||
BIN
新建文件夹 (4)/tools/dm_patch_32.ko
Normal file
BIN
新建文件夹 (4)/tools/dm_patch_32.ko
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/dm_patch_64.ko
Normal file
BIN
新建文件夹 (4)/tools/dm_patch_64.ko
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/dm_patch_ibt_64.ko
Normal file
BIN
新建文件夹 (4)/tools/dm_patch_ibt_64.ko
Normal file
Binary file not shown.
373
新建文件夹 (4)/tools/efi_legacy_grub.sh
Normal file
373
新建文件夹 (4)/tools/efi_legacy_grub.sh
Normal file
@@ -0,0 +1,373 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
disable_grub_os_probe() {
|
||||
for probe in 30_os-prober; do
|
||||
probe_cfg=/etc/grub.d/$probe
|
||||
if [ -f $probe_cfg ]; then
|
||||
if grep -q 'VTOYBOOT_FLAG' $probe_cfg; then
|
||||
:
|
||||
else
|
||||
sed "1a#VTOYBOOT_FLAG" -i $probe_cfg
|
||||
sed "1aexit 0" -i $probe_cfg
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
find_grub_editenv_path() {
|
||||
if which grub-editenv >/dev/null 2>&1; then
|
||||
which grub-editenv
|
||||
elif which grub2-editenv >/dev/null 2>&1; then
|
||||
which grub2-editenv
|
||||
else
|
||||
echo "XXX"
|
||||
fi
|
||||
}
|
||||
|
||||
find_grub_probe_path() {
|
||||
if which grub-probe >/dev/null 2>&1; then
|
||||
which grub-probe
|
||||
elif which grub2-probe >/dev/null 2>&1; then
|
||||
which grub2-probe
|
||||
else
|
||||
echo "XXX"
|
||||
fi
|
||||
}
|
||||
|
||||
find_grub_mkconfig_path() {
|
||||
if which grub-mkconfig >/dev/null 2>&1; then
|
||||
which grub-mkconfig
|
||||
elif which grub2-mkconfig >/dev/null 2>&1; then
|
||||
which grub2-mkconfig
|
||||
else
|
||||
echo "XXX"
|
||||
fi
|
||||
}
|
||||
|
||||
find_grub_config_path() {
|
||||
for i in grub.cfg grub2.cfg grub-efi.cfg grub2-efi.cfg; do
|
||||
if readlink -f -e /etc/$i > /dev/null; then
|
||||
cfgfile=$(readlink -f -e /etc/$i)
|
||||
echo $cfgfile
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
for t in /boot/grub/grub.cfg /boot/grub2/grub.cfg; do
|
||||
if grep -q 'BEGIN' $t 2>/dev/null; then
|
||||
echo $t
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "xx"
|
||||
}
|
||||
|
||||
update_grub_config() {
|
||||
if update-grub -V > /dev/null 2>&1; then
|
||||
GRUB_UPDATE=update-grub
|
||||
elif update-grub2 -V > /dev/null 2>&1; then
|
||||
GRUB_UPDATE=update-grub2
|
||||
else
|
||||
vgrubcfg=$(find_grub_config_path)
|
||||
mkconfig=$(find_grub_mkconfig_path)
|
||||
|
||||
if [ -f $mkconfig -a -f $vgrubcfg ]; then
|
||||
GRUB_UPDATE="$mkconfig -o $vgrubcfg"
|
||||
else
|
||||
echo "update-grub no need"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
UPDATE=0
|
||||
|
||||
if [ -f /etc/default/grub ]; then
|
||||
if grep -q 'GRUB_TIMEOUT=0' /etc/default/grub; then
|
||||
UPDATE=1
|
||||
sed 's/GRUB_TIMEOUT=0/GRUB_TIMEOUT=30/' -i /etc/default/grub
|
||||
fi
|
||||
|
||||
if grep -q 'GRUB_TIMEOUT_STYLE=hidden' /etc/default/grub; then
|
||||
UPDATE=1
|
||||
sed 's/GRUB_TIMEOUT_STYLE=hidden/GRUB_TIMEOUT_STYLE=menu/' -i /etc/default/grub
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $UPDATE -eq 1 ]; then
|
||||
echo "update grub config"
|
||||
$GRUB_UPDATE
|
||||
fi
|
||||
}
|
||||
|
||||
print_bios_grub_warning() {
|
||||
echo -e "\033[33m[WARNING] ################################################################## \033[0m"
|
||||
for i in 0 1 2 3 4 5 6 7 8 9; do
|
||||
echo -e "\033[33m[WARNING] !!!! This vhd/vdi/raw file will only be bootable in UEFI mode !!!! \033[0m"
|
||||
done
|
||||
echo -e "\033[33m[WARNING] ################################################################## \033[0m"
|
||||
sleep 3
|
||||
}
|
||||
|
||||
install_legacy_bios_grub() {
|
||||
all_modules=""
|
||||
|
||||
if [ -f /boot/grub/grub.cfg ]; then
|
||||
PREFIX=/boot/grub
|
||||
MOD_PATH=/boot/grub
|
||||
CFG=grub.cfg
|
||||
|
||||
if [ -f /boot/efi/EFI/UOS/grub.cfg ]; then
|
||||
PREFIX=/EFI/UOS
|
||||
elif [ -f /boot/efi/EFI/ubuntu/grub.cfg ]; then
|
||||
PREFIX=/EFI/ubuntu
|
||||
fi
|
||||
else
|
||||
for i in grub.cfg grub2.cfg grub-efi.cfg grub2-efi.cfg; do
|
||||
if readlink -f -e /etc/$i > /dev/null; then
|
||||
cfgfile=$(readlink -f -e /etc/$i)
|
||||
MOD_PATH=${cfgfile%/*}
|
||||
|
||||
PREFIX=$MOD_PATH
|
||||
if echo $MOD_PATH | grep -q '^/boot/efi'; then
|
||||
if mountpoint -q /boot/efi; then
|
||||
PREFIX=${MOD_PATH#/boot/efi}
|
||||
fi
|
||||
fi
|
||||
|
||||
CFG=${cfgfile##*/}
|
||||
echo "/etc/$i --> $cfgfile"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$MOD_PATH" ]; then
|
||||
if [ -f /boot/grub2/grub.cfg ]; then
|
||||
PREFIX=/boot/grub2
|
||||
MOD_PATH=/boot/grub2
|
||||
CFG=grub.cfg
|
||||
|
||||
if [ -f /boot/efi/EFI/opensuse/grub.cfg ]; then
|
||||
PREFIX=/EFI/opensuse
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
if [ -z "$MOD_PATH" ]; then
|
||||
echo "[WARNING] grub.cfg not found, this vhd/vdi/raw file can only be booted in UEFI mode."
|
||||
print_bios_grub_warning
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if grub-mkimage -V > /dev/null 2>&1; then
|
||||
GRUB_CMD=grub-mkimage
|
||||
CFG_CMD=grub-mkconfig
|
||||
elif grub2-mkimage -V > /dev/null 2>&1; then
|
||||
GRUB_CMD=grub2-mkimage
|
||||
CFG_CMD=grub2-mkconfig
|
||||
else
|
||||
echo "[WARNING] grub-mkimage not found, package missing?"
|
||||
print_bios_grub_warning
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -d /usr/lib/grub/x86_64-efi ]; then
|
||||
GRUB_DIR=/usr/lib/grub
|
||||
elif [ -d /usr/lib/grub/i386-pc ]; then
|
||||
GRUB_DIR=/usr/lib/grub
|
||||
elif [ -d /usr/share/grub2/i386-pc ]; then
|
||||
GRUB_DIR=/usr/share/grub2
|
||||
else
|
||||
echo "[WARNING] grub module directory not found, package missing?"
|
||||
print_bios_grub_warning
|
||||
return
|
||||
fi
|
||||
|
||||
if ! [ -d $GRUB_DIR/i386-pc ]; then
|
||||
echo "[WARNING] grub i386-pc modules not installed, package missing?"
|
||||
print_bios_grub_warning
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -e /dev/sda ]; then
|
||||
DISK=/dev/sda
|
||||
elif [ -e /dev/vda ]; then
|
||||
DISK=/dev/vda
|
||||
elif [ -e /dev/hda ]; then
|
||||
DISK=/dev/hda
|
||||
else
|
||||
echo "[WARNING] disk not found"
|
||||
print_bios_grub_warning
|
||||
return
|
||||
fi
|
||||
|
||||
if $vtcheckcmd $DISK; then
|
||||
echo "GPT check $DISK OK ..."
|
||||
else
|
||||
echo "GPT check $DISK failed, code=$?"
|
||||
return
|
||||
fi
|
||||
|
||||
echo PREFIX=$PREFIX CFG=$CFG DISK=$DISK
|
||||
echo MOD_PATH=$MOD_PATH
|
||||
|
||||
chkPrefix=$PREFIX
|
||||
while [ -n "$chkPrefix" ]; do
|
||||
if mountpoint -q "$chkPrefix"; then
|
||||
PREFIX=${MOD_PATH#$chkPrefix}
|
||||
echo "$chkPrefix is mountpoint PREFIX=$PREFIX"
|
||||
break
|
||||
fi
|
||||
chkPrefix=${chkPrefix%/*}
|
||||
done
|
||||
|
||||
if grep -q 'linuxefi' $MOD_PATH/$CFG; then
|
||||
echo "update grub.cfg ..."
|
||||
cp -a ./tools/01_linuxefi /etc/grub.d/
|
||||
$CFG_CMD -o $MOD_PATH/$CFG
|
||||
elif grep -q 'blscfg' $MOD_PATH/$CFG; then
|
||||
echo "update grub.cfg disable bls ..."
|
||||
|
||||
if grep -q '^GRUB_ENABLE_BLSCFG' /etc/default/grub; then
|
||||
sed 's/^GRUB_ENABLE_BLSCFG.*/GRUB_ENABLE_BLSCFG=false/g' -i /etc/default/grub
|
||||
else
|
||||
echo 'GRUB_ENABLE_BLSCFG=false' >> /etc/default/grub
|
||||
fi
|
||||
$CFG_CMD -o $MOD_PATH/$CFG
|
||||
fi
|
||||
|
||||
cp -a ./tools/embedcfg embed.cfg
|
||||
sed "s#XXX#$PREFIX#g" -i embed.cfg
|
||||
sed "s#YYY#$CFG#g" -i embed.cfg
|
||||
|
||||
for mod in $(cat ./tools/grubmodules); do
|
||||
if [ -e $GRUB_DIR/i386-pc/${mod}.mod ]; then
|
||||
all_modules="$all_modules $mod"
|
||||
fi
|
||||
done
|
||||
|
||||
$GRUB_CMD -c "./embed.cfg" --prefix "$PREFIX" --output "./core.img" --format 'i386-pc' --compression 'auto' $all_modules
|
||||
|
||||
echo "Write loader to $DISK ..."
|
||||
dd if=$GRUB_DIR/i386-pc/boot.img of=$DISK bs=1 count=440 status=none && sync
|
||||
dd if=./tools/bootbin of=/dev/sda bs=1 count=1 seek=92 status=none && sync
|
||||
dd if=./core.img of=/dev/sda bs=512 seek=34 status=none && sync
|
||||
dd if=./tools/bootbin of=/dev/sda bs=1 count=1 skip=1 seek=17908 status=none && sync
|
||||
|
||||
if ! [ -d $MOD_PATH/i386-pc ]; then
|
||||
cp -a $GRUB_DIR/i386-pc $MOD_PATH/
|
||||
fi
|
||||
|
||||
rm -f ./embed.cfg
|
||||
rm -f ./core.img
|
||||
}
|
||||
|
||||
wrapper_grub_probe() {
|
||||
if [ -e "${1}-bk" ]; then
|
||||
if grep -q '#!' "$1"; then
|
||||
rm -f "$1"
|
||||
mv "${1}-bk" "$1"
|
||||
else
|
||||
rm -f "${1}-bk"
|
||||
fi
|
||||
fi
|
||||
|
||||
cp -a "$1" "${1}-bk"
|
||||
rm -f "$1"
|
||||
cp -a ./tools/grub-probe.sh "$1"
|
||||
|
||||
chmod +x "$1"
|
||||
chmod +x "${1}-bk"
|
||||
}
|
||||
|
||||
wrapper_grub_editenv() {
|
||||
if [ -e "${1}-bk" ]; then
|
||||
if grep -q '#!' "$1"; then
|
||||
rm -f "$1"
|
||||
mv "${1}-bk" "$1"
|
||||
else
|
||||
rm -f "${1}-bk"
|
||||
fi
|
||||
fi
|
||||
|
||||
cp -a "$1" "${1}-bk"
|
||||
rm -f "$1"
|
||||
cp -a ./tools/grub-editenv.sh "$1"
|
||||
|
||||
chmod +x "$1"
|
||||
chmod +x "${1}-bk"
|
||||
}
|
||||
|
||||
replace_shim_efi() {
|
||||
echo "replace shim efi ..."
|
||||
if [ ! -d /boot/efi/EFI ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
vCnt=$(find /boot/efi/EFI -type f | grep -i /efi/boot/bootx64.efi | wc -l)
|
||||
if [ $vCnt -ne 1 ]; then
|
||||
echo "bootx64.efi no need $vCnt"
|
||||
return
|
||||
fi
|
||||
vBOOTX64=$(find /boot/efi/EFI -type f | grep -i /efi/boot/bootx64.efi)
|
||||
|
||||
vCnt=$(find /boot/efi/EFI -type f | grep -i shimx64.efi | wc -l)
|
||||
if [ $vCnt -le 0 ]; then
|
||||
echo "shimx64.efi no need $vCnt"
|
||||
return
|
||||
fi
|
||||
vSHIMX64=$(find /boot/efi/EFI -type f | grep -m1 -i shimx64.efi)
|
||||
|
||||
vCnt=$(find /boot/efi/EFI -type f | grep -i grubx64.efi | wc -l)
|
||||
if [ $vCnt -le 0 ]; then
|
||||
echo "grubx64.efi no need $vCnt"
|
||||
return
|
||||
fi
|
||||
vGRUBX64=$(find /boot/efi/EFI -type f | grep -m1 -i grubx64.efi)
|
||||
|
||||
echo vBOOTX64=$vBOOTX64
|
||||
echo vSHIMX64=$vSHIMX64
|
||||
echo vGRUBX64=$vGRUBX64
|
||||
|
||||
vMD51=$(md5sum $vBOOTX64 | awk '{print $1}')
|
||||
vMD52=$(md5sum $vSHIMX64 | awk '{print $1}')
|
||||
if [ "$vMD51" != "$vMD52" ]; then
|
||||
echo "bootx64 shimx64 not equal"
|
||||
echo "$vMD51"
|
||||
echo "$vMD52"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "BOOT=$vBOOTX64"
|
||||
echo "GRUB=$vGRUBX64"
|
||||
mv $vBOOTX64 ${vBOOTX64}_VTBK
|
||||
cp $vGRUBX64 $vBOOTX64
|
||||
}
|
||||
|
||||
recover_shim_efi() {
|
||||
echo "recover shim efi ..."
|
||||
if [ ! -d /boot/efi/EFI ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
vVTBKFILE=$(find /boot/efi/EFI -type f | grep -i '_VTBK$')
|
||||
if [ -z "$vVTBKFILE" ]; then
|
||||
echo "no backup file found, no need."
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -f "$vVTBKFILE" ]; then
|
||||
vVTRAWFILE=$(echo "$vVTBKFILE" | sed "s/_VTBK//")
|
||||
if [ -f "$vVTRAWFILE" ]; then
|
||||
rm -f "$vVTRAWFILE"
|
||||
echo "BACK=$vVTRAWFILE"
|
||||
echo "BOOT=$vVTBKFILE"
|
||||
mv "$vVTBKFILE" "$vVTRAWFILE"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
3
新建文件夹 (4)/tools/embedcfg
Normal file
3
新建文件夹 (4)/tools/embedcfg
Normal file
@@ -0,0 +1,3 @@
|
||||
search -f XXX/YYY -s root
|
||||
set prefix=($root)XXX
|
||||
configfile $prefix/YYY
|
||||
76
新建文件夹 (4)/tools/grub-editenv.sh
Normal file
76
新建文件夹 (4)/tools/grub-editenv.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
|
||||
if which grub-editenv-bk >/dev/null 2>&1; then
|
||||
grub_editenv_cmd=grub-editenv-bk
|
||||
elif which grub2-editenv-bk >/dev/null 2>&1; then
|
||||
grub_editenv_cmd=grub2-editenv-bk
|
||||
else
|
||||
grub_editenv_cmd=grub-editenv-bk
|
||||
fi
|
||||
|
||||
curdate=$(date)
|
||||
if [ -e /dev/mapper/ventoy -a -d /etc/vtoyboot/editenv ]; then
|
||||
$grub_editenv_cmd $* > /etc/vtoyboot/editenv/tmp_stdout 2>/etc/vtoyboot/editenv/tmp_stderr
|
||||
code=$?
|
||||
if [ $code -eq 0 ]; then
|
||||
cat /etc/vtoyboot/editenv/tmp_stdout
|
||||
exit 0
|
||||
fi
|
||||
|
||||
newpara=$(echo $* | sed "s#/dev/mapper/ventoy#/dev/sda#")
|
||||
echo "[$curdate] oldpara=$* newpara=$newpara" >> /etc/vtoyboot/editenv/match.log
|
||||
|
||||
id=1
|
||||
while [ -n "1" ]; do
|
||||
if [ -d /etc/vtoyboot/editenv/$id ]; then
|
||||
para=$(head -n1 /etc/vtoyboot/editenv/$id/param)
|
||||
if [ "$para" = "$newpara" ]; then
|
||||
code=$(cat /etc/vtoyboot/editenv/$id/errcode)
|
||||
cat /etc/vtoyboot/editenv/$id/stdout
|
||||
if [ $code -ne 0 ]; then
|
||||
cat /etc/vtoyboot/editenv/$id/stderr >&2
|
||||
fi
|
||||
|
||||
echo "[$curdate] grub-editenv match history id=$id code=$code" >> /etc/vtoyboot/editenv/match.log
|
||||
exit $code
|
||||
fi
|
||||
else
|
||||
break
|
||||
fi
|
||||
id=$(expr $id + 1)
|
||||
done
|
||||
|
||||
echo "[$curdate] grub-editenv NO match $*" >> /etc/vtoyboot/editenv/match.log
|
||||
cat /etc/vtoyboot/editenv/tmp_stdout
|
||||
cat /etc/vtoyboot/editenv/tmp_stderr >&2
|
||||
exit $code
|
||||
else
|
||||
[ -d /etc/vtoyboot/editenv ] || mkdir -p /etc/vtoyboot/editenv
|
||||
|
||||
id=1
|
||||
override=0
|
||||
while [ -d /etc/vtoyboot/editenv/$id ]; do
|
||||
para=$(head -n1 /etc/vtoyboot/editenv/$id/param)
|
||||
if [ "$para" = "$*" ]; then
|
||||
echo "[$curdate] override $id $*" >> /etc/vtoyboot/editenv/history.log
|
||||
override=1
|
||||
break
|
||||
fi
|
||||
id=$(expr $id + 1)
|
||||
done
|
||||
|
||||
if [ $override -eq 0 ]; then
|
||||
echo "[$curdate] $*" >> /etc/vtoyboot/editenv/history.log
|
||||
fi
|
||||
|
||||
mkdir -p /etc/vtoyboot/editenv/$id
|
||||
echo "$*" > /etc/vtoyboot/editenv/$id/param
|
||||
$grub_editenv_cmd $* > /etc/vtoyboot/editenv/$id/stdout 2>/etc/vtoyboot/editenv/$id/stderr
|
||||
code=$?
|
||||
echo $code > /etc/vtoyboot/editenv/$id/errcode
|
||||
|
||||
cat /etc/vtoyboot/editenv/$id/stdout
|
||||
cat /etc/vtoyboot/editenv/$id/stderr >&2
|
||||
exit $code
|
||||
fi
|
||||
|
||||
76
新建文件夹 (4)/tools/grub-probe.sh
Normal file
76
新建文件夹 (4)/tools/grub-probe.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
|
||||
if which grub-probe-bk >/dev/null 2>&1; then
|
||||
grub_probe_cmd=grub-probe-bk
|
||||
elif which grub2-probe-bk >/dev/null 2>&1; then
|
||||
grub_probe_cmd=grub2-probe-bk
|
||||
else
|
||||
grub_probe_cmd=grub-probe-bk
|
||||
fi
|
||||
|
||||
curdate=$(date)
|
||||
if [ -e /dev/mapper/ventoy -a -d /etc/vtoyboot/probe ]; then
|
||||
$grub_probe_cmd $* > /etc/vtoyboot/probe/tmp_stdout 2>/etc/vtoyboot/probe/tmp_stderr
|
||||
code=$?
|
||||
if [ $code -eq 0 ]; then
|
||||
cat /etc/vtoyboot/probe/tmp_stdout
|
||||
exit 0
|
||||
fi
|
||||
|
||||
newpara=$(echo $* | sed "s#/dev/mapper/ventoy#/dev/sda#")
|
||||
echo "[$curdate] oldpara=$* newpara=$newpara" >> /etc/vtoyboot/probe/match.log
|
||||
|
||||
id=1
|
||||
while [ -n "1" ]; do
|
||||
if [ -d /etc/vtoyboot/probe/$id ]; then
|
||||
para=$(head -n1 /etc/vtoyboot/probe/$id/param)
|
||||
if [ "$para" = "$newpara" ]; then
|
||||
code=$(cat /etc/vtoyboot/probe/$id/errcode)
|
||||
cat /etc/vtoyboot/probe/$id/stdout
|
||||
if [ $code -ne 0 ]; then
|
||||
cat /etc/vtoyboot/probe/$id/stderr >&2
|
||||
fi
|
||||
|
||||
echo "[$curdate] grub-probe match history id=$id code=$code" >> /etc/vtoyboot/probe/match.log
|
||||
exit $code
|
||||
fi
|
||||
else
|
||||
break
|
||||
fi
|
||||
id=$(expr $id + 1)
|
||||
done
|
||||
|
||||
echo "[$curdate] grub-probe NO match $*" >> /etc/vtoyboot/probe/match.log
|
||||
cat /etc/vtoyboot/probe/tmp_stdout
|
||||
cat /etc/vtoyboot/probe/tmp_stderr >&2
|
||||
exit $code
|
||||
else
|
||||
[ -d /etc/vtoyboot/probe ] || mkdir -p /etc/vtoyboot/probe
|
||||
|
||||
id=1
|
||||
override=0
|
||||
while [ -d /etc/vtoyboot/probe/$id ]; do
|
||||
para=$(head -n1 /etc/vtoyboot/probe/$id/param)
|
||||
if [ "$para" = "$*" ]; then
|
||||
echo "[$curdate] override $id $*" >> /etc/vtoyboot/probe/history.log
|
||||
override=1
|
||||
break
|
||||
fi
|
||||
id=$(expr $id + 1)
|
||||
done
|
||||
|
||||
if [ $override -eq 0 ]; then
|
||||
echo "[$curdate] $*" >> /etc/vtoyboot/probe/history.log
|
||||
fi
|
||||
|
||||
mkdir -p /etc/vtoyboot/probe/$id
|
||||
echo "$*" > /etc/vtoyboot/probe/$id/param
|
||||
$grub_probe_cmd $* > /etc/vtoyboot/probe/$id/stdout 2>/etc/vtoyboot/probe/$id/stderr
|
||||
code=$?
|
||||
echo $code > /etc/vtoyboot/probe/$id/errcode
|
||||
|
||||
cat /etc/vtoyboot/probe/$id/stdout
|
||||
cat /etc/vtoyboot/probe/$id/stderr >&2
|
||||
exit $code
|
||||
fi
|
||||
|
||||
78
新建文件夹 (4)/tools/grubmodules
Normal file
78
新建文件夹 (4)/tools/grubmodules
Normal file
@@ -0,0 +1,78 @@
|
||||
loadenv
|
||||
lvm
|
||||
diskfilter
|
||||
date
|
||||
drivemap
|
||||
blocklist
|
||||
regexp
|
||||
newc
|
||||
vga_text
|
||||
ntldr
|
||||
search
|
||||
at_keyboard
|
||||
usb_keyboard
|
||||
gcry_md5
|
||||
hashsum
|
||||
gzio
|
||||
xzio
|
||||
lzopio
|
||||
lspci
|
||||
pci
|
||||
ext2
|
||||
xfs
|
||||
chain
|
||||
read
|
||||
halt
|
||||
iso9660
|
||||
linux16
|
||||
test
|
||||
true
|
||||
sleep
|
||||
reboot
|
||||
echo
|
||||
videotest
|
||||
videoinfo
|
||||
videotest_checksum
|
||||
video_colors
|
||||
video_cirrus
|
||||
video_bochs
|
||||
vga
|
||||
vbe
|
||||
video_fb
|
||||
font
|
||||
video
|
||||
gettext
|
||||
extcmd
|
||||
terminal
|
||||
linux
|
||||
minicmd
|
||||
help
|
||||
configfile
|
||||
tr
|
||||
trig
|
||||
boot
|
||||
biosdisk
|
||||
disk
|
||||
ls
|
||||
tar
|
||||
squash4
|
||||
password_pbkdf2
|
||||
all_video
|
||||
png
|
||||
jpeg
|
||||
part_gpt
|
||||
part_msdos
|
||||
fat
|
||||
exfat
|
||||
ntfs
|
||||
loopback
|
||||
gzio
|
||||
normal
|
||||
udf
|
||||
gfxmenu
|
||||
gfxterm
|
||||
gfxterm_background
|
||||
gfxterm_menu
|
||||
net
|
||||
tftp
|
||||
http
|
||||
BIN
新建文件夹 (4)/tools/vtoycheck32
Normal file
BIN
新建文件夹 (4)/tools/vtoycheck32
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoycheck64
Normal file
BIN
新建文件夹 (4)/tools/vtoycheck64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoycheckaa64
Normal file
BIN
新建文件夹 (4)/tools/vtoycheckaa64
Normal file
Binary file not shown.
28
新建文件夹 (4)/tools/vtoydrivers
Normal file
28
新建文件夹 (4)/tools/vtoydrivers
Normal file
@@ -0,0 +1,28 @@
|
||||
efivars
|
||||
efivarfs
|
||||
mptsas
|
||||
mptspi
|
||||
nvme
|
||||
usb-storage
|
||||
ehci-fsl
|
||||
ehci-hcd
|
||||
ehci-pci
|
||||
ehci-platform
|
||||
ohci-hcd
|
||||
ohci-pci
|
||||
ohci-platform
|
||||
uhci-hcd
|
||||
xhci-hcd
|
||||
xhci-pci
|
||||
xhci-plat-hcd
|
||||
vhci-hcd
|
||||
usbhid
|
||||
sg
|
||||
uas
|
||||
pmcraid
|
||||
smartpqi
|
||||
megaraid
|
||||
megaraid_sas
|
||||
vmw_pvscsi
|
||||
mvsas
|
||||
aacraid
|
||||
BIN
新建文件夹 (4)/tools/vtoydump32
Normal file
BIN
新建文件夹 (4)/tools/vtoydump32
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoydump64
Normal file
BIN
新建文件夹 (4)/tools/vtoydump64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoydumpaa64
Normal file
BIN
新建文件夹 (4)/tools/vtoydumpaa64
Normal file
Binary file not shown.
73
新建文件夹 (4)/tools/vtoygrub
Normal file
73
新建文件夹 (4)/tools/vtoygrub
Normal file
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
find_grub_probe_path() {
|
||||
if which grub-probe >/dev/null 2>&1; then
|
||||
which grub-probe
|
||||
elif which grub2-probe >/dev/null 2>&1; then
|
||||
which grub2-probe
|
||||
else
|
||||
echo "XXX"
|
||||
fi
|
||||
}
|
||||
|
||||
find_grub_mkconfig_path() {
|
||||
if which grub-mkconfig >/dev/null 2>&1; then
|
||||
which grub-mkconfig
|
||||
elif which grub2-mkconfig >/dev/null 2>&1; then
|
||||
which grub2-mkconfig
|
||||
else
|
||||
echo "XXX"
|
||||
fi
|
||||
}
|
||||
|
||||
find_grub_config_path() {
|
||||
for i in grub.cfg grub2.cfg grub-efi.cfg grub2-efi.cfg; do
|
||||
if readlink -f -e /etc/$i > /dev/null; then
|
||||
cfgfile=$(readlink -f -e /etc/$i)
|
||||
echo $cfgfile
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
for t in /boot/grub/grub.cfg /boot/grub2/grub.cfg; do
|
||||
if grep -q 'BEGIN' $t 2>/dev/null; then
|
||||
echo $t
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "xx"
|
||||
}
|
||||
|
||||
update_grub_config() {
|
||||
GRUB_UPDATE=""
|
||||
if update-grub -V > /dev/null 2>&1; then
|
||||
GRUB_UPDATE=update-grub
|
||||
elif update-grub2 -V > /dev/null 2>&1; then
|
||||
GRUB_UPDATE=update-grub2
|
||||
else
|
||||
vgrubcfg=$(find_grub_config_path)
|
||||
mkconfig=$(find_grub_mkconfig_path)
|
||||
|
||||
if [ -f $mkconfig -a -f $vgrubcfg ]; then
|
||||
GRUB_UPDATE="$mkconfig -o $vgrubcfg"
|
||||
else
|
||||
echo "no grub.cfg found."
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$GRUB_UPDATE" ]; then
|
||||
echo "update grub config $GRUB_UPDATE"
|
||||
$GRUB_UPDATE
|
||||
fi
|
||||
}
|
||||
|
||||
USER=$(whoami)
|
||||
if [ "$USER" != "root" ]; then
|
||||
echo "Please run this script as root or use sudo"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
update_grub_config
|
||||
BIN
新建文件夹 (4)/tools/vtoypartx32
Normal file
BIN
新建文件夹 (4)/tools/vtoypartx32
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoypartx64
Normal file
BIN
新建文件夹 (4)/tools/vtoypartx64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoypartxaa64
Normal file
BIN
新建文件夹 (4)/tools/vtoypartxaa64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoytool_32
Normal file
BIN
新建文件夹 (4)/tools/vtoytool_32
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoytool_64
Normal file
BIN
新建文件夹 (4)/tools/vtoytool_64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoytool_aa64
Normal file
BIN
新建文件夹 (4)/tools/vtoytool_aa64
Normal file
Binary file not shown.
BIN
新建文件夹 (4)/tools/vtoytool_m64e
Normal file
BIN
新建文件夹 (4)/tools/vtoytool_m64e
Normal file
Binary file not shown.
Reference in New Issue
Block a user