summaryrefslogtreecommitdiff
path: root/scripts/tcos-top/20mountnfs
blob: 1f528cf2d38a96755eb63dcf423eaf127bef6af1 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/sh
# 
if [ "$1" = "prereqs" ]; then
  exit 0
fi


. /scripts/functions
. /conf/tcos.conf
. /conf/tcos-run-functions

quiet=n

# if break=mountnfs STOP here
maybe_break mountnfs


# read /tmp/less_ram
if [ "$(cat /tmp/less_ram)" = "0" ]; then
  # have more than TCOS_MIN_RAM
  exit 0
fi



# if use NFS try to mount:
#
#   SERVER_IP:/var/lib/tcos/fs-$(uname -r)
#


MNTOPT="ro,nolock,rsize=2048,wsize=2048,retrans=10"
NFS_RO=/mnt/nfs
NFS_RW=/root


mkdir -p /root 
mkdir -p /mnt/nfs

# NFS or NBD ?
NFS_MODE=$(read_cmdline_var "nfsmode" "nfs")


if [ "${NFS_MODE}" = "nbd" ]; then
  # mount root-$(uname -r).squashfs as /dev/nbd0
  log_begin_msg "Mounting remote squashfs with NBD"

    NBD_PORT=$(read_cmdline_var "nbdport" "2001")

    # load 1 nbd devices
    modprobe nbd nbds_max=1

    # wait for device
    while [ ! -e /dev/nbd0 ]; do
      sleep 1
    done

    nbd-client tcos-server $NBD_PORT /dev/nbd0
    sleep 1

    mount /dev/nbd0 /mnt/nfs
  
  log_end_msg $?

else
  log_begin_msg "Trying to mount NFS"
    nfsmount -o $MNTOPT $(read_server "nfs-server"):${TCOS_VAR}/fs-$(uname -r) ${NFS_RO} 2>/dev/null


  # try again
  if [ $? -ne 0 ]; then
    log_begin_msg "Second retry to mount NFS"
       nfsmount -o $MNTOPT $(read_server "nfs-server"):${TCOS_VAR}/fs-$(uname -r) ${NFS_RO} 2> /dev/null
  fi

  if [ $? -ne 0 ]; then
    panic "Unable to mount NFS, check NFS service in server and ${TCOS_VAR}/fs-$(uname -r) dir"
  fi
  log_end_msg $?

fi # end of NFS_MODE


# remount /root in RW mode


log_begin_msg "Remounting root in RW mode"

  mount_unionfs /mnt/ram /mnt/nfs /root

log_end_msg $?


maybe_break move_mnt

# Set browseable NFS and RAM dirs
mkdir -p /root/.dirs/nfs
mkdir -p /root/.dirs/ram
mount -o move /mnt/nfs /root/.dirs/nfs
mount -o move /mnt/ram /root/.dirs/ram


exit 0