Обновить scripts/autoupdate-bash.sh
This commit is contained in:
@@ -75,13 +75,33 @@ if cat /proc/mounts | grep -q ${lodev}p2; then umount ${lodev}p2; fi
|
|||||||
e2fsck -yf ${lodev}p2 || true
|
e2fsck -yf ${lodev}p2 || true
|
||||||
resize2fs ${lodev}p2
|
resize2fs ${lodev}p2
|
||||||
|
|
||||||
losetup -d $lodev
|
losetup -d "$lodev"
|
||||||
|
|
||||||
echo -e '\e[92m正在打包...\e[0m'
|
echo -e '\e[92m正在打包...\e[0m'
|
||||||
echo -e '\e[92m开始写入,请勿中断...\e[0m'
|
echo -e '\e[92m开始写入,请勿中断...\e[0m'
|
||||||
|
|
||||||
if [ -f FriendlyWrt.img ]; then
|
if [ -f FriendlyWrt.img ]; then
|
||||||
echo 1 > /proc/sys/kernel/sysrq
|
# убедимся, что ничего с целевого диска не смонтировано (mmcblk0/1/sdX)
|
||||||
echo u > /proc/sysrq-trigger && umount / || true
|
dev="/dev/$block_device"
|
||||||
dd if=FriendlyWrt.img of=/dev/$block_device
|
awk -v d="$(basename "$dev")" '$1 ~ "^/dev/" d {print $2}' /proc/mounts \
|
||||||
echo -e '\e[92m刷机完毕,正在重启...\e[0m'
|
| sort -r | while read -r m; do
|
||||||
echo b > /proc/sysrq-trigger
|
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
|
||||||
|
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
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user