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: Wed, 29 Apr 2015 19:04:45
Message-Id: 1430328705.75fe8bf4d8eb452cbd866140f76e847666f30598.zerochaos@gentoo
1 commit: 75fe8bf4d8eb452cbd866140f76e847666f30598
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: Wed Apr 29 17:31:45 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=75fe8bf4
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 defaults/initrd.scripts | 70 +++++++++++++++++++++++++++++++++----------------
13 defaults/linuxrc | 29 +++-----------------
14 2 files changed, 50 insertions(+), 49 deletions(-)
15
16 diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
17 index fe563fe..eb5ed6a 100644
18 --- a/defaults/initrd.scripts
19 +++ b/defaults/initrd.scripts
20 @@ -177,6 +177,52 @@ devicelist(){
21 echo ${DEVICES}
22 }
23
24 +bootstrapFS() {
25 + if [ "${USE_AUFS_NORMAL}" -eq '1' ]; then
26 + # Directories used for rw changes in union mount filesystem
27 + UNION=/union MEMORY=/memory
28 +
29 + # Mountpoint for the changesdev
30 + CHANGESMNT=${NEW_ROOT}/mnt/changesdev
31 +
32 + if [ -z "$UID" ]; then
33 + CHANGES=${MEMORY}/aufs_changes/default
34 + else
35 + CHANGES=${MEMORY}/aufs_changes/${UID}
36 + fi
37 +
38 + mkdir -p ${MEMORY} ${UNION} ${CHANGESMNT}
39 + else
40 + # Legacy SquashFS implementation
41 + good_msg "Making tmpfs for ${NEW_ROOT}"
42 + mount -n -t tmpfs tmpfs ${NEW_ROOT}
43 + fi
44 +
45 + # Setup the filesystem nodes and directories
46 + for i in ${CDROOT_PATH} /mnt/livecd /mnt/key /mnt/gentoo /tmp /tmp/.initrd /dev /proc /run /sys; do
47 + mkdir -p "${NEW_ROOT}${i}"
48 + chmod 755 "${NEW_ROOT}${i}"
49 + done
50 +
51 + [ ! -d "${CDROOT_PATH}" ] && mkdir -p "${CDROOT_PATH}"
52 + [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
53 + [ ! -e "${NEW_ROOT}/dev/zero" ] && mknod -m 660 "${NEW_ROOT}"/dev/zero c 1 5
54 + [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
55 + [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && mknod -m 600 "${NEW_ROOT}"/dev/ttyS0 c 4 64
56 +
57 + # For SGI LiveCDs
58 + if [ "${LOOPTYPE}" = "sgimips" ]; then
59 + [ ! -e "${NEW_ROOT}/dev/sr0" ] && mknod "${NEW_ROOT}/dev/sr0" b 11 0
60 + [ ! -e "${NEW_ROOT}/dev/loop0" ] && mknod "${NEW_ROOT}/dev/loop0" b 7 0
61 + fi
62 +
63 + # Required for splash to work. Not an issue with the initrd as this
64 + # device isn't created there and is not needed.
65 + for minor in 0 1 ; do
66 + [ ! -e "${NEW_ROOT}/dev/$minor" ] && mknod -m 600 "${NEW_ROOT}/dev/tty$minor" c 4 $minor
67 + done
68 +}
69 +
70 bootstrapCD() {
71 local DEVICES=
72
73 @@ -302,30 +348,8 @@ create_changefs() {
74 }
75
76 setup_aufs() {
77 - # Directory used for rw changes in union mount filesystem
78 - UNION=/union
79 - MEMORY=/memory
80 - # Mountpoint for the changesdev
81 - CHANGESMNT=${NEW_ROOT}/mnt/changesdev
82 - if [ -z "$UID" ]
83 - then
84 - CHANGES=${MEMORY}/aufs_changes/default
85 - else
86 - CHANGES=${MEMORY}/aufs_changes/${UID}
87 - fi
88 -
89 - mkdir -p ${MEMORY}
90 - mkdir -p ${UNION}
91 - mkdir -p ${CHANGESMNT}
92 - for i in dev mnt ${CDROOT_PATH} mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
93 - do
94 - mkdir -p "${NEW_ROOT}/${i}"
95 - chmod 755 "${NEW_ROOT}/${i}"
96 - done
97 - [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
98 - [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
99 -
100 bootstrapCD
101 +
102 if [ -n "${AUFS}" ]
103 then
104 if [ "${AUFS}" = "detect" ]
105
106 diff --git a/defaults/linuxrc b/defaults/linuxrc
107 index da88bf0..0e40d16 100644
108 --- a/defaults/linuxrc
109 +++ b/defaults/linuxrc
110 @@ -458,40 +458,17 @@ rundebugshell "before setting up the root filesystem"
111
112 if [ "${CDROOT}" = '1' ]
113 then
114 + # Setup the root filesystem
115 + bootstrapFS
116 +
117 if [ "${USE_AUFS_NORMAL}" -eq '1' ]
118 then
119 setup_aufs
120 CHROOT=${UNION}
121 else
122 CHROOT=${NEW_ROOT}
123 - good_msg "Making tmpfs for ${NEW_ROOT}"
124 - mount -n -t tmpfs tmpfs ${NEW_ROOT}
125 -
126 - for i in dev mnt ${CDROOT_PATH} proc run mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
127 - do
128 - mkdir -p "${NEW_ROOT}/${i}"
129 - chmod 755 "${NEW_ROOT}/${i}"
130 - done
131 - [ ! -d "${CDROOT_PATH}" ] && mkdir -p "${CDROOT_PATH}"
132 - [ ! -e "${NEW_ROOT}/dev/null" ] && mknod -m 666 "${NEW_ROOT}"/dev/null c 1 3
133 - [ ! -e "${NEW_ROOT}/dev/zero" ] && mknod -m 666 "${NEW_ROOT}"/dev/zero c 1 5
134 - [ ! -e "${NEW_ROOT}/dev/console" ] && mknod -m 600 "${NEW_ROOT}"/dev/console c 5 1
135 - [ ! -e "${NEW_ROOT}/dev/ttyS0" ] && mknod -m 660 "${NEW_ROOT}"/dev/ttyS0 c 4 64
136 fi
137
138 - # For SGI LiveCDs ...
139 - if [ "${LOOPTYPE}" = "sgimips" ]
140 - then
141 - [ ! -e "${NEW_ROOT}/dev/sr0" ] && mknod "${NEW_ROOT}/dev/sr0" b 11 0
142 - [ ! -e "${NEW_ROOT}/dev/loop0" ] && mknod "${NEW_ROOT}/dev/loop0" b 7 0
143 - fi
144 -
145 - # Required for splash to work. Not an issue with the initrd as this
146 - # device isn't created there and is not needed.
147 - for minor in 0 1 ; do
148 - [ ! -e "${NEW_ROOT}/dev/$minor" ] && mknod -m 600 "${NEW_ROOT}/dev/tty$minor" c 4 $minor
149 - done
150 -
151 if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${USE_AUFS_NORMAL}" != '1' ]
152 then
153 bootstrapCD