Magellan Linux

Contents of /trunk/mkinitrd/patches/mkinitrd-6.3.5-fix-dev-handling.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1727 - (show annotations) (download)
Tue Apr 3 14:09:35 2012 UTC (12 years ago) by niro
File size: 5807 byte(s)
-backport dev handling from upstream
1 --- ../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