aboutsummaryrefslogtreecommitdiff
path: root/jetson/1-prepare-disk.sh
blob: 83df27cd9165c51d1eaaeb5e40c14233b16ec181 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash

set -e

if [ x`whoami` != x"root" ]; then
    echo "ERROR: Need to run $0 as root"
    exit 1
fi

board="auto"
disk=/dev/sda
fs_type=ext4
mnt=/mnt
rootfs_tar="default"

OPTS="`getopt -o v -l board:,rootfs: -- "$@"`"
while test $# -gt 0; do
    case $1 in
	--board) board="$2"; shift ;;
	--rootfs) rootfs_tar="$2"; shift ;;
	-v) set -x ;;
    esac
    shift
done

if [ x"$board" = x"auto" ]; then
    case "$(uname -m)" in
	"armv7l") board="tk1" ;;
	"aarch64") board="tx1" ;;
	*)
	    echo "ERROR: Cannot autodetect board from uname $(uname -m)"
	    exit 1
	    ;;
    esac
fi

if [ x"$rootfs_tar" = x"default" ]; then
    rootfs_tar="http://images.validation.linaro.org/nvidia/$board/trusty.tar.gz"
fi

echo "ABOUT TO PARTITION AND FORMAT $disk"

parted -s $disk mklabel gpt
parted -s $disk mkpart primary $fs_type 1MB 116GB
parted -s $disk mkpart primary linux-swap 116GB 120GB
sleep 5
yes | mkfs.$fs_type -q ${disk}1
mkswap ${disk}2

echo "DONE PARTITIONING $disk:"
parted -s $disk print

mount ${disk}1 $mnt

case "$rootfs_tar" in
    "http"*) cat_cmd="wget -O -" ;;
    *) cat_cmd="cat" ;;
esac

case "$rootfs_tar" in
    *".tar.gz") tar_opt="z" ;;
    *".tar.bz2") tar_opt="j" ;;
    *".tar.xz") tar_opt="J" ;;
esac

echo "WRITING ROOTFS TO ${disk}2"

$cat_cmd $rootfs_tar | (cd $mnt; tar x$tar_opt)

rm -f $mnt/README*
echo "${disk}2 none swap sw 0 0" >> $mnt/etc/fstab
sed -i -e "s/nameserver 127.0.1.1/nameserver 8.8.8.8/" $mnt/etc/resolv.conf
rsync -a "$(dirname $0)/../" $mnt/root/lab-ansible/

umount $mnt

echo "ALL DONE"