设为首页 收藏本站
查看: 657|回复: 0

[经验分享] 在vmware中以redhat系统为基础构建小型linux

[复制链接]

尚未签到

发表于 2018-5-12 13:20:38 | 显示全部楼层 |阅读模式
  
vmware
中以
redhat
系统为基础构建小型
linux

在做这个小玩意之前,我们一起去看下这样一篇文章: Linux 操作系统启动流程以及trouble shooting。以及一篇比较易懂的文章:剖析Linux系统的启动过程
1、准备磁盘。
a)   关闭或者挂起vmware下的redhat系统在原有redhat系统上创建一个新的磁   盘,为了方便以后的使用,对与这个磁盘的存放方式我们采用单独的文件,存放到一个容易找到的地方比如在D:\vm\SingleDisk 大小:10G
b)   启动vmware下的redhat系统。在此系统下对新添加的磁盘进行操作:
i.     在命令行下输入{fdisk -l}来查看磁盘信息,我们会看到多出一块大小为10G左右的硬盘。
ii.  为这个硬盘(sdb)添加第一个分区,不必太大,100M足以。这里我们使用传统的配置方式:1fdisk /dev/sdb  你会看到这样的一句Command (m for help): 输入m,在出现的列表里面 nadd a new partition 表示添加一个新的分区,我们输入n之后会出现e extended (表示扩展分区); p primary partition (1-4)(表示主分区),其中(1-4)是主分区的分区号。为什么是1-4呢?因为在每个磁盘下最多能创建4个主分区。这个问题在这里不做深究。我们输入p ,接下来出现的是分区号的选择Partition number (1-4):  我们输入阿拉伯数字1,表示创建一个分区号为1的主分区。此时按下回车键,表示采用default value
       而后输入 +100M ,按下enter键。最后输入w (表示写入write
iii. #partprobe  à磁盘探测,不运行这个命令,在接下来,对新建的分区进行格式化#mkfs –t ext3/dev/sda2 的时候,你会发现 出现了这样的一句---Could not stat /dev/sda2 ---nosuch file or directory
iv.  接下来我们要对新建的分区进行格式化。采用命令mkfs -t ext3 /dev/sdb1 mkfsmake file system),-ttype), ext3(这个是系统的文件类型), /dev/sdb1(我们在sdb上创建的第一个分区)
2,、安装grub,并配置/boot/grub/grub.conf文件。
       GrubgrubGRand Unified Bootloader的缩写
它可以载入操作系统的内核和初始化操作系统
    我们知道linux对硬件的管理是以文件的形式进行的,所以在grub的安装之前,我们还要进行磁盘挂载。否则grub是没办法安装到硬盘的第一个分区(sdb1)上去的我们执行:
#mkdir /mnt/boot  
#mount /dev/sdb1 /mnt/boot
#grub-install --root-directory=/mnt /dev/sdb1
上述三条命令执行完毕后,我们cdchange directory)到/mnt/boot/目录下,然后执行lslist),这时我们可以看到lost+found目录和grub目录。lost+found目录的出现表示我们建立的分区是正常的,grub目录的出现表示我们的grub安装是正常的。
我们在/mnt/boot/grub/目录下创建grub.conf文件
#vim grub.conf
default=0  à这个跟title相对应,title可以有多个,0表示第一个title
timeout=5  à超时时间,有多个title时给用户的选择时间
title MyLinux
      root (hd0,0)  à 根,表示grub所使用的根即将hd0,0设置访问系统启动文件的起始点
      kernel /vmlinuz ro root=/dev/sda2   à指定内核文件和系统根目录。为什么能够直接访问/vmlinz文件,在文章开头我们说过grub的作用是载入操作系统的内核并初始化操作系统,所有我们有理由相信grub是可以直接     读取硬盘分区的
       initrd /initrd.gz    àLinux® 初始 RAM 磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd 文件中包含了各种可执行程序和驱动程序, 它们可以用来挂载实际的根文件系统,然后再将这个initrd RAM 磁盘卸载,并释放内存。如果你想对initrd文件有更进一步的了解请参看IBMinitrd文件的解释
#sync  à同步磁盘数据
#cd /boot/ à切换到redhat系统的/boot目录下并察看目录下的内容 #ll –ls
一、复制内核文件到/mnt/boot目录下,重命名为vmlinz
       #cp /boot/vmlinuz-2.6.18-164.el5 ./vmlinz
二、复制initrd文件到/mnt/boot目录下。
       在使用这个文件之前,我们还需要对其做些小的修改
