Revision f1ffe310

/dev/null
1
#!/bin/bash
2

  
3
set -e
4
set -x
5

  
6
. @osdir@/common.sh
7

  
8
CACHE_FILE="$HELPER_DIR/cache.tar"
9
ARCH=amd64
10
EXTRA_PKGS="linux-image-amd64,e2fsprogs,ntfs-3g,xmlstarlet"
11

  
12
helper_img=$(mktemp $HELPER_DIR/image.XXXXXXXX)
13

  
14
dd if=/dev/zero of=$helper_img bs=1k count=400000
15
blockdev=$(losetup -sf $helper_img)
16
CLEANUP+=("losetup -d $blockdev")
17

  
18
format_disk0 $blockdev "extdump"
19

  
20
root_dev=$(map_disk0 $blockdev)-1
21
CLEANUP+=("unmap_disk0 $blockdev")
22

  
23
mkfs.ext3 $root_dev
24

  
25
TMPDIR=$(mktemp -d)
26
CLEANUP+=("rmdir $TMPDIR")
27

  
28
mount $root_dev $TMPDIR
29
CLEANUP+=("umount $root_dev")
30

  
31
if [  -f "$CACHE_FILE" ]; then
32
    tar xf "$CACHE_FILE" -C $TMPDIR
33
else
34
    debootstrap --arch "$ARCH" --include $EXTRA_PKGS --variant=minbase \
35
	    squeeze $TMPDIR
36

  
37
    # remove the downloaded debs, as they are no longer needed
38
    find "$TMPDIR/var/cache/apt/archives" -type f -name '*.deb' -print0 | \
39
        xargs -r0 rm -f
40

  
41
    TMP_CACHE=$(mktemp "${CACHE_FILE}.XXXXXX")
42
    tar cf "$TMP_CACHE" -C $TMPDIR .
43
    mv -f "$TMP_CACHE" "$CACHE_FILE"
44
fi
45

  
46
echo helper > $TMPDIR/etc/hostname
47

  
48
cat > $TMPDIR/etc/fstab <<EOF
49
# /etc/fstab: static file system information.
50
#
51
# <file system>   <mount point>   <type>  <options>       <dump>  <pass>
52
/dev/sda1         /               ext3    defaults        0       1
53
proc              /proc           proc    defaults        0       0
54
EOF
55

  
56
if [ ! -L "$TMPDIR/vmlinuz" -o ! -L "$TMPDIR/vmlinuz" ]; then
57

  
58
	log_error "vmlinuz or initrd.img link in root is missing."
59
	log_error "I don't know how to find a usable kernel/initrd pair."
60
	exit 1
61
fi
62

  
63
kernel=$(readlink -en $TMPDIR/vmlinuz)
64
initrd=$(readlink -en $TMPDIR/initrd.img)
65

  
66
echo "Moving $(basename $kernel) and $(basename $initrd) to $HELPER_DIR"
67
mv $kernel $initrd $HELPER_DIR
68

  
69
kernel=$(basename $kernel)
70
initrd=$(basename $initrd)
71

  
72
(cd $HELPER_DIR; ln -fs $kernel kernel; ln -fs $initrd initrd)
73

  
74
rm $TMPDIR/vmlinuz $TMPDIR/initrd.img
75

  
76
cleanup
77

  
78
mv $helper_img $HELPER_DIR/image
79

  
80
trap - EXIT
81

  
82
exit 0
83

  
84
# vim: set sta sts=4 shiftwidth=4 sw=4 et ai :
b/snf-image-host/snf-image-update-helper.in
1
#!/bin/bash
2

  
3
set -e
4
set -x
5

  
6
. @osdir@/common.sh
7

  
8
CACHE_FILE="$HELPER_DIR/cache.tar"
9
ARCH=amd64
10
EXTRA_PKGS="linux-image-amd64,e2fsprogs,ntfs-3g,xmlstarlet"
11

  
12
helper_img=$(mktemp $HELPER_DIR/image.XXXXXXXX)
13

  
14
dd if=/dev/zero of=$helper_img bs=1k count=400000
15
blockdev=$(losetup -sf $helper_img)
16
CLEANUP+=("losetup -d $blockdev")
17

  
18
format_disk0 $blockdev "extdump"
19

  
20
root_dev=$(map_disk0 $blockdev)-1
21
CLEANUP+=("unmap_disk0 $blockdev")
22

  
23
mkfs.ext3 $root_dev
24

  
25
TMPDIR=$(mktemp -d)
26
CLEANUP+=("rmdir $TMPDIR")
27

  
28
mount $root_dev $TMPDIR
29
CLEANUP+=("umount $root_dev")
30

  
31
if [  -f "$CACHE_FILE" ]; then
32
    tar xf "$CACHE_FILE" -C $TMPDIR
33
else
34
    debootstrap --arch "$ARCH" --include $EXTRA_PKGS --variant=minbase \
35
	    squeeze $TMPDIR
36

  
37
    # remove the downloaded debs, as they are no longer needed
38
    find "$TMPDIR/var/cache/apt/archives" -type f -name '*.deb' -print0 | \
39
        xargs -r0 rm -f
40

  
41
    TMP_CACHE=$(mktemp "${CACHE_FILE}.XXXXXX")
42
    tar cf "$TMP_CACHE" -C $TMPDIR .
43
    mv -f "$TMP_CACHE" "$CACHE_FILE"
44
fi
45

  
46
echo helper > $TMPDIR/etc/hostname
47

  
48
cat > $TMPDIR/etc/fstab <<EOF
49
# /etc/fstab: static file system information.
50
#
51
# <file system>   <mount point>   <type>  <options>       <dump>  <pass>
52
/dev/sda1         /               ext3    defaults        0       1
53
proc              /proc           proc    defaults        0       0
54
EOF
55

  
56
if [ ! -L "$TMPDIR/vmlinuz" -o ! -L "$TMPDIR/vmlinuz" ]; then
57

  
58
	log_error "vmlinuz or initrd.img link in root is missing."
59
	log_error "I don't know how to find a usable kernel/initrd pair."
60
	exit 1
61
fi
62

  
63
kernel=$(readlink -en $TMPDIR/vmlinuz)
64
initrd=$(readlink -en $TMPDIR/initrd.img)
65

  
66
echo "Moving $(basename $kernel) and $(basename $initrd) to $HELPER_DIR"
67
mv $kernel $initrd $HELPER_DIR
68

  
69
kernel=$(basename $kernel)
70
initrd=$(basename $initrd)
71

  
72
(cd $HELPER_DIR; ln -fs $kernel kernel; ln -fs $initrd initrd)
73

  
74
rm $TMPDIR/vmlinuz $TMPDIR/initrd.img
75

  
76
cleanup
77

  
78
mv $helper_img $HELPER_DIR/image
79

  
80
trap - EXIT
81

  
82
exit 0
83

  
84
# vim: set sta sts=4 shiftwidth=4 sw=4 et ai :

Also available in: Unified diff