Creating a chroot environment β the script.
Here is the script, very simple and effective π
#!/bin/bash - #=============================================================================== # # FILE: mkchroot.sh # # USAGE: ./mkchroot.sh # # DESCRIPTION: Make a chroot environ and cd to it # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Amit Agarwal (aka), # CREATED: 09/03/2011 02:53:37 PM IST # Last modified: Sat Sep 03, 2011 03:11PM # REVISION: --- #=============================================================================== binaries=( bash2 ls cat vi vim sudo) #=== FUNCTION ================================================================ # NAME: copy_binary # DESCRIPTION: copy binary to chroot # PARAMETERS: # RETURNS: #=============================================================================== copy_binary () { cmd=`which $1` echo $cmd cp $cmd bin/ ldd $cmd while read line do while read ld do if [[ -f $ld ]] then echo copy $ld cp $ld lib/ if [[ -L $ld ]] then ld1=$( ls -l $ld |sed 's/.*> //') echo " copy $ld1" cp /lib/$ld1 lib/ fi fi done < <(echo $line|sed 's/.*> //'|sed 's/ .*//') done < <(ldd $cmd) } # ---------- end of function copy_binary ---------- #=== FUNCTION ================================================================ # NAME: init # DESCRIPTION: Do the required initialization # PARAMETERS: # RETURNS: #=============================================================================== init() { mkdir -p {root,home,dev,etc,lib,usr,bin} mkdir -p usr/bin mkdir -p libexec/openssh mknod -m 666 dev/null c 1 3 cd etc cp /etc/ld.so.cache . cp -avr /etc/ld.so.cache.d/ . cp -avr /etc/ld.so.conf.d/ . cp /etc/ld.so.conf . cp /etc/nsswitch.conf . cp /etc/passwd . cp /etc/group . cp /etc/hosts . cp /etc/resolv.conf . cd - } cd $1 if [[ -f .status ]] then cat .status echo "Not running now" else init for i in ${binaries[*]} do copy_binary $i cp -avr /etc/${i}* etc/ done ln bin/bash2 bin/bash echo "complete" > .status fi cp -avr ~/bin/automation root/automation sudo chroot .
.
Related articles
- LFS 6.8 (Part 12): Preparing to Build the LFS System (becomingaglider.wordpress.com)
- Upstart Development Blog: Upstart 1.3 “Concordia” released (upstart.at)
- imabonehead: How To: Build A Read-Only Linux System : Logic Supply Blog (logicsupply.com)
- Martin Pitt: apport-retrace made useful (piware.de)
Related Articles:
- 2011/09/19 Creating a chroot environment in Fedora with bash and other utils.
- 2011/05/16 Unix shell script for removing duplicate files
- 2011/03/18 Try all colors in xterm with script before setting the color
- 2011/03/14 cd across parallel directories
- 2011/01/25 shopt causes bash completion to stop working.
Authored By Amit Agarwal
Amit Agarwal, Linux and Photography are my hobbies.Creative Commons Attribution 4.0 International License.