#!/bin/sh
apt-get install rsync
apt-get clean
apt-get autoclean
umount /dev/nandi
mkfs.ext4 /dev/nandi
tune2fs -o journal_data_writeback /dev/nandi
tune2fs -O ^has_journal /dev/nandi
e2fsck -f /dev/nandi
umount /dev/nandd
mkfs.ext4 /dev/nandd
tune2fs -o journal_data_writeback /dev/nandd
tune2fs -O ^has_journal /dev/nandd
e2fsck -f /dev/nandd
umount /dev/nande
mkfs.ext4 /dev/nande
tune2fs -o journal_data_writeback /dev/nande
tune2fs -O ^has_journal /dev/nande
e2fsck -f /dev/nande
umount /dev/nandh
mkfs.ext4 /dev/nandh
tune2fs -o journal_data_writeback /dev/nandh
tune2fs -O ^has_journal /dev/nandh
e2fsck -f /dev/nandh
mkdir /mnt/nandroot
mount /dev/nandi /mnt/nandroot
rsync -aAXHv \
--exclude=/proc \
--exclude=/home \
--exclude=/sys \
--exclude=/dev \
--exclude=/tmp \
--exclude=/run \
--exclude=/mnt \
--exclude=/media \
/ /mnt/nandroot
mkdir /mnt/nandroot/dev /mnt/nandroot/proc /mnt/nandroot/sys /mnt/nandroot/tmp /mnt/nandroot/run /mnt/nandroot/mnt /mnt/nandroot/media /mnt/nandroot/home
rm -rf /mnt/nandroot/var/log/*
rm -rf /mnt/nandroot/var/tmp/*
mkdir -p /mnt/nandroot/mnt/storage
mkdir -p /mnt/nandroot/mnt/backup
cat << 'EOF' > /mnt/nandroot/etc/fstab
/dev/nandi / ext4 defaults,noatime,nodiratime,commit=60 0 1
/dev/nande /home ext4 defaults,noatime,nodiratime,commit=60 0 2
/dev/nandh /mnt/storage ext4 defaults,noatime,nodiratime,commit=60 0 2
/dev/nandd /mnt/backup ext4 defaults,noatime,nodiratime,commit=60 0 2
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=64M 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=32M 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=32M 0 0
EOF
umount /mnt/nandroot
rmdir /mnt/nandroot
mkdir /mnt/new_home
mount /dev/nande /mnt/new_home
rsync -aHAXx /home/ /mnt/new_home/
umount /mnt/new_home
rmdir /mnt/new_home
mkdir -p /mnt/sdboot
mount -t vfat /dev/mmcblk0p1 /mnt/sdboot
dd if=/mnt/sdboot/uImage of=/dev/nandc bs=1M
dd if=/mnt/sdboot/script.bin of=/dev/nandf bs=1k
sync
umount /mnt/sdboot
rmdir /mnt/sdboot
cat << 'EOF' > u-boot.txt
baudrate=115200
bootdelay=1
console=ttyS0,115200
loglevel=8
machid=102a
nand_root=/dev/nandi
init=/sbin/init
setargs=setenv bootargs console=${console} root=${nand_root} rootwait init=${init} loglevel=${loglevel}
boot_normal=nand read 0x44000000 0x1300000 0x500000; nand read 0x43000000 0x33300000 0x20000; bootm 0x44000000
bootcmd=run setargs boot_normal
EOF
python -c "
import zlib, struct
with open('u-boot.txt', 'r') as f:
lines = [line.strip() for line in f if line.strip()]
data = '\x00'.join(lines) + '\x00'
target_size = 131072 - 4
data = data.ljust(target_size, '\x00')
crc = zlib.crc32(data) & 0xffffffff
header = struct.pack('<I', crc)
with open('env.bin', 'wb') as f:
f.write(header + data)
print('env.bin reafy! filesize:', len(header + data))
"
sudo dd if=env.bin of=/dev/nandb bs=1k
sync
rm env.bin u-boot.txt
echo "All done! Now power off the board, remove SD card and next time it will boot Linux from NAND!"



Quote from: binutzu on March 16, 2021, 09:01:07 PMNever reinstall a working system ...Well, yes, but with this browser you cannot use YouTube, Google says it's not supported. (Cannot blame Google here, IMHO.)