2 # -*- coding: utf-8 -*-
4 # «live-new-uuid» - Creates and injects new UUIDs for live disks
6 # Create new UUIDs for disks to prevent conflicts and booting the wrong live
7 # directory. Particularly useful in creating recovery disks that need to be
8 # able to also work with recovery partitioning schemes.
10 # Copyright (C) 2008, Dell Inc.
13 # - Mario Limonciello <Mario_Limonciello@Dell.com>
15 # This script is free software; you can redistribute it and/or modify it under
16 # the terms of the GNU General Public License as published by the Free
17 # Software Foundation; either version 2 of the License, or at your option)
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
25 # You should have received a copy of the GNU General Public License along
26 # with this application; if not, write to the Free Software Foundation, Inc., 51
27 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 ##################################################################################
34 echo "USAGE: $0 initrd.gz <path-to-new-initrd.gz> <path-to-new-live-uuid> "
36 echo "initrd.gz is the absolute path to the original gzipped initramfs"
37 echo "<path-to-new-initrd.gz> is the destination directory for the new gzipped initramfs"
38 echo "<path-to-new-live-uuid> is the destination directory for the new live-uuid-TYPE "
40 echo "if either path is absent, they will end up in the current directory "
41 echo "TYPE is determined by an already existing live-uuid-* or by 'uname -s'"
44 if [ "$#" = "0" ] ||
[ "x$1" = x-h
] ||
[ "x$1" = x--help
]; then
50 TEMPDIR
=`mktemp -d /tmp/uuid-XXXXXX`
51 TYPE
=`uname -r | cut -d '-' -f 3`
53 if [ -z "$2" ] ||
[ ! -d "$2" ] ||
[ "$2" = "." ]; then
59 if [ -z "$3" ] ||
[ ! -d "$3" ] ||
[ "$3" = "." ]; then
67 uuidgen
-r > conf
/uuid.conf
68 find . |
cpio --quiet --dereference -o -H newc |
gzip > "$GZIPDIR/initrd.gz"
69 if [ "$(ls "$LIVEDIR/live-uuid
"-* >/dev/null 2>&1 | wc -l)" = 1 ]; then
70 cp conf
/uuid.conf
"$LIVEDIR/live-uuid"-*
72 cp conf
/uuid.conf
"$LIVEDIR/live-uuid-$TYPE"