cvs commit: hints initrd-diskcheck.txt

tushar at linuxfromscratch.org tushar at linuxfromscratch.org
Fri Oct 17 20:02:01 PDT 2003


tushar      03/10/17 21:02:01

  Added:       .        initrd-diskcheck.txt
  Log:
  Added Hint: initrd-diskcheck
  
  Revision  Changes    Path
  1.1                  hints/initrd-diskcheck.txt
  
  Index: initrd-diskcheck.txt
  ===================================================================
  AUTHOR:         Jim Gifford <lfs-hints at jg555.com>
  
  DATE: 		2003-10-17
  
  LICENSE: 	GNU Free Documentation License Version 1.2
  
  SYNOPSIS: 	initrd for LFS that will check and repair
  		ext2 and ext3 file system errors
  
  DESCRIPTION: 	This hint will assist you in creating a initrd
  		for your LFS system, that will check for file
  		system errors
  
  PREREQUISITES:  SCSI and USB Modules must be in modules.conf
  		Linux built with modules and the following options.
  		<*> SCSI support
  		<*> ATA/IDE/MFM/RLL support
  		<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
  		Root Filesystem must be compiled in
  		Initrd FileSystem must be compiled in (romfs or ext2)
  		Busybox-1.00-pre3
  		e2fsprogs 1.34
  HINT:
  
  Introduction to Initial RAMDisk
  
  This hint will help you configure an LFS system for Initial RAMDisk.
  Which will allow you to add modules at start-up instead of compiling them
  into the kernel.
  
  The script will auto-detect all SCSI, IDE and USB modules and add them
  to the initial ramdisk. It will also detect the root from the fstab file
  
  The above items, upon research are best if configured into the kernel. 
  You can look at the help of each of the items for more information.
  
  ---
  Assumptions Made in this document
  
  	I have made the following assumptions in this document.
  	Files have been downloaded.
  
  ---
  Kernel Configuration
  
  	You will need to make sure the following items are configured
  	in your kernel. With out these, the initrd will not work 
  	properly.
  
  	Block devices  --->
  		<M> Loopback device support (or <*>)
  		<*> RAM disk support
  		(4096)   Default RAM disk size
  		[*]   Initial RAM disk (initrd) support
  
  	If IDE support
  
  	ATA/IDE/MFM/RLL support  ---> 
  		<*> ATA/IDE/MFM/RLL support 
  		<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
  
  	If SCSI support
  	
  	SCSI support  --->
  		<*> SCSI support
  		<*>   SCSI disk support 
  
  	The root and initrd file systems must be compiled into
  	the kernel.
  	
  	The default initrd file system for the script is
  	ext3, but ext2 also can be used.
  
  ---
  File Systems
  
  	The script has 2 choices of file systems.
  	ext2 and ext3.
  
  	ext2 and ext3 are the most common file systems
  	in use, but the initrd is usually bigger.
  	My initrd with ext3 was only 439k. Compressed with
  	gzip -9
  
  ---
  Needed Programs
  	
  	e2fsprogs
  	----
  
  	Build as normal, but after install issue these commands
  		
          cp e2fsck/e2fsck.static /sbin/e2fsck.static
          strip --strip-debug /sbin/e2fsck.static
  
  	busybox 1.00-pre3
  	----
  
  	Download From
  	http://busybox.net/downloads/busybox-1.00-pre3.tar.bz2	
  
  	Information
  	http://busybox.net
  	
  	Busybox has changed the way the configure the shell. It now
  	uses a menu driven option very similar to make menuconfig
  	in linux.
  
  	Here is the list of the options needed. Anything else
  	will add to the size of your initrd.
  
  	General Configuration --->
  		[*] Support for devfs NOTE - only if you using devfs
  	Build Options  --->
  		[*] Build BusyBox as a static binary (no shared libs)
  	Coreutils  --->
  		[*] echo (basic SUSv3 version taking no options
  		[*] ln
  	Linux Module Utilities  ---> 
  		[*] insmod
  	Another Bourne-like Shell  --->
  		[*]     Enable alias support
  		[*]     Optimize for size instead of speed
  		(0) history size
  	Linux System Utilities  --->
  		[*] mount
  		[*] umount
  		[*]     Support for a real /etc/mtab (instead of /proc/mounts
  		(/etc/mtab)   mtab file location
  	The build size on my system was 495k, considerably smaller than
  	bash.
  
  	After running make menuconfig you will need to run the
  	following commands.
  
  	make
  	cp busybox /bin/busybox.static.fsck
  
  ---
  mkfsckinitrd
  
  	For those who do not want to type out the script. It is
  	available on my CVS server at 
  	http://cvs.jg555.com/viewcvs.cgi/scripts/system
  	
  	This script will create the initial RAM Disk image file.
  	By default this script creates /boot/initrd-fsck-{kernelversion}.img
  
  	I have sent a mkinitrd file to be placed
  	in the hints attachments at 
  	http://www.linuxfromscratch.org/hints/downloads/attachments. 
  	
  	The default location for this file is /sbin
  
  	There are options on the new script, it will not just create
  	a initrd anymore. The kernel_version= is the only mandatory
  	option
  
  	Options are the following:
  
  	Required
          --kernel_version={version} = use kernel version
  
  	Optional
  	--ide = remove ide modules
  	--scsi = remove scsi modules
  	--usb = remove usb modules
  	--initrdfs={ext2|ext3} = use either ext2 or ext3
          --remove-module={module} = remove module
          --add-module={module} = add module
  
  ---
  initrd script
  
  	The following script needs to placed in /etc/rc.d/init.d.
  	If you already have this script added, you do not need to
  	add it again. This is the same one from the initrd hint.
  
  	You will then need to link it to rcsysinit.d.
  
  	It is recommended that this script be run right after
  	mountfs.
  
  	To link the script change to the /etc/rc.d/rcsysinit.d
  	directory and issue the following command.
  
  	ln -sf ../init.d/initrd S41initrd
  
  #!/bin/bash
  # Begin $rc_base/init.d/initrd
  
  # Based on sysklogd script from LFS-3.1 and earlier.
  # Rewritten by Gerard Beekmans  - gerard at linuxfromscratch.org
  
  source /etc/sysconfig/rc
  source $rc_functions
  
  echo "Clearing Initial RAM Disk..."
  	if [ -e /initrd/dev/.devfsd ]
  		then
        		umount /initrd/dev
     	fi
     	umount /initrd
     	/sbin/blockdev --flushbufs /dev/ram0
  
  # End $rc_base/init.d/initrd
  		
  ---
  For Lilo
  
  	In order to use the initrd.img file is to add the
  	following entry to you lilo.conf file.
  
  	initrd=/boot/initrd-fsck.img
  
  	So your lilo.conf should look something like this.
  
  	image=/boot/vmlinuz-2.4.18
  	label=test
  	initrd=/boot/initrd-fsck-2.4.18.img
  	read-only
  
  	If you are just testing. You should make a separate
  	entry in lilo.conf. This will still allow you to boot.	
  
  ---
  For Grub
  
  	In order to use the initrd.img file is to add the
  	following entry to you menu.lst file.
  
  	initrd /boot/initrd-fsck-2.4.18.img
  
  	So your menu.lst should look something like this.
  
  	title test
  	root (hd0,1)
  	kernel /boot/vmlinuz-2.4.18
  	initrd /boot/initrd-fsck-2.4.18.img
  
  ---
  For Syslinux
  
  	In order to use the initrd.img file is to add the
  	following to syslinux.cfg file.
  
  	append root=/dev/ram0 initrd=initrd-fsck-2.4.18.img
  
  	So your syslinux.cfg should look something like this.
  
  	label test
  	kernel vmlinuz
  	append root=/dev/ram0 initrd=initrd-fsck.img
  
  ---
  
  VERSION:        1.1
  
  CHANGELOG:     	1.1 Fixed Typos
  		1.0 Initial Version
  
   New Version of this document can be viewed from http://cvs.jg555.com/viewcvs.cgi/lfs-hints
  
  
  



More information about the hints mailing list