1、加硬盘,三个分区大小:
1:100M
2:512M
3:128M
把1的2创建为ext3的文件系统
/dev/sdb1 /mnt/boot
/dev/sdb2 /mnt/sysroot
2、安装grub(提供了两种安装方法2.1和2.2)
2.1# mkdir /mnt/boot/grub
# cp /usr/share/grub/i386-redhat/* /mnt/boot/grub
# grub
grub> root (hd1,0)
grub> setup (hd1)
2.2grub-install --root-directory=/mnt /dev/sdb
写配置文件:/mnt/boot/grub/grub.conf
grub.conf:
default=1
timeout=5
!!!splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
!!!hiddenmenu
title @Red Hat Enterprise Linux Server (2.6.28.10)@
root (hd0,0)
kernel @/vmlinuz-2.6.28.10 ro root=/dev/sdb2@ rhgb quiet
initrd @/initrd-2.6.28.10.img@
(其中配置文件中!!!中间的未非必须,@中间的根据自己的需要来写,两个符号仅作为本人标注作用)
3、复制内核并提供initrd:
# cp /boot/vmlinuz-$(uname -r) /mnt/boot/vmlinuz
# mkdir /tmp/linux
# cd /tmp/linux
# zcat /boot/initrd-$(uname -r).img | cpio -id
# vim init
找到/dev/vol0/root 换成/dev/sda2
# find . | cpio -o -H newc --quiet | gzip -9 > /mnt/boot/initrd.gz
4、提供根文件系统
# cd /mnt/sysroot
# mkdir -pv ./{etc/rc.d, bin, sbin, usr, proc, sys, var, tmp, lib, mnt, media, misc, opt, dev}
# cp /sbin/init sbin/
# cp /bin/bash bin/
复制上述两个可执行文件依赖的库文件:
# ldd /sbin/init
# cp /lib/... /mnt/sysroot/lib/...
以下提供了复制库文件的脚本程序:输入需要的命令就能把命令和使用的库文件复制到需要的文件中
#!/bin/bash
#
function BCP{
TARGET=/tmp/sysroot
COMMAND=`which $1 | grep -o "/.*"`
TARGET=/tmp/sysroot
COMMAND=`which $1 | grep -o "/.*"`
CMDPATH=${COMMAND%/*}
[ -d $TARGET$CMDPATH ] || mkdir -p $TARGET$CMDPATH
[ -e $TARGET$COMMAND ] || cp $COMMAND $TARGET$CMDPATH
for LIBFILE in `ldd $COMMAND | grep -o "/.*lib[^[:space:]]*"`;do
LIBPATH=${LIBFILE%/*}
[ -d $TARGET$LIBPATH ] || mkdir -p $TARGET$LIBPATH
[ -e $TARGET$LIBFILE ] || cp $LIBFILE $TARGET$LIBPATH
done
}
while true; do
read -p "A Command: " MYCMD
case $MYCMD in
q|Q)
echo "Quit......"
exit 0
;;
*)
! which $MYCMD &> /dev/null && echo "Wrong command..." && continue
BCP $MYCMD
esac
done
5、提供配置文件:
# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
# vim etc/rc.d/rc.sysinit
rc.sysinit:
#!/bin/bash
#
echo -e "\tWelcome to LLinux"
/bin/bash
# chmod +x etc/rc.d/rc.sysint
6、以上完成以后只许把sdb硬盘作为另一个虚拟机或电脑的硬盘启动就可以了