Annotation of /trunk/mkinitrd/patches/mkinitrd-6.3.5-fix-dev-handling.patch
Parent Directory | Revision Log
Revision 1727 -
(hide annotations)
(download)
Tue Apr 3 14:09:35 2012 UTC (12 years, 5 months ago) by niro
File size: 5807 byte(s)
Tue Apr 3 14:09:35 2012 UTC (12 years, 5 months ago) by niro
File size: 5807 byte(s)
-backport dev handling from upstream
1 | niro | 1727 | --- ../tags/mkinitrd-6_3_5/mkinitrd.in 2011-11-24 01:38:55.000000000 +0100 |
2 | +++ mkinitrd-magellan/mkinitrd.in 2012-04-02 14:36:38.727982523 +0200 | ||
3 | @@ -754,7 +754,16 @@ | ||
4 | |||
5 | add_initrd 'mount -t proc proc /proc' | ||
6 | add_initrd 'mount -t sysfs sysfs /sys' | ||
7 | -add_initrd 'mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024' | ||
8 | +add_initrd "if [[ -z \$(grep '[[:space:]]/dev[[:space:]]' /proc/mounts | cut -d ' ' -f2) ]]" | ||
9 | +add_initrd 'then' | ||
10 | +add_initrd ' # many video drivers needed exec access' | ||
11 | +add_initrd ' fstype=ramfs' | ||
12 | +add_initrd ' # tmpfs was suggested by Greg Kroah-Hartman' | ||
13 | +add_initrd " [[ \$(grep '[[:space:]]tmpfs' /proc/filesystems | cut -d \$'\\t' -f2) = tmpfs ]] && fstype=tmpfs" | ||
14 | +add_initrd ' # mount devtmpfs if supported' | ||
15 | +add_initrd " [[ \$(grep '[[:space:]]devtmpfs' /proc/filesystems | cut -d \$'\\t' -f2) = devtmpfs ]] && fstype=devtmpfs" | ||
16 | +add_initrd ' mount -t ${fstype} dev /dev -o exec,nosuid,mode=0755,size=10M' | ||
17 | +add_initrd 'fi' | ||
18 | |||
19 | [[ ${IMAGE_TYPE} = loopback ]] && add_initrd 'mount -t ramfs -o remount,rw /dev/ram /' | ||
20 | |||
21 | @@ -861,9 +870,6 @@ | ||
22 | add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' | ||
23 | add_initrd 'mount /sysroot || ash' | ||
24 | |||
25 | -# use devtmpfs if supported | ||
26 | -add_initrd "if [ \"\$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)\" = \"devtmpfs\" ]; then mount -t devtmpfs dev /sysroot/dev;fi" | ||
27 | - | ||
28 | # unset hotplug event-manager | ||
29 | add_initrd 'echo > /proc/sys/kernel/hotplug' | ||
30 | |||
31 | @@ -875,9 +881,9 @@ | ||
32 | add_initrd 'if [ "${BREAK_ENABLED}" = "yes" ]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi' | ||
33 | |||
34 | add_initrd 'echo "-- Switching to real sysroot ..."' | ||
35 | -add_initrd 'umount /dev' | ||
36 | -add_initrd 'umount /sys' | ||
37 | -add_initrd 'umount /proc' | ||
38 | +add_initrd 'mount --move /dev /sysroot/dev' | ||
39 | +add_initrd 'mount --move /sys /sysroot/sys' | ||
40 | +add_initrd 'mount --move /proc /sysroot/proc' | ||
41 | |||
42 | [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console' | ||
43 | if [[ ${IMAGE_TYPE} = loopback ]] | ||
44 | --- ../tags/mkinitrd-6_3_5/livecd/linuxrc.sh 2011-11-24 01:38:55.000000000 +0100 | ||
45 | +++ mkinitrd-magellan/livecd/linuxrc.sh 2012-04-02 14:36:28.495982524 +0200 | ||
46 | @@ -61,13 +61,25 @@ | ||
47 | FORCED_ROOTFS="" | ||
48 | INITEXEC="/sbin/init" | ||
49 | BREAK_ENABLED=no | ||
50 | +UNIONFS=no | ||
51 | +UNIONFS_FILE="" | ||
52 | +CLOOPMOUNTDIR="/sysroot/mnt/cloop" | ||
53 | |||
54 | ## starts here ## | ||
55 | |||
56 | # mount essential filesystems | ||
57 | mount -t proc proc /proc | ||
58 | mount -t sysfs sysfs /sys | ||
59 | -mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024 | ||
60 | +if [[ -z $(grep '[[:space:]]/dev[[:space:]]' /proc/mounts | cut -d ' ' -f2) ]] | ||
61 | +then | ||
62 | + # many video drivers needed exec access | ||
63 | + fstype=ramfs | ||
64 | + # tmpfs was suggested by Greg Kroah-Hartman | ||
65 | + [[ $(grep '[[:space:]]tmpfs' /proc/filesystems | cut -d $'\t' -f2) = tmpfs ]] && fstype=tmpfs | ||
66 | + # mount devtmpfs if supported | ||
67 | + [[ $(grep '[[:space:]]devtmpfs' /proc/filesystems | cut -d $'\t' -f2) = devtmpfs ]] && fstype=devtmpfs | ||
68 | + mount -t ${fstype} dev /dev -o exec,nosuid,mode=0755,size=10M | ||
69 | +fi | ||
70 | |||
71 | # install all busybox applets | ||
72 | busybox --install -s | ||
73 | @@ -92,6 +104,8 @@ | ||
74 | rootfs=*) FORCED_ROOTFS="${i#*=}";; | ||
75 | init=*) INITEXEC="${i#*=}";; | ||
76 | break) BREAK_ENABLED=yes ;; | ||
77 | + unionfs) UNIONFS=yes;; | ||
78 | + unionfs_file=*) UNIONFS_FILE="${i#*=}";; | ||
79 | rootdelay=*) ROOTDELAY="${i#*=}";; | ||
80 | esac | ||
81 | done | ||
82 | @@ -178,31 +192,42 @@ | ||
83 | echo -e "Mounting squashfs system image ..." | ||
84 | echo | ||
85 | [ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0 | ||
86 | - mount -o loop,ro -t squashfs /sysroot/mnt/cdrom/livecdrootfs.sqsh /sysroot/mnt/cloop | ||
87 | + mount -o loop,ro -t squashfs /sysroot/mnt/cdrom/livecdrootfs.sqsh "${CLOOPMOUNTDIR}" | ||
88 | + | ||
89 | + # mount unionfs if enabled | ||
90 | + if [[ ${UNIONFS} = yes ]] | ||
91 | + then | ||
92 | + echo -e "Mounting writeable cdbuffer (unionfs) ..." | ||
93 | + | ||
94 | + # default setting | ||
95 | + CLOOPMOUNTDIR="/sysroot/mnt/unionfs" | ||
96 | + [[ -z ${UNIONFS_FILE} ]] && UNIONFS_FILE="/sysroot/mnt/cdrom/unionfs" | ||
97 | + | ||
98 | + [[ ! -d /sysroot/mnt/unionfs ]] && install -d /sysroot/mnt/unionfs | ||
99 | + mount -t unionfs dirs=${UNIONFS_FILE}=rw:/sysroot/mnt/cloop=ro ${CLOOPMOUNTDIR} | ||
100 | + fi | ||
101 | |||
102 | # symlinking cloop rootfs to /mnt as newroot | ||
103 | cd /sysroot | ||
104 | |||
105 | for x in bin sbin lib lib64 boot usr opt | ||
106 | do | ||
107 | - [ -d mnt/cloop/${x} ] && ln -s mnt/cloop/${x} ${x} | ||
108 | + [ -d ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ] && ln -s ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ${x} | ||
109 | done | ||
110 | mkdir -p initrd proc tmp sys var/tmp dev media | ||
111 | |||
112 | - # use devtmpfs if supported | ||
113 | - if [ "$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)" = "devtmpfs" ] | ||
114 | - then | ||
115 | - mount -t devtmpfs dev /sysroot/dev | ||
116 | - else | ||
117 | - # make /sysroot/dev/console & /mnt/dev/null | ||
118 | - [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 | ||
119 | - [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3 | ||
120 | - # only to be safe and to have a log channel | ||
121 | - [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0 | ||
122 | - # busybox needs this one | ||
123 | - [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5 | ||
124 | - fi | ||
125 | - (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot) | ||
126 | + # make /sysroot/dev/console & /mnt/dev/null | ||
127 | + [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 | ||
128 | + [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3 | ||
129 | + # only to be safe and to have a log channel | ||
130 | + [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0 | ||
131 | + # busybox needs this one | ||
132 | + [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5 | ||
133 | + | ||
134 | + (cd ${CLOOPMOUNTDIR}; cp -a etc root home var /sysroot) | ||
135 | + | ||
136 | + # ensure that /sysroot/linurc exists | ||
137 | + [ ! -e /sysroot/linuxrc ] && ln -snf ${INITEXEC} /sysroot/linuxrc | ||
138 | |||
139 | # ensure the right permissions | ||
140 | chmod 1777 /sysroot/tmp | ||
141 | @@ -224,8 +249,8 @@ | ||
142 | fi | ||
143 | |||
144 | echo "-- Switching to real sysroot ..." | ||
145 | -umount /dev | ||
146 | -umount /sys | ||
147 | -umount /proc | ||
148 | +mount --move /dev /sysroot/dev | ||
149 | +mount --move /sys /sysroot/sys | ||
150 | +mount --move /proc /sysroot/proc | ||
151 | |||
152 | exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console |