]>
git.ipfire.org Git - people/mfischer/ipfire-2.x.git/blob - src/scripts/backupiso
2 ###############################################################################
4 # IPFire.org - A linux based firewall #
5 # Copyright (C) 2007-2022 IPFire Team <info@ipfire.org> #
7 # This program is free software: you can redistribute it and/or modify #
8 # it under the terms of the GNU General Public License as published by #
9 # the Free Software Foundation, either version 3 of the License, or #
10 # (at your option) any later version. #
12 # This program is distributed in the hope that it will be useful, #
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15 # GNU General Public License for more details. #
17 # You should have received a copy of the GNU General Public License #
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
20 ###############################################################################
22 # FIXME: edit this lines before release
24 COREVER
=$
(cat /opt
/pakfire
/db
/core
/mine
)
32 echo "Arch is not supported" >&2
37 URL
="https://downloads.ipfire.org/releases/ipfire-2.x/$IPFVER-core$COREVER/"
38 ISO
="ipfire-$IPFVER-core$COREVER-$arch.iso"
46 # Add EFI options when EFI image is present
47 if [ -e "${dir}/boot/isolinux/efiboot.img" ]; then
48 args
="${args} -eltorito-alt-boot -e boot/isolinux/efiboot.img -no-emul-boot"
52 mkisofs
-J -r -V "IPFire ${IPFVER} ${arch}" \
53 -b boot
/isolinux
/isolinux.bin
-no-emul-boot -boot-load-size 4 -boot-info-table \
54 -c boot
/isolinux
/boot.catalog \
55 ${args} ${dir} > ${output}
57 # Add DOS paritition table
58 if [ -e "${dir}/boot/isolinux/efiboot.img" ]; then
59 isohybrid
--uefi ${output}
68 echo usage
: $0 backup-file
74 mkdir
-p /var
/tmp
/backupiso
79 echo "Fetching ${URL}${ISO}"
80 wget
--quiet -c ${URL}${ISO}
83 echo "Fetching ${URL}${ISO}.b2"
84 wget
--quiet -O ${ISO}.b2 ${URL}${ISO}.b2
86 echo "Checking BLAKE2 checksum of ${ISO}"
87 b2sum
--status -c ${ISO}.b2
88 if [ $?
-eq 0 ] ||
[ $?
-eq 24 ]
90 echo "BLAKE2 checksum is OK"
92 echo "BLAKE2 checksum mismatch"
93 echo "Fetching again ${URL}${ISO}"
94 wget
--quiet -O ${ISO} ${URL}${ISO}
95 echo "Checking BLAKE2 checksum of ${ISO} again"
96 b2sum
--status -c ${ISO}.b2
97 if [ $?
-eq 0 ] ||
[ $?
-eq 24 ]
99 echo "BLAKE2 checksum is OK"
101 echo "BLAKE2 checksum mismatch"
102 echo "aborting backup because BLAKE2 checksum mismatch"
108 echo "Remastering iso"
109 mkdir
-p backupiso.tmp.
${TS}
110 mount
-o loop
${ISO} backupiso.tmp.
${TS}
111 cp -pr backupiso.tmp.
${TS} backupiso.
${TS}
112 umount backupiso.tmp.
${TS}
113 rm -r backupiso.tmp.
${TS}
115 # Copy backup file to disk
116 cp "/var/ipfire/backup/${TS}.ipf" "backupiso.${TS}/backup.ipf"
119 touch "backupiso.${TS}/backup-${TS}.media"
121 echo "Running mkisofs"
122 makeiso backupiso.
${TS} $(basename ${ISO} .iso)-${TS}.iso
125 rm -rf backupiso.
${TS}