slitaz-dev-tools view mirror-tools/slitaz/mirror/floppies/floppies @ rev 302

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