Grub的制作

grub的制作: 


系统版本:CentOS7.2

1.添加一块新的硬盘并分区/dev/sdb,fdisk 进行创建 boot ,swap,/ 三个分区,完事后partx -a  /dev/sdb,如果觉得麻烦没关系,之前工作中写了一个自动分区和挂载的小脚本,有需要的朋友或者懒癌患者可以参考下:此脚本的目的在于分区后将盘挂载至/data目录下,仅供参考,写得比较糙,请根据实际情况修改,
~]# cat mount_auto.sh 
#!/bin/bash
#Describe mount 150G SAS
#Date 05/31/2015  2nd
#Date 08/11/2015 V3 
#Author DYL  release 2nd
###


###进入交互式自动分区
mkdir /data
device="/dev/sdb"
disk_part () {
fdisk $device << EOF
n
p
4
1


t
8e
w
EOF

###创建pv--vg--lv逻辑卷
pvcreate ${device}4
vgcreate vg_sdb4 ${device}4
lvcreate -n lv_sdb4 -l +100%FREE vg_sdb4
mkfs.ext4 /dev/vg_sdb4/lv_sdb4
}


fdisk -l|grep sdb 
if [ $? -eq 0 ]
then
        echo "Disk was  added already."
        fdisk -l | grep sdb4


if [ $? -eq 0 ]
then
        echo "Device was parted ok."
elif [ $? -ne 0 ]
then
        echo "$device was  not parted,you need to do it."
echo "$device was added,now mount begin!"
        disk_part
fi
else
        echo "No  avaliable device,please added a disk!"


fi

###设置开机自动挂载
grep sdb4 /etc/fstab
if [ $? -ne 0 ]
then
        echo  "/dev/vg_sdb4/lv_sdb4     /data   auto  defaults   0 0" >> /etc/fstab && echo "mount success."
fi
mount -a
#cp -pr /data/*  /data
chown jboss.  /data/ -R
chmod 775 /data/ -R


##################The End###########

2格式化三个分区,/swap 要用专门的mkswap
3.创建目录并挂载分区,mount /dev/sdb1  /mnt/boot;      mount /dev/sdb3  /mnt/sysroot
4.安装grub :   grub-install  --root-directory=/mnt  /dev/sdb
5.向grub中添加内核配置文件,可以去系统的的kernel目录下面去拷贝

              cp  /boot/vmlinuz*    /mnt/boot/vmlinuz ;         cp   /boot/initramfs*  /mnt/boot/initramfs.img
  1. vi /mnt/boot/grub.conf

            default=0   

             timeout=5  

              title   grubtest

                         root  (hd0,0)   

    1.            kernel /vmlinuz       ro root=/dev/sda3   selinux=0  init=/bin/bash   经过测试selinux默认是开启的,这会导致grub引导出现异常,于是直接关掉,而init则是进入用户空间调用的第一个接口,传统的不是这个。。。是sysinit ?

    1.           initrd   /initramfs.img

6.制作基本的根文件系统:

       cd   /mnt/sysroot  

      mkdir -pv    root   etc  lib  lib64    home  mnt  media  sys  proc  usr  tmp  var  ...

      cp   /bin/bash   /mnt/sysroot/bin

      ldd    /bin/bash      文件系统不能自动识别,应该创建文件系统的驱动模块,ldd是查看文件系统依赖哪些模块

      cp /lib64/libc.so.6    /mnt/sysroot/lib64    当然不止一个模块,有四个,不一一列举了

      为了验证我新创建的根文件系统里面的bash是否成功,进行根切换测试:

           chroot   /mnt/sysroot     结果显示为bash的提示符  像这样

        

  基本差不多了吧。。。现在进入grub引导测试

7.将之前创建grub的这个系统给挂起或者关掉,查看/dev/sdb存放的位置,新建一个虚拟机,将/dev/sdb挂上去,然后启动新的虚拟机。。。等待结果。。。

         


哎,不知道为什么,全得重新手动敲了一遍,按常理可以自动补全的。。。然后boot启动后就是这个样子了


                       

              看到bash-4.1#也就成功了。。。


AUTHOR:网名为什么那么长

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值