Нашёл причину такого поведения системы. Как писал выше, проблема в initrd.zst[
brokenman зачем-то убрал из
linuxrc эти строки:
Code: Select all
if [ $? -eq 0 ]; then
DIR=`echo $LPTH | rev | cut -d/ -f3- | rev`; [ $DIR ] && FOLDER=$DIR/porteux
Поэтому на 81 строке перед
добавить код выше и вместо
if писать
elif.
И получится:
Code: Select all
if [ $? -eq 0 ]; then
DIR=`echo $LPTH | rev | cut -d/ -f3- | rev`; [ $DIR ] && FOLDER=$DIR/porteux
elif [ $? -ne 0 ]; then
Нужно внести изменения в ваш проект. Но конечно смущает странная sh: true: unknown operand.
Исправляю это как-то так, но размер initrd.zst чуть больше получается...
Code: Select all
cd /boot/syslinux/
zstd -d initrd.zst
mv initrd.zst{,.back}
mkdir initdir
mv initrd initdir
cd initdir
cpio -i < initrd
#Добавляем многострочный патч
echo -en '--- a/linuxrc 2023-04-26 00:25:17.703357000 +0300
+++ b/linuxrc 2023-04-26 00:58:36.180482000 +0300
@@ -78,7 +78,9 @@
else
if [ $FROM ]; then
locate $FROM/porteux/$CFG
- if [ $? -ne 0 ]; then
+ if [ $? -eq 0 ]; then
+ DIR=`echo $LPTH | rev | cut -d/ -f3- | rev`; [ $DIR ] && FOLDER=$DIR/porteux
+ elif [ $? -ne 0 ]; then
echo -e "${YELLOW}from= cheatcode is incorrect; searching through all devices${RST}"
FindPorteuxUnit
fi
' > patch-initrd
patch -p1 < patch-initrd
rm initrd
find . | cpio -o -H newc > ../initrd
cd ../
zstd initrd
P.S. пожалуйста научите меня делать патчи