(
1)先关机
(
2)添加一块硬盘
(
3)将硬盘分区,/dev/sdb1为boot分区,/dev/sdb2为swap分区, /dev/sdb3为根分区
(
4)调整/dev/sdb2的分区类型为82,指定为swap分区
(
5)给/dev/sdb1、/dev/sdb3创建ext4创建文件系统,给/dev/sdb2创建swap文件系统
mkfs -t ext4
/dev/sdb1
mkfs -t ext4
/dev/sdb3
mkswap
/dev/sdb2
(
6)在/mnt下创建boot目录
mkdir
/mnt/boot
(
7)挂载boot分区
mount
/dev/sdb1 /mnt/boot
(
8)使用grub-install工具安装grub
grub-install --root-directory=
/mnt /dev/sdb
(
9)将/boot/目录下的vmlinuz、initramfs 拷贝到 /mnt/boot目录下
cp
/boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz
cp
/boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img
(
10)在/mnt下创建一个根挂载点,将根分区挂载
mkdir
/mnt/root
mount
/dev/sdb3 /mnt/root
(
11)先删除根下的lost+found目录, 再创建根下的结构
rm -fr
/mnt/root/lost+found
cd
/mnt/root/
mkdir bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var
(
12)将bash程序和ls程序拷贝到/mnt/boot/bin目录下
cp
/bin/bash /mnt/root/bin/
cp
/bin/ls /mnt/root/bin/
(
13)使用ldd命令查看bash程序和ls程序所依赖的C库接口
ldd
/bin/bash
ldd
/bin/ls
(
14)再将bash程序 和 ls程序所依赖的库拷贝到/mnt/root/lib64/目录下(从第二个库文件开始拷贝)
cp
/lib64/libtinfo.so.5 /mnt/root/lib64/
cp
/lib64/libdl.so.2 /mnt/root/lib64/
cp
/lib64/libc.so.6 /mnt/root/lib64/
cp
/lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
cp
/lib64/libselinux.so.1 /mnt/root/lib64/
cp
/lib64/librt.so.1 /mnt/root/lib64/
cp
/lib64/libcap.so.2 /mnt/root/lib64/
cp
/lib64/libacl.so.1 /mnt/root/lib64/
cp
/lib64/libc.so.6 /mnt/root/lib64/
cp
/lib64/libdl.so.2 /mnt/root/lib64/
cp
/lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
cp
/lib64/libpthread.so.0 /mnt/root/lib64/
cp
/lib64/libattr.so.1 /mnt/root/lib64/
(
15)编辑/mnt/boot/grub/grub.conf文件, 添加如下内容
default=0
timeout=
5
hiddenmenu
title CentOS
6 yhy
root (hd0,
0)
kernel
/vmlinuz ro root=/dev/sda3 selinux=0 init=/bin/bash
initrd /initramfs.img
(
16)先切换根试一试
chroot
/mnt/root
(
17)如果在本机上做根切换没有问题,那么再创建一个新的虚拟机,这个新的虚拟机的硬盘使用刚刚创建的硬盘
(
18)如果在启动后,可以使用ls命令显示根下的目录结构,说明grub安装完毕,这就是一个没有应用程序的内核