#cp initrd-2.6.18-164.el5.img /tmp  à-2.6.18-164.el5这些跟版本号有关,我们可以不保留.
#cd /tmp
#mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.gz
#gzip -d initrd-2.6.18-164.el5.img.gz
#mkdir linux
#cp initrd-2.6.18-164.el5.img linux/
#cd linux
#cpio -id < initrd-2.6.18-164.el5.img  &agrave;-i”表示从哪里读入<”表示输入重定向
#vim init
    将倒数第7行改为
#mkrootdev –t ext3 –o defaults ,ro /dev/sda2         &agrave;这里出现了sda2,我们还没有建立这个分区
     保存退出
#rm initrd-2.6.18-164.el5.img      
       /tmp/linux目录下进行封装:
#find . | cpio –o –H newc –quiet | gzip -9 > /mnt/boot/initrd.gz  &agrave;找到/tmp/linux目录下所有的文件,用cpio进行打包后进行gzip 然后输出重定向为/mnt/boot目录下的initrd.gz件。
       现在我们创建第二个分区并将其挂载到/mnt/sysroot目录
#echo '
>n
>P
>2
>
>+512M
>w ' | fdisk /dev/sdb &> /dev/null
#partprobe             &agrave;磁盘探测
#mkfs –t ext3 /dev/sdb2  &agrave;sdb2进行格式化
#mkdir /mnt/sysroot             &agrave;/mnt目录下创建sysroot目录
#mount /dev/sdb2 /mnt/sysroot  &agrave;/dev/sdb2 挂载到目录/mnt/sysroot目录下
       接下来我们对系统运行所必需的文件进行简单的配置:
#cd /mnt/sysroot &agrave;我们切换到/mnt下的sysroot目录下进行下面将要进行的操作!
#cp /sbin/init sbin/ &agrave;init的运行需要inittab所以我们在/mnt/sysrootmkdir etc
#mkdir etc然后创建inittab文件
#vim etc/inittab  &agrave;这是在/mnt/sysroot 目录下进行的
       添加如下内容:
id:3initdefault:
si::susinit:/etc/rc.d/rc.sysinit
       保存退出
       在这里我们看到了一个PATH /etc/rc.d/rc.sysinit 在这里我们从名称上对rc.sysinit进行解读rc &agrave; run command ; sysinit &agrave;系统初始化  所以我们可以得到的信息是,这可能是一个系统初始化脚本,他的确是一个system initialize run command简称rc.sysinit
       我们的小系统还没有这个脚本,所以我们要自己制作一个。
       制作/etc/rc.d/rc.sysinit脚本
#mkdir etc/rc.d
vim etc/rc.d/rc.sysinit
       添加如下内容:
#!bin/bash
echo –e \tMyLinux 如果系统可以成功启动,你可以看到MyLinux这几个字
/bin/bash
       保存退出!
#chmod +x etc/rc.d/rc.sysinit   &agrave;添加执行权限
       因为系统内核是没有bash的执行条件的,所以我们要自己建立bash的运行环境。
       复制/bin/bash/mnt/sysroot目录下
#mkdir bin
#cp /bin/bash bin/
#ldd /bin/bash &agrave;查看bash程序运行所需要的库文件
#mkdir lib   &agrave;同样也是/mnt/sysroot/目录下的操作,lib:library的简称
#cp /lib/libtermcap.so.2 lib/
#cp /lib/libdl.so.2 lib/
#cp /lib/libc.so.6 lib/
#cp /lib/ld-linux.so.2 lib/
#ldd /sbin/init  &agrave;察看init运行所要的库文件
#cp /lib/libsepol.so.1 lib/
#cp /lib/libselinux.so.1 lib/
   到此为止,我们的准备工作已经完成了,下面我们在虚拟机上新建一个系统,需要注意的地方是
           1install from 我们选择最后那个,I will install the operating system later
           2、内存的选择。不要太大,512M
           3、磁盘的选择    Use an existing virtual disk 接下来就是选择开始时创建的第二块硬盘,我们的位于D:\vm\SingleDisk目录下
注意:
在你启动新建系统前,需要挂起或者关闭宿主机,也就是前面我们操作的那台机器,因为一个正在被使用的硬盘是无法再另一个系统下被使用的。
附加:
#grub-md5-crypt
创建md5加密的密码 当你需要加密的时候用的着的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-459155-1-1.html 上篇帖子: REDHAT6.1环境下的tomcat部署 下篇帖子: linux视频教程之Linux(RedHat9)内核的升级
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表