3 # Copyright (C) 2012-2020 Ruben Rodriguez <ruben@trisquel.info>
4 # Copyright (C) 2020 Andrew Engelbrecht <andrew@fsf.org>
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 echo You need to run this
script as root
26 echo Usage
: sudo
$0 distro.iso
/dev
/sdX
27 echo Example
: sudo
$0 trisquel_11.0
-fsf_amd64.iso
/dev
/sdb
29 echo WARNING
!: this
script will delete all data on the whole disk you pass as the second parameter. Make sure it is your USB drive and not your internal hard drive
!
30 echo ANOTHER WARNING
!: This
script can bite your dog. Use it with care
, backup your data.
35 [ $
(id
-u) != 0 ] && usage
40 PERSISTENCESIZE
=4096 # Size of the persistence file, in MB
46 mount
-o loop
$ISO $ISOTMP
48 # Create FAT32 LBA partition taking all disk
49 echo 'start=2048, type=c' | sfdisk
$DEV
50 mkfs.vfat
-I -F32 ${DEV}1 -n FSF-LIVE
54 cp -vr $ISOTMP/* $ISOTMP/.disk
$DEVTMP || true
56 cp -vr $DEVTMP/isolinux
$DEVTMP/syslinux
57 mv $DEVTMP/syslinux
/isolinux.cfg
$DEVTMP/syslinux
/syslinux.cfg
59 # Create persistency file
60 # dd if=/dev/zero of=$DEVTMP/casper-rw bs=1M count=$PERSISTENCESIZE oflag=sync status=progress
61 # mkfs.ext4 -L casper-rw -F $DEVTMP/casper-rw
62 # sed -i 's/noprompt --/noprompt persistent --/' $DEVTMP/syslinux/txt.cfg $DEVTMP/isolinux/txt.cfg
70 # the order of steps might be wrong, so we run these commands twice
71 # (for the sake of GRUB booting)
73 # Set up bootloader, requires syslinux. version 6.04 has been tested.
74 syslinux
--directory /syslinux
/ --install ${DEV}1
75 sudo
dd if=/usr
/lib
/SYSLINUX
/mbr.bin of
=${DEV}
76 parted
$DEV set 1 boot on