]>
Commit | Line | Data |
---|---|---|
f4459fc9 | 1 | #!/bin/sh |
39156085 JS |
2 | arch=$(uname -m) |
3 | ||
87589bce MT |
4 | makeiso() { |
5 | local dir="${1}" | |
6 | local output="${2}" | |
7 | ||
8 | local args="-J -r -V 'ipfire backup ${TS}' \ | |
9 | -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ | |
10 | -c boot/isolinux/boot.catalog" | |
11 | ||
12 | # Add EFI options when EFI image is present | |
13 | if [ -e "${dir}/boot/isolinux/efiboot.img" ]; then | |
14 | args="${args} -eltorito-alt-boot -e boot/isolinux/efiboot.img -no-emul-boot" | |
15 | fi | |
16 | ||
17 | # Compose ISO | |
18 | mkisofs ${args} ${dir} > ${output} | |
19 | ||
20 | # Add DOS paritition table | |
21 | if [ -e "${dir}/boot/isolinux/efiboot.img" ]; then | |
22 | isohybrid --uefi ${output} | |
23 | else | |
24 | isohybrid ${output} | |
25 | fi | |
26 | ||
27 | return 0 | |
28 | } | |
29 | ||
39156085 | 30 | case $arch in |
b1b6e9f3 | 31 | i?86) |
39156085 JS |
32 | arch="i586" |
33 | echo "Your arch is $arch" | |
34 | ;; | |
b1b6e9f3 | 35 | x86_64) |
39156085 JS |
36 | arch="x86_64" |
37 | echo "Your arch is $arch" | |
38 | ;; | |
39 | *) | |
40 | echo "Arch is not supported" | |
41 | exit 1 | |
42 | ;; | |
43 | esac | |
f4459fc9 | 44 | |
2de6c649 | 45 | COREVER=$(cat /opt/pakfire/db/core/mine) |
f4459fc9 | 46 | # FIXME: edit this lines before release |
f32cbd89 MT |
47 | URL="https://downloads.ipfire.org/releases/ipfire-2.x/2.21-core$COREVER/" |
48 | ISO="ipfire-2.21.$arch-full-core$COREVER.iso" | |
f4459fc9 | 49 | |
2de6c649 | 50 | if [ -z $1 ]; then |
f4459fc9 DG |
51 | echo usage: $0 backup-file |
52 | exit | |
53 | fi | |
54 | ||
55 | TS=$1 | |
56 | ||
57 | mkdir -p /var/tmp/backupiso | |
58 | cd /var/tmp/backupiso | |
59 | ||
39156085 | 60 | if [ ! -f ${ISO} ] |
3b1dbfba AF |
61 | then |
62 | echo "Fetching ${URL}${ISO}" | |
63 | wget --quiet -c ${URL}${ISO} | |
eb7fff99 AF |
64 | fi |
65 | ||
2de6c649 | 66 | echo "Fetching ${URL}${ISO}.md5" |
f6281b9a | 67 | wget --quiet -O ${ISO}.md5 ${URL}${ISO}.md5 |
f4459fc9 DG |
68 | |
69 | echo "Checking md5 of ${ISO}" | |
f6281b9a | 70 | md5sum --status -c ${ISO}.md5 |
39156085 | 71 | if [ $? -eq 0 ] || [ $? -eq 24 ] |
2de6c649 TE |
72 | then |
73 | echo "md5 is OK" | |
74 | else | |
75 | echo "md5 mismatch" | |
76 | echo "Fetching again ${URL}${ISO}" | |
77 | wget --quiet -O ${ISO} ${URL}${ISO} | |
78 | echo "Checking again md5 of ${ISO}" | |
79 | md5sum --status -c ${ISO}.md5 | |
39156085 | 80 | if [ $? -eq 0 ] || [ $? -eq 24 ] |
2de6c649 TE |
81 | then |
82 | echo "md5 is OK" | |
83 | else | |
84 | echo "md5 mismatch" | |
85 | echo "aborting backup because md5 mismatch" | |
86 | exit 1 | |
87 | fi | |
f4459fc9 | 88 | fi |
2de6c649 | 89 | rm ${ISO}.md5 |
f4459fc9 DG |
90 | |
91 | echo "Remastering iso" | |
92 | mkdir -p backupiso.tmp.${TS} | |
93 | mount -o loop ${ISO} backupiso.tmp.${TS} | |
94 | cp -pr backupiso.tmp.${TS} backupiso.${TS} | |
95 | umount backupiso.tmp.${TS} | |
96 | rm -r backupiso.tmp.${TS} | |
97 | ||
38c6822d MT |
98 | # Copy backup file to disk |
99 | cp "/var/ipfire/backup/${TS}.ipf" "backupiso.${TS}/backup.ipf" | |
f4459fc9 DG |
100 | |
101 | echo "Running mkisofs" | |
87589bce | 102 | makeiso backupiso.${TS} $(basename ${ISO} .iso)-${TS}.iso |
f4459fc9 DG |
103 | |
104 | echo "Cleaning up" | |
105 | rm -rf backupiso.${TS} |