~~tag> oowow howto autoinstall ~~
====== OOWOW auto-install disk ======
Sometimes, your device has limited access (no keyboard, network, etc ... ), and we need to update eMMC storage content automatically. What did we need? Just [[#preparation|prepare a special removable disk]]
These features can work from SD / USB removable disk
===== Preparation =====
* [[/software/oowow/how-to/start#write-oowow-image-to-removable-storage|write OOWOW system image to removable device]]
* create dump image for eMMC by any way fox example from oowow or manually by hands
* create [[#auto-install-config|autoinstall config]]
===== Autoinstall =====
* Plug prepared removable disk into your device
* Reboot into OOWOW mode by any way - just reset your device if it can boot up from this removable disk or by a special shortcut or i2c command if device has embedded oowow
* Wait for autoinstallation, all processes must go automatically
* Reboot to upgraded system
===== Image filename rules =====
''BOARD.*.emmc.img.zst'' put into root on 2n ''SD'' partition with label ''dump''
===== Auto-install config ======
Stored into ''rescue/config/autoinstall'' on 1st ''SD'' partition with label ''rescue''
==== Auto-install config format ====
```config /config/autoinstall
BOARD.image_name[.BYTES-bytes].img.[zst|gz] [-sBYTES] [-r]
# BOARD board name [ VIM1 | VIM2 | VIM3 | VIM3L | Edge | Edge2 | VIM1S | VIM4 ]
# .BYTES-bytes write size limitation tag
# -sBYTES write size limitation parameter
# -r resize fs parameter
```
==== Example configs =====
```config /config/autoinstall
VIM3.hg_1.0.emmc.img.zst
```
```config /config/autoinstall
VIM3.hg_1.0.emmc.img.zst -s15634268160
```
```config /config/autoinstall
VIM3.hg_1.0.emmc.img.zst -s15634268160 -r
```
```config /config/autoinstall
VIM3.hg_1.0.15634268160-bytes.emmc.img.zst -r
```
==== Config setup by command-line ====
```shell edit-and-save-auto-install-config
~$ echo VIM3.hg_1.0.emmc.img.zst -s15634268160 > /config/autoinstall
~$ krescue.configs -s
```
```shell print-auto-intall-config
~$ krescue.configs -p | grep autoinstall
config_autoinstall="VIM3.hg_1.0.emmc.img.zst -s15634268160"
```
```shell display-auto-intall-config
~$ cat /config/autoinstall
VIM3.hg_1.0.emmc.img.zst -s15634268160
```
```shell disable-autoinstall
~$ rm /config/autoinstall && krescue.config -s
```
Also can setup write size by image filename ''*.SIZE-bytes.*''
* VIM3.hg_1.0.17179869184-bytes.emmc.img.zst
* VIM3.hg_1.0.16G-bytes.emmc.img.zst
* VIM3.hg_1.0.16384M-bytes.emmc.img.zst
Dump images created automatically with bytes tag, and better continue use this tag as is
===== Check blank trail image =====
can write only 11100000000 bytes for example
```shell check.sh
tail -c+11100000000 VIM3.hg_1.0.emmc.img | hexdump -C
```
===== Resize FS =====
```shell resiez_root_fs.sh
root@localhost:~# df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/rootfs 14779408 5847484 8741216 41% /
root@localhost:~# resize2fs /dev/rootfs
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/rootfs is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/rootfs is now 7587840 (4k) blocks long.
root@localhost:~# df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/rootfs 29808700 5848092 23618452 20% /
```
===== Custom disk create =====
This way for installation-disk preparation on user host PC
Another way to create installation disk by script [[gh>/khadas/oowow-scripts-collection]]