Обновить 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
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user