[Frugalware-git] fw-initramfs: create_initramfs.sh *added file for create initramfs

bouleetbil bouleetbil at frogdev.info
Thu Nov 5 20:14:40 CET 2009


Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=fw-initramfs.git;a=commitdiff;h=fa9546bc60e43c61f5455deb35687d58d865f02f

commit fa9546bc60e43c61f5455deb35687d58d865f02f
Author: bouleetbil <bouleetbil at frogdev.info>
Date:   Thu Nov 5 20:22:24 2009 +0100

create_initramfs.sh
*added file for create initramfs

diff --git a/create_initramfs.sh b/create_initramfs.sh
new file mode 100755
index 0000000..43d28a8
--- /dev/null
+++ b/create_initramfs.sh
@@ -0,0 +1,101 @@
+#!/bin/sh
+
+#GNU General Public License Version
+#This program is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public License
+#version 2 as published by the Free Software Foundation.
+#This program is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#GNU General Public License for more details.
+
+DIRTEMP=/tmp/init/
+KV=`uname -r`
+HOMESOURCE=/usr/share/fw-initramfs/
+
+
+. $HOMESOURCE/create_functions.sh
+. $HOMESOURCE/modules.sh
+
+#####################################################################
+#check if root user
+#####################################################################
+checkUser
+
+#####################################################################
+#delete old initramfs
+#####################################################################
+rm -rf $DIRTEMP
+
+#####################################################################
+#create layout
+#####################################################################
+mkdir -p $DIRTEMP/work/initramfs/{bin,sbin,etc,proc,sys,newroot,lib,dev}
+echo "/dev/ram0     /           ext2    defaults	0 0" > ${TEMP}/$DIRTEMP/work/initramfs/etc/fstab
+echo "proc          /proc       proc    defaults    0 0" >> ${TEMP}/$DIRTEMP/work/initramfs/etc/fstab
+
+cd $DIRTEMP/work/initramfs/dev
+mknod -m 660 console c 5 1
+mknod -m 660 null c 1 3
+mknod -m 600 tty1 c 4 1
+cd $HOMESOURCE
+
+#####################################################################
+#copy init and functions
+#####################################################################
+cp init $DIRTEMP/work/initramfs/init
+chmod +x $DIRTEMP/work/initramfs/init
+cp init_functions.sh $DIRTEMP/work/initramfs/etc/init_functions.sh
+cp modules.sh $DIRTEMP/work/initramfs/etc/modules.sh
+Fsed "#!/bin/sh" "#!/bin/ash" $DIRTEMP/work/initramfs/etc/modules.sh
+
+
+#####################################################################
+#append busybox
+#####################################################################
+
+wget http://dors.frugalware.org/initramfs/busybox-1.15.2-2-i686.fpm
+pacman-g2 -U busybox-1.15.2-2-i686.fpm --noconfirm
+rm -rf busybox-1.15.2-2-i686.fpm
+cp -prf /usr/share/busybox/* $DIRTEMP/work/initramfs/
+rm $DIRTEMP/work/initramfs/linuxrc
+chmod +x $DIRTEMP/work/initramfs/bin/busybox
+cd $DIRTEMP/work/initramfs
+ln -sf busybox bin/sh
+
+#####################################################################
+#append modules
+#####################################################################
+
+MOD_EXT=".ko"
+
+mkdir -p $DIRTEMP/work/initramfs/lib/modules/${KV}
+cp -pr /lib/modules/${KV}/modules.*  $DIRTEMP/work/initramfs/lib/modules/${KV}/
+
+for module in $ALL_MODULES
+do
+	ModuleFile=`find "/lib/modules/${KV}" | grep ${module}${MOD_EXT}`
+	if find /lib/modules/${KV} | grep /"${module}${MOD_EXT}" >/dev/null 2>&1
+	then
+		mkdir -p $DIRTEMP/work/initramfs/${ModuleFile/${module}${MOD_EXT}/}
+		good_msg "Install module ${module} to initramfs"
+		cp -prv $ModuleFile $DIRTEMP/work/initramfs/$ModuleFile
+	else
+		bad_msg "Don't install ${module} to initramfs"
+		Fsed "${module} " "" $HOMESOURCE/modules.sh
+	fi
+done
+
+#####################################################################
+#create initramfs
+#####################################################################
+find . | cpio -H newc -o > ../initramfs.cpio
+cd ..
+cat initramfs.cpio | gzip > initramfs.igz
+
+
+good_msg 'for use this initramfs :'
+good_msg "cp ${DIRTEMP}work/initramfs.igz /boot/initramfs.igz"
+good_msg 'edit /boot/grub/menu.lst'
+good_msg 'add initrd /boot/initramfs.igz'
+


More information about the Frugalware-git mailing list