Gentoo Archives: gentoo-commits

From: Richard Farina <zerochaos@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/genkernel:aufs commit in: defaults/
Date: Fri, 05 Sep 2014 16:10:04
Message-Id: 1403565075.137151956da638841b27e8faf3fb8401a3b37df6.zerochaos@gentoo
1 commit: 137151956da638841b27e8faf3fb8401a3b37df6
2 Author: Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com>
3 AuthorDate: Tue Jun 3 01:36:28 2014 +0000
4 Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org>
5 CommitDate: Mon Jun 23 23:11:15 2014 +0000
6 URL: http://sources.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=13715195
7
8 A new bootstrapFS function has been added to cut on duplicate code
9 use which both aufs and squashfs boot types use and this it's moved
10 to the top of the boot process.
11
12 ---
13 defaults/initrd.scripts | 70 +++++++++++++++++++++++++++++++++----------------
14 defaults/linuxrc | 29 +++-----------------
15 2 files changed, 50 insertions(+), 49 deletions(-)
16
17 diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
18 index 22769bd..07890ec 100644
19 --- a/defaults/initrd.scripts
20 +++ b/defaults/initrd.scripts
21 @@ -177,6 +177,52 @@ devicelist(){
22 echo ${DEVICES}
23 }
24
25 +bootstrapFS() {
26 + if [ "${USE_AUFS_NORMAL}" -eq '1' ]; then
27 + # Directories used for rw changes in union mount filesystem
28 + UNION=/union MEMORY=/memory
29 +
30 + # Mountpoint for the changesdev
31 + CHANGESMNT=${NEW_ROOT}/mnt/changesdev
32 +
33 + if [ -z "$UID" ]; then
34 + CHANGES=${MEMORY}/aufs_changes/default
35 + else
36 + CHANGES=${MEMORY}/aufs_changes/${UID}
37 + fi
38 +
39 + mkdir -p ${MEMORY} ${UNION} ${CHANGESMNT}
40 + else
41 + # Legacy SquashFS implementation
42 + good_msg "Making tmpfs for ${NEW_ROOT}"
43 + mount -n -t tmpfs tmpfs ${NEW_ROOT}
44 + fi
45 +
46 + # Setup the filesystem nodes and directories
47 + for i in ${CDROOT_PATH} /mnt/livecd /mnt/key /mnt/gentoo /tmp /tmp/.initrd /dev /proc /run /sys; do
48 + mkdir -p "${NEW_ROOT}${i}"
49 + chmod 755 "${NEW_ROOT}${i}"
50 + done
51 +
52 + [ ! -d "${CDROOT_PATH}" ] && mkdir -p "${CDROOT_PATH}"
53 + [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
54 + [ ! -e "${NEW_ROOT}/dev/zero" ] && mknod -m 660 "${NEW_ROOT}"/dev/zero c 1 5
55 + [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
56 + [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && mknod -m 600 "${NEW_ROOT}"/dev/ttyS0 c 4 64
57 +
58 + # For SGI LiveCDs
59 + if [ "${LOOPTYPE}" = "sgimips" ]; then
60 + [ ! -e "${NEW_ROOT}/dev/sr0" ] && mknod "${NEW_ROOT}/dev/sr0" b 11 0
61 + [ ! -e "${NEW_ROOT}/dev/loop0" ] && mknod "${NEW_ROOT}/dev/loop0" b 7 0
62 + fi
63 +
64 + # Required for splash to work. Not an issue with the initrd as this
65 + # device isn't created there and is not needed.
66 + for minor in 0 1 ; do
67 + [ ! -e "${NEW_ROOT}/dev/$minor" ] && mknod -m 600 "${NEW_ROOT}/dev/tty$minor" c 4 $minor
68 + done
69 +}
70 +
71 bootstrapCD() {
72 local DEVICES=
73
74 @@ -302,30 +348,8 @@ create_changefs() {
75 }
76
77 setup_aufs() {
78 - # Directory used for rw changes in union mount filesystem
79 - UNION=/union
80 - MEMORY=/memory
81 - # Mountpoint for the changesdev
82 - CHANGESMNT=${NEW_ROOT}/mnt/changesdev
83 - if [ -z "$UID" ]
84 - then
85 - CHANGES=${MEMORY}/aufs_changes/default
86 - else
87 - CHANGES=${MEMORY}/aufs_changes/${UID}
88 - fi
89 -
90 - mkdir -p ${MEMORY}
91 - mkdir -p ${UNION}
92 - mkdir -p ${CHANGESMNT}
93 - for i in dev mnt ${CDROOT_PATH} mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
94 - do
95 - mkdir -p "${NEW_ROOT}/${i}"
96 - chmod 755 "${NEW_ROOT}/${i}"
97 - done
98 - [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
99 - [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
100 -
101 bootstrapCD
102 +
103 if [ -n "${AUFS}" ]
104 then
105 if [ "${AUFS}" = "detect" ]
106
107 diff --git a/defaults/linuxrc b/defaults/linuxrc
108 index da88bf0..0e40d16 100644
109 --- a/defaults/linuxrc
110 +++ b/defaults/linuxrc
111 @@ -458,40 +458,17 @@ rundebugshell "before setting up the root filesystem"
112
113 if [ "${CDROOT}" = '1' ]
114 then
115 + # Setup the root filesystem
116 + bootstrapFS
117 +
118 if [ "${USE_AUFS_NORMAL}" -eq '1' ]
119 then
120 setup_aufs
121 CHROOT=${UNION}
122 else
123 CHROOT=${NEW_ROOT}
124 - good_msg "Making tmpfs for ${NEW_ROOT}"
125 - mount -n -t tmpfs tmpfs ${NEW_ROOT}
126 -
127 - for i in dev mnt ${CDROOT_PATH} proc run mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
128 - do
129 - mkdir -p "${NEW_ROOT}/${i}"
130 - chmod 755 "${NEW_ROOT}/${i}"
131 - done
132 - [ ! -d "${CDROOT_PATH}" ] && mkdir -p "${CDROOT_PATH}"
133 - [ ! -e "${NEW_ROOT}/dev/null" ] && mknod -m 666 "${NEW_ROOT}"/dev/null c 1 3
134 - [ ! -e "${NEW_ROOT}/dev/zero" ] && mknod -m 666 "${NEW_ROOT}"/dev/zero c 1 5
135 - [ ! -e "${NEW_ROOT}/dev/console" ] && mknod -m 600 "${NEW_ROOT}"/dev/console c 5 1
136 - [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && mknod -m 660 "${NEW_ROOT}"/dev/ttyS0 c 4 64
137 fi
138
139 - # For SGI LiveCDs ...
140 - if [ "${LOOPTYPE}" = "sgimips" ]
141 - then
142 - [ ! -e "${NEW_ROOT}/dev/sr0" ] && mknod "${NEW_ROOT}/dev/sr0" b 11 0
143 - [ ! -e "${NEW_ROOT}/dev/loop0" ] && mknod "${NEW_ROOT}/dev/loop0" b 7 0
144 - fi
145 -
146 - # Required for splash to work. Not an issue with the initrd as this
147 - # device isn't created there and is not needed.
148 - for minor in 0 1 ; do
149 - [ ! -e "${NEW_ROOT}/dev/$minor" ] && mknod -m 600 "${NEW_ROOT}/dev/tty$minor" c 4 $minor
150 - done
151 -
152 if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${USE_AUFS_NORMAL}" != '1' ]
153 then
154 bootstrapCD