虚拟机安装Linux方案和操作系统启动流程
虚拟机软件
虚拟机(Virtual Machine)软件是一套特殊的应用程序,它可以作为操作系统独立运行,也可以运行于操作系统之上。若是运行于操作系统之上的虚拟机软件,在一台计算机上安装虚拟机软件后,就可以模拟若干台相对独立的虚拟PC设备,并且可以在每台虚拟的PC设备上安装运行操作系统,运行网络服务,与真实的计算机设备几乎无任何使用差别。
虚拟机软件 | 特点及选择建议 |
---|---|
VMware Workstations | 工作站版虚拟化软件,简单、易用,适合搭建学习环境 |
KVM/Xen Linux | 服务器级的虚拟化软件,适合企业虚拟化应用 |
Virtual PC | Mac平台可用 |
Virtual Box | 开源的虚拟机软件 |
创建虚拟机硬件时,注意内存不要占用宿主机内存过多,最小化安装一般1G即可,若要安装图形界面,最好适当增大内存,硬盘容量8G即可。
虚拟机三种网络模式
-
桥接模式(bridge):与真机处于同一个LAN中,使用VMnet0这块网卡。
- 桥接模式可以简单理解为通过物理主机网卡架设一座桥,从而连入实际的网络中。因此,虚拟机可以被分配与物理主机相同网段的独立IP,所有网络功能和网络中的真实机器几乎完全一样。桥接模式下的虚拟机和网内真实计算机所处的位置是一样的。
-
仅主机模式(host only):虚拟机只能与宿主机以及本宿主机的其他虚拟机通信,不能与外网通信。会创建一块虚拟网卡VMnet1。
-
NAT(Network Address Translation)模式:网络地址转换
- 在NAT模式下,虚拟机的网卡连接到宿主机的VMnet8上。此时系统的VMware NAT Service服务就充当了路由器,负责将虚拟机发送到VMnet8的包进行地址转换之后发送到实际的网络上,再将实际网络上返回的包进行地址转换后通过VMnet8发送给虚拟机。VMware DHCP Service负责为虚拟机分配IP地址。
- NAT网络特别适合于家庭里计算机直接连接网线的情况,当然办公室的局域网环境也是适合的,其优势是不会与其他物理主机IP冲突,且在没有路由器的环境下也可以通过SSH NAT连接虚拟机学习,换了网络环境虚拟机IP等不受影响。
-
VM - 》 VMnet8虚拟路由 - 》 宿主机网卡 - 》真实交换机 -》真实路由器 -》Internet
硬盘分区
-
方案一
常规生产场景(工作)方案,网络集群架构中的某个节点服务器(很多个功能相同的服务器),即数据有多份或者数据不重要的服务器,建议分区方案如下:
/boot:存放引导程序,建议大小是300-500MB
swap: 虚拟内存,1.5-2倍内存大小
工作中:物理内存<8G,SWAP就 内存*1.5
物理内存>8G,SWAP就 8G
/:根,存放所有数据,剩余空间都给根(/usr,/home,/var等分区和/共用一份分区,像Windows的C盘,所有数据和系统文件都放在了一起)
-
方案二
数据库及存储角色的服务器,即有大量重要的数据的业务,建议分区方案如下:
/boot:存放引导程序,建议大小是300-500MB
swap :虚拟内存,1.5-2倍内存大小
工作中:物理内存<8G,SWAP就 8*1.5
物理内存>8G,SWAP就 8G
/:根,50-200G,只存放系统相关文件,网站业务数据不放这里
/data:剩余硬盘空间大小,放数据库及存储重要数据的,data的名称也可以起别的名字。
提示:本方案其实就是把重要数据单独分区,便于备份和管理
-
方案三
大门户网站,大型企业的分区思路
/boot:存放引导程序,CentOS6给200M,CentOS7给200M
swap:虚拟内存,1.5倍内存大小
工作中:物理内存<8G,SWAP就 8*1.5
物理内存>8G,SWAP就 8G
/ :根,50-200G,只存放系统相关文件,网站业务数据不放这里
剩余空间不分区,保留,将来分配给部门,由他们根据需求再分
提示:此方法更灵活,比较适合业务线比较多需求不确定的大企业使用。
安装后的优化
-
1、安装时最好选择最小化安装,后期有需要的软件再安装,这样能节省计算机资源,并且系统更安全。
-
2、更新补丁,一般在初始安装系统后执行此命令,后期不要使用此命令,以防由于软件互相依赖关系导致程序无法正常运行。
[root@localhost ~]# yum update
-
3、升级完成后将当前状态生成快照保存
远程连接
远程连接Linux服务器的常见工具有Xshell、SecureCRT、finalshell、Putty等,其中 最常用的是Xshell、SecureCRT。这些客户端连接工具在Linux服务器对应着相同SSH服务进程sshd,即远程连接都是使用SSH协议,当然它们也支持其他的协议,比如telnet等。
xshell对应的服务端程序openssh-sever(默认22端口)
在Mac操作系统下,用的是iTerm2,下载地址是:https://www.iterm2.com
远程连接失败排错
# 一 测试网络是否哦畅通
1.ping 10.0.0.200 #服务器ip地址
2.是否被拦截了:SElinux,Firewalld #防火墙
3.sshd服务是否开启
命令:telnet 10.0.0.200(ip地址) 22(端口号)
# 二、远程连接失败常见原因
1.ip地址是否正确
2.网卡配置是否正确
3.关闭centos7 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
4.虚拟网络编辑器
NAT模式:子网 IP:10.0.0.0
NAT设置:网关 IP:10.0.0.254
5.VMware服务是否正常启动
VMware 服务是正常运行(WIN搜索服务)
VMware网卡问题,查看本地网络。
Linux系统启动
-
启动第一步--加载BIOS
当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。 -
启动第二步--读取MBR
众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。
系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。 -
启动第三步--Boot Loader
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。
我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。 -
启动第四步--加载内核
根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。 -
启动第五步--用户层init依据inittab文件来设定运行等级
内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:
0:关机
1:单用户模式,不需要输入账号密码登录进操作系统后就是管理员账号
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
关于/etc/inittab文件的学问,其实还有很多#很多Linux系统都默认启动等级为5,如果想切换等级,可使用init命令 init 3 #这样就可以切换到多用户状态且带有网络文件系统了,这种方式对CentOS7也适用。但要修改默认启动级别,CentOS7就同其他版本稍显不同。 #对于传统的设置方法,只要修改/etc/inittab文件即可,将默认的启动级别改为需要改动的级别。 #打开CentOS7的/etc/inittab文件,发现该文件与其他Linux不同: 按照该文件所说,runlevels被targets所取代。其中有两个重要的target: multi-user.target与graphical.target。它们分别表示运行级别中的3与5级别。 #通过systemctl get-default命令可获得默认启动的target #通过systemctl set-default 设置默认启动的target #修改为多用户状态只需执行 systemctl get-default multi-user.target #修改为图形界面执行 systemctl set-default graphical.target
-
启动第六步--init进程(CentOS7是systemd)执行rc.sysinit
在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的 -
启动第七步--启动内核模块
具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。 -
启动第八步--执行不同运行级别的脚本程序
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。 -
启动第九步--执行/etc/rc.d/rc.local
你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:
# This script will be executed after all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。 -
启动第十步--执行/bin/login程序,进入登录状态
此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。