Обновить scripts/autoupdate-bash.sh

This commit is contained in:
2025-10-29 17:10:42 +03:00
parent 602d28f7d6
commit 6638b21eaa

View File

@@ -75,13 +75,33 @@ if cat /proc/mounts | grep -q ${lodev}p2; then umount ${lodev}p2; fi
e2fsck -yf ${lodev}p2 || true
resize2fs ${lodev}p2
losetup -d $lodev
losetup -d "$lodev"
echo -e '\e[92m正在打包...\e[0m'
echo -e '\e[92m开始写入请勿中断...\e[0m'
if [ -f FriendlyWrt.img ]; then
# убедимся, что ничего с целевого диска не смонтировано (mmcblk0/1/sdX)
dev="/dev/$block_device"
awk -v d="$(basename "$dev")" '$1 ~ "^/dev/" d {print $2}' /proc/mounts \
| sort -r | while read -r m; do
umount "$m" 2>/dev/null || umount -l "$m" 2>/dev/null || true
done
# remount всех ФС в read-only, без попытки умонтировать корень
echo 1 > /proc/sys/kernel/sysrq
echo u > /proc/sysrq-trigger && umount / || true
dd if=FriendlyWrt.img of=/dev/$block_device
echo u > /proc/sysrq-trigger
sync
# прошивка диска
# (если есть pv и coreutils dd — удобно так; иначе убери pv и status)
if command -v pv >/dev/null; then
pv FriendlyWrt.img | dd of="$dev" bs=4M conv=fsync
else
dd if=FriendlyWrt.img of="$dev" bs=4M conv=fsync
fi
echo -e '\e[92m刷机完毕正在重启...\e[0m'
echo b > /proc/sysrq-trigger
fi