grub安装linux完成后 拷贝文件修改引导为本地磁盘,实验六:通过grub程序引导本地磁盘内核启动系统(busybox)...

实验名称:

通过grub程序引导本地磁盘内核启动系统(busybox)

实验环境:

理论上,该实验只需要配置好xen环境即可,但是,我们的xen环境安装在centOS7上,但是我们又是使用的kernel 2.6版本的内核,所以需要安装在centOS6版本下的grub程序!

所以,这里我们提供一个centos6的机器,用来准备为磁盘安装grub0版本;

同时,提供一个安装好xen环境centOS7的系统;centOS7的xen环境如下:

893fa4df2399dff219adb3e1e580b4d8.png

实验需求:

这里的实验需求就是通过给虚拟磁盘安装grub程序,然后准备好系统启动文件,以及根文件系统;

然后再xen环境下制定“/usr/bin/pygrub”程序来引导启动系统,即可;

*这里安装的grub程序我们使用的是第一个版本的grub程序,而不是centos7的新版本的grub程序,这点一定要清楚;

实验配置:

/*在centos6上完成以下操作*/

1、创建虚拟磁盘映像

yum install qemu-img

#可以安装qemu-img工具,qemu-img和qemu-img-xen是同一个工具,他们是软连接关系

mkdir /images/xen/qemu-img create -f raw -o size=2G busybox.img

ll -h busybox.img

du -h busybox.img

0980b8e52742089ef8c33c40d4bb57fe.png

此时我们就拥有了一个2G大小虚拟磁盘文件

2、通过losetup命令,关联虚拟磁盘与虚拟设备,并进行格式化与挂载操作

拥有了磁盘文件有,我们需要对磁盘关联到回环设备,通过losetup命令,在对回环设备进行分区,格式化以及挂载,才能使用这个磁盘

losetup /dev/loop0 /images/xen/busybox.img

kpartx-a /dev/loop0

losetup-a

a99022a5d0d7be028e24d2248dcff46c.png

这样,busybox.img磁盘就关联到/dev/loop0设备上了,这样的话,再去对/dev/loop0设备进行操作,就是对busybox.img进行操作

fdisk /dev/loop0

n

p1[回车]+200M

n

p2[回车]+1024Mwfdisk-l /dev/loop0

kpartx-a /dev/loop0

ll /dev/mapper/

76b3b76ab672016174d449acdec7f1ab.png

格式化磁盘分区,并创建挂载目录,并挂载磁盘分区

mke2fs -t ext2 /dev/mapper/loop0p1

mke2fs -t ext2 /dev/mapper/loop0p2

mkdir -pv /mnt/{boot,sysroot}mount /dev/mapper/loop0p1 /mnt/boot/mount /dev/mapper/loop0p2 /mnt/sysroot/

df -h  #查看挂载情况

#根据FHS规定,为我们的系统创建常见的目录文件

mkdir -pv /mnt/sysroot/{etc,home,var,root,tmp,lib/module,proc,sys}

3、写入grub程序,并将xen-netfront.ko、内核文件、ramdisk文件复制到磁盘

grub-install --root-directory=/mnt /dev/loop0

在安装的时候回报错,如下图:

7d4e87c0fd51eaa828b220a7742fdf88.png

这里是因为我们是虚拟设备,没有BIOS驱动,但是grub程序一样被装载到/dev/loop0磁盘中去了,不影响;

b0e2112d997cc2015cf77ec1da580708.png

此时,我们可以看到,grub对应的文件都已经安装完成;

安装完成grub程序以后,我们需要手动配置grub.conf文件来引导系统启动

vim /mnt/boot/grub/grub.conf

default=0timeout=10title MyTestSystem (busybox kernel-2.6)

root (hd0,0)  #指定kernel和ramdisk文件存放的磁盘分区

kernel/vmlinuz root=/dev/xvda2 ro selinux=0 init=/bin/shinitrd/initrd.img

接下来,拷贝内核文件,ramdisk以及xen-netfront驱动到磁盘中来即可;

cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuzcp /boot/initramfs-2.6.32-504.el6.x86.img /mnt/boot/initrd.img

cp /lib/module/2.6.32-504.el6.x86/kernel/divers/net/xen-netfront.ko /mnt/sysroot/lib/module/

自此,我们系统启动所需要的文件就准备齐了;

4、将虚拟磁盘文件卸载下来,传送到centos7系统上来

我们这里使用的是grub的第一个版本,所以再centos6上面来做,但是xen环境在centos7上,所以我们需要将虚拟磁盘传送到centos7上面去;

umount /mnt/boot/

umount /mnt/sysroot/kpartx-d /dev/loop0

losetup-d /dev/loop0

losetup-a

这样,我就将磁盘卸载下来了,下一步就将磁盘传输到centos7的系统上去;

ping 192.168.238.129

#如果没有scp工具,就 yum install openssh-clients 工具即可

scp /images/xen/busybox.img root@192.168.238.129:/root/

password:  #输入192.168.238.129主机的root用户的密码即

/*在centos7上完成以下操作*/

5、将虚拟磁盘挂载到centos7的系统之下

17820644a07e855360ed2c9ee8043dc2.png

此时,在/root/目录下就会有busybox.img的虚拟磁盘文件,我们将这个磁盘挂载在我们centos7下,即可

losetup /dev/loop0 /root/busybox.img

kpartx-a /dev/loop0

losetup-a

ll/dev/mapper/

5a4caf486163df4afe85db8e20b6af59.png

此时,在centos7上面就会有loop0p1和loop0p2这两个设备,挂载这两个设备的文件,查看里面的内容,就是我们之前在centos6上面所配置的内容;

mkdir -pv /mnt/{boot,sysroot}mount /dev/mapper/loop0p1 /mnt/boot/

mount /dev/mapper/loop0p2 /mnt/sysroot/

ls /mnt/boot/

ls /mnt/sysroot/

6、编译安装busybox,将busybox的根文件系统拷贝到虚拟磁盘的/sysroot/下

编译安装busybox系统

【这里在实验三中以及做过,这里不再赘述】

将busybox的根文件系统拷贝到磁盘的第二个分区中,也就是目录/mnt/sysroot目录下,并切换根目录查看是否正常;

cp -a busybox-1.22.1/_install/*/mnt/sysroot/

chroot /mnt/sysroot/ /bin/sh

7、配置虚拟机的启动文件,指定BootLoader参数

创建xl的虚拟机启动文件,并进行相应的配置

cd /etc/xen/

cpxlexample.pvlinux busybox

vim busybox

name= "busybox-grub"bootloader= "/usr/bin/pygrub"memory= 256vcpus= 2disk= [ '/root/busybox.img,raw,xvda,rw' ]

这里注意,我们指定bootloader参数来引导系统启动;

8、启动虚拟机

xl create /etc/xen/busybox -c

此时,就会通过xen环境下提供 pyGRUB 来引导系统;

9e6ae2d8bd05e2b25e03c1ca38f52dcf.png

系统最后正常启动,及系统配置正确;

9、网络配置

在虚拟机中配置网卡

cd /lib/module/

insmod xen-netfront.ko

ip addr   #查看网卡配置

实验结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值