slitaz-dev-tools annotate mirror-tools/slitaz/mirror/floppies/floppies @ rev 305
mirror/floppies: ascii only for switch.ch
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Sep 03 18:03:50 2017 +0200 (2017-09-03) |
parents | cb4d9f3aa7d8 |
children |
rev | line source |
---|---|
pascal@186 | 1 #!/bin/sh |
pascal@186 | 2 |
pascal@232 | 3 rd() |
pascal@186 | 4 { |
pascal@302 | 5 echo $(od -j $(($1)) -N ${2:-4} -t u${2:-4} -An ${3:-kernel}) |
pascal@232 | 6 } |
pascal@232 | 7 |
pascal@232 | 8 ds() |
pascal@232 | 9 { |
pascal@302 | 10 set -- $1 ${2:-512} |
pascal@302 | 11 dd count=$((($1*$2)/512)) bs=512 2>/dev/null |
pascal@302 | 12 dd count=$(((($1*$2)%512)/$2)) bs=$2 2>/dev/null |
pascal@186 | 13 } |
pascal@186 | 14 |
pascal@186 | 15 case "$1" in |
pascal@232 | 16 extract) ( |
pascal@232 | 17 ds 1 |
pascal@302 | 18 ds $(($(rd 0x1F1 1)-1)) |
pascal@302 | 19 [ $(rd 0x229 1) -le 128 ] || ds 1 |
pascal@302 | 20 [ $(rd 0x228) -ne 0 ] && ds 1 >cmd$$ |
pascal@302 | 21 ds $(( ($(rd 0x1F4) +31) /32)) ) >kernel |
pascal@302 | 22 [ $(rd 0x21C) -ne 0 ] && ds $(( ($(rd 0x21C) +3) /4)) 4 >rootfs || |
pascal@302 | 23 if [ $(rd 0x218) -ne 0 ]; then |
pascal@302 | 24 n=$(($(rd 0x1EE 2)%512)) |
pascal@302 | 25 i=0 |
pascal@302 | 26 [ $(rd $n 4 cmd$$) -eq 0 ] && ds 5000 >rootfs || |
pascal@302 | 27 while [ $(($n % 256)) -lt $(rd 0x1F0 1) ]; do |
pascal@302 | 28 ds $(( ($(rd $n 4 cmd$$) +3) /4)) 4 >rootfs$i |
pascal@302 | 29 n=$(($n+4)) |
pascal@302 | 30 i=$(($i+1)) |
pascal@302 | 31 done |
pascal@302 | 32 fi |
pascal@302 | 33 [ -s cmd$$ ] && strings <cmd$$ | sed q >cmdline |
pascal@302 | 34 rm -f cmd$$ |
pascal@186 | 35 ;; |
pascal@186 | 36 *) cat <<EOT |
pascal@302 | 37 usage: cat fd*.img | $0 extract or |
pascal@186 | 38 # cat fd0*.img | $0 extract |
pascal@302 | 39 creates kernel, rootfs(es) and cmdline files |
pascal@186 | 40 EOT |
pascal@232 | 41 for i in 1 2 3; do |
pascal@232 | 42 j=" cat fd$i*.img |" |
pascal@232 | 43 echo "#$j cpio -i 2>/dev/null ||$j unlzma | cpio -idmu" |
pascal@232 | 44 done |
pascal@186 | 45 esac |