Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1727 - (hide annotations) (download)
Tue Apr 3 14:09:35 2012 UTC (12 years, 1 month 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