自制一个简易linux

虚拟机添加一块新的硬盘(大小自定义)

在磁盘上创建一个基本分区作为/boot分区(大小200M足够)

再创建一个基本分区作为基本根分区(这里我指定给了5G大小)

然后给分区创建文件系统(注;swap分区要使用mkswap命令

blob.png

blob.png

]# mkdir /mnt/boot 创建挂载点(因为grub只识别/boot目录,所以要创建boot目录)

blob.png

]# mount /dev/sd1 /mnt/boot/ (将刚才创建的第一个分区挂载至/mnt/boot/目录下)

blob.png

]# grub-install –root-directory=/mnt /dev/sde (安装grub并且指明grub根在/mnt/下的boot,boot不指明,它会自己去找)

blob.png

可看到/mnt/boot/生成了grub,grub下生成了stage1,1.5,2等文件

自制一个简易linuxblob.png

]# cp /boot/vmlinuz-2.6.32-642.el6.x86_64 /mnt/boot/ 恢复内核文件

]# cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot/ 恢复initramfs文件

自制一个简易linuxblob.png

]# vim /mnt/boot/grub/grub.conf 编写grub配置文件,写入以下信息

defaullt=0 设定默认启动菜单项

timeout=5 菜单等待选择时间

title CentOS(minix.minix) 菜单名(以下为菜单项需要使用缩进)

root (hd0,0) 指明root为(hd0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64(指明内核文件) ro root=/dev/sda3 指明根文件系统(就是我们刚才分区出来的那块,因为要把这块硬盘放到另外一个系统上,所以刚才分区的/dev/sde3会在新系统上自动识别sda3)selinux=0 (关闭selinux) init=/bin/bash(指定系统的init为/bin/bash)

initrd /initramfs-2.6.32-642.el6.x86_64.img

blob.png

为根创建一级目录

[root@localhost ~]# mkdir /mnt/sysroot 创建根分区挂载点

[root@localhost ~]# mount /dev/sdb2 /mnt/sysroot/ 将根分区挂载

[root@localhost ~]# mkdir -pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media} 创建目录

blob.png编辑自动挂载配置文件

vim /mnt/sysroot/etc/fstab

/dev/sda1 /boot ext4 defaults 1 1

/dev/sda2  /    ext4 defaults 1 2

blob.png

复制bash和相关库文件

cp /bin/bash /mnt/sysroot/bin/

复制相关命令及相关库文件

如:ls,cat,vim,reboot,hostname等

blob.png

]# sync 同步磁盘数据

新建虚拟机使用现有磁盘

blob.png

blob.png

开机可运行



原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/46164

(0)
M20-1马星M20-1马星
上一篇 2016-09-21 01:52
下一篇 2016-09-21 08:11

相关推荐

  • MySQL Order By实现原理分析和Filesort优化

    在MySQL中的ORDER BY有两种排序实现方式: 1、利用有序索引获取有序数据 2、文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。 1.利用有序索引获取有序数据         &…

    Linux干货 2015-04-13
  • Select、Case

    select循环与菜单 select循环主要用于创建菜单,按数字排序list指定的顺序排序,并列出在标准输出,利用PS3列出提示符进行输入选择 用法: select VARIABLE in list  do     循环体命令 done PS3提示语定义: 在脚本中脚本代码的第一…

    Linux干货 2016-08-21
  • Linux命令的别名与管道命令的详解

    Linux中命令的别名与管道命令的详解 命令别名 在使用和维护liunx时,将会使用大量的命令,而一些命令加上参数时输入比较繁琐,此时我们可以定义一个别名来代替繁琐的命令。 系统定义的别名 可以输入 alias 命令查看系统中已经定义好的命令的别名; [root@localhost ~]# alias alias cp=’cp -i’ alias egrep…

    Linux干货 2018-03-03
  • N26 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后…

    Linux干货 2017-01-26
  • Varnish基础进阶

    Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人、朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带…

    Linux干货 2016-04-19
  • linux基础学习-第八天

    2016-08-08 授课内容: 处理文本的工具sed vim编辑器 Shell脚本编程基础介绍 sed:sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),     接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。默认不编辑原文件,仅…

    Linux干货 2016-08-10