创建单独运行的bash系统

1、grub下手动启动系统

1.1、在grub菜单下键入c够进入grub命令行模式
1.2、

          root(hd0,0)(boot分区所在位置)
          kernel /vmlinuz ro  root=/dev/sda2(根所在分区)
	      initrd /initramfs.img
	      boot
	      vmlinuz initramfs.img为内核文件和ramfs文件


 根据以上可以看到:系统启动包括:启动grub、启动“/”、启动用户空间程序,启动根需要内核文件vmlinuz和ramfs文件,
 启动用户空间程 序需要/sbin/init, 所以一个可以正常启动的系统需要:grub系统、/系统、用户空间系统 

2、grub系统:

bootloader、/(grub根系统)
bootloader用来启动grub,/系统存放启动grub和操作系统的所必需的的文件
一个可以启动的grub根目录:
grub initramfs.img vmlinuz
grub的根系统一般是一个单独的基本分区比如:/dev/sda1 挂载至/boot目录,也有和系统的根在同一个分区上的。
启动grub的所需的文件目录:grub:
device.map fat_stage1_5 grub.conf jfs_stage1_5 reiserfs_stage1_5 stage2 vstafs_stage1_5
e2fs_stage1_5 ffs_stage1_5 iso9660_stage1_5 minix_stage1_5 stage1 ufs2_stage1_5 xfs_stage1_5

3、/ 系统
系统根的目录: bin boot home lib lib64 lost+found media mnt opt proc root sbin sys tmp usr var

4、用户空间程序
正常的系统通过/sbin/init启动用户空间的程序,现在我们只需要bash程序即可。
5、具体操作过程
5.1、添加硬盘比如:sdb,我们需要在它上面创建grub系统、/系统、用户空间系统,需要一个boot分区(gurb根分区),一个根分区,一个swap分区
5.2、分区:sdb1(200m,boot),sdb2(1g,swap),sdb3(2g,/)

  [root@HFJ ~]# blkid |grep sdb
    /dev/sdb1: UUID="39d0d94e-af55-4487-aecd-4810d05c3461" TYPE="ext4" 
    /dev/sdb2: UUID="a2595e8d-4446-4de7-8973-d51d3a41e98d" TYPE="swap" 
    /dev/sdb3: UUID="a5848241-e8be-4580-8b18-d7c9392215cd" TYPE="ext4" 
    [root@HFJ ~]# lsblk /dev/sdb
     NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
     sdb      8:16   0     5G  0 disk 
     ├─sdb1   8:17   0 203.9M  0 part 
     ├─sdb2   8:18   0     1G  0 part 
     └─sdb3   8:19   0   3.8G  0 part 

5.3、在sdb上安装grub,grub根分区sdb1

    [root@HFJ ~]# mkdir /mnt/boot
    [root@HFJ ~]# mount /dev/sdb1 /mnt/boot
    [root@HFJ ~]# grub-install --root-directory=/mnt  /dev/sdb
    Installation finished. No error reported.
    This is the contents of the device map /mnt/boot/grub/device.map.
    Check if this is correct or not. If any of the lines is incorrect,
    fix it and re-run the script `grub-install'.

   (fd0)	/dev/fd0
   (hd0)	/dev/sda
   (hd1)	/dev/sdb
   (hd2)	/dev/sdc

5.4、编辑grub.conf

  [root@HFJ grub]# cat grub.conf 
    default=0
    time=5
    title redhat(express)
    root=(hd0,0)
    kernel /vmlinuz ro root=/dev/sda3 init=/bin/bash
    initrd /initramfs.img

5.5、拷贝内核文件和ramfs文件到grub根目录

     [root@HFJ grub]# cp  /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/boot/vmlinuz
     [root@HFJ grub]# cp  /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/boot/initramfs.img

5.6、创建系统根目录

  [root@HFJ grub]# mkdir /mnt/sysroot
    [root@HFJ grub]# mount /dev/sdb3 /mnt/sysroot
    [root@HFJ grub]# cd /mnt/sysroot
    [root@HFJ sysroot]# mkdir -pv bin  boot  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  sys  tmp  usr  var
    [root@HFJ sysroot]# ls
    bash  bin  boot  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  sys  tmp  usr  var

5.7、拷贝bash程序、拷贝bash程序,需要拷贝所依赖的库文件

 [root@HFJ sysroot]# cp /bin/bash  /mnt/sysroot/bin/
 [root@HFJ sysroot]# ldd /bin/bash
 linux-vdso.so.1 =>  (0x00007fffe85ff000)
 libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f203f50d000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00007f203f309000)
 libc.so.6 => /lib64/libc.so.6 (0x00007f203ef74000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f203f73b000)
 拷贝以上库文件到/mnt/sysroot/lib64

6、挂sdb对应的虚拟硬盘到新建的虚拟机上测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值