Linux——系统安装

以Red Hat公司的社区版Linux——CentOS 6.x为例讲解。

1、虚拟软件VMware应用

简单来说,VMware可以使你在一台计算机上同时运行多个操作系统(如Windows、Linux、FreeBSD同时运行)。在计算机上直接安装多个操作系统,同一个时刻只能运行一个操作系统,切换需重启才可以;而Vmware可以同时运行多个操作系统,可以像Windows应用程序一样来回切换。虚拟机系统可以如同真实安装的系统一样操作,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或连接到互联网。

在虚拟机系统中,每一台虚拟产生的计算机都被称为“虚拟机”,而用来存储所有虚拟机的计算机则被称为“宿主机”。例如,你的计算机的Windows即宿主机,而VMware安装的Linux则为虚拟机。

使用虚拟机软件VMware还有以下两点好处:

  • 减少因安装Linux系统而导致的数据丢失:我听说过太多的新手,无知者无畏地尝试安装Linux系统,从而导致原有的Windows系统被破坏,甚至硬盘数据丢失。使用VMware则不需要担心这个问题,在虚拟机系统上所做的任何操作,包括划分硬盘分区、删除或修改数据等,都是在虚拟硬盘中进行的,无论怎么折腾,最坏的结局不过就是重装虚拟机的系统而已。初学Linux的,千万不要在公司的服务器上做实验;而在虚拟机中则百无禁忌,可以大胆练习、随意尝试。
  • 可以方便地体验各种系统进行学习或测试:在同一台计算机上,可以通过VMware安装多个操作系统,你的计算机上就通过VMware安装了CentOS、Windows、Solaris、Ubuntu等操作系统,方便体验各种不同的操作系统,测试操作系统平台迁移等也非常方便。如果你只有一台计算机,那么学习Linux无法做一些需要多台主机的网络实验。有了VMware就可以解决这个问题,用虚拟机和宿主机进行网络通信、文件共享,和真实的网络操作一样!在硬件配置较高的情况下,还可以同时启动两三个甚至更多个虚拟机系统,进行虚拟机系统之间网络应用方面的实验。更多的惊喜是,如果你想玩玩Linux的RAID或LVM等需要多块硬盘的服务,或者想体验一下双CPU的设置、想试试在Linux下添加双网卡,则通过VMware添加虚拟硬件都可以实现。

VMware官方网站:http://www.vmware.com

推荐使用版本:VMware Workstation Pro或VMware Workstation Player。其中,Player版本推荐个人用户使用,非商业用途,是免费的。

使用VMware虚拟机软件的计算机硬件配置要达到要求,否则虚拟机运行速度会很慢,甚至不能运行。理论上,配置越高越好。现在主流的计算机配置都可以达到运行VMware的要求,千万不要用多年珍藏的老古董来运行VMware,你会发现耐心并不是你的美德。再者,VMware只是工具,没必要追求最新版本,能用即可。

1.1、选择驱动

选择“新CD/DVD(IDE)”可以选择光驱配置。如果选择“使用物理驱动器”,则虚拟机会使用宿主机的物理光驱;如果选择“使用ISO映像文件”,则可以直接加载ISO映像文件,单击“浏览”按钮找到ISO映像文件位置即可,如下图所示:
在这里插入图片描述

1.2、设置网络类型

在这里插入图片描述
VMware提供的网络连接有5种,分别是“桥接模式”“NAT模式”“仅主机模式”“自定义”和“LAN区段”。

  • 桥接模式:相当于虚拟机的网卡和宿主机的物理网卡均连接到虚拟机软件所提供的VMnet0虚拟交换机上,因此虚拟机和宿主机是平等的,相当于一个网络中的两台计算机。这种设置既可以保证虚拟机和宿主机通信,也可以和局域网内的其他主机通信,还可以连接Internet,是限制最少的连接方式,推荐新手使用。
  • NAT模式:相当于虚拟机的网卡和宿主机的虚拟网卡VMnet8连接到虚拟机软件所提供的VMnet8虚拟交换机上,因此本机是通过VMnet8虚拟网卡通信的。在这种网络结构中,VMware为虚拟机提供了一个虚拟的NAT服务器和一个虚拟的DHCP服务器,虚拟机利用这两个服务器可以连接到Internet。所以,在正常情况下,虚拟机系统只要设定自动获取IP地址,就能既和宿主机通信,又能连接到Internet了。但是这种设置不能连接局域网内的其他主机。
  • 仅主机模式:宿主机和虚拟机通信使用的是VMware的虚拟网卡VMnet1,但是这种连接没有NAT服务器为虚拟机提供路由功能,所以仅主机网络只能连接宿主机,不能连接局域网,也不能连接Internet网络。
  • 自定义网络:可以手工选择使用哪块虚拟机网卡。如果选择Vmnet1,就相当于桥接网络;如果选择VMnet8,就相当于NAT网络。
  • LAN区段:这是新版VMware新增的功能,类似于交换机中的VLAN(虚拟局域网),可以在多台虚拟机中划分不同的虚拟网络。

以上对于VMware网络的描述,读者看完了可能会有点困惑。简单总结一下:在VMware安装好后,会生成两个虚拟网卡——VMnet1和VMnet8(在Windows系统的“网络连接”中可以查看到),如下图所示:
在这里插入图片描述
其中常用设置为:一种情况是需要宿主机的Windows和虚拟机的Linux能够进行网络连接,使用“桥接模式”(桥接时,Linux也可以访问互联网,只是虚拟机需要配置和宿主机Windows同样的联网环境);另一种情况是需要宿主机的Windows和虚拟机的Linux能够进行网络连接,同时虚拟机的Linux可以通过宿主机的Windows连入互联网,使用“NAT模式”。

2、Linux安装注意事项

2.1、硬盘分区

硬盘分区是使用分区编辑器在硬盘上划分几个逻辑部分,并写入相应的文件系统。硬盘一旦被划分成数个分区,不同类的目录与文件就可以存储进不同的分区。在Linux中,给一块硬盘分区,主要需要4个步骤:分区、格式化、指定设备文件名和挂载。我们一步一步来学习这4个步骤。

2.1.1、硬盘的分区

1)分区的概念:
如果所有数据没有差别地全部胡乱塞入硬盘,那么数据的读取效率会非常低。所以需要先把硬盘分区(也就是把大柜子按照使用的要求分成多个小柜子),这样不同的数据保存到不同的分区中,管理起来效率就会更高。
在这里插入图片描述
2)硬盘分区的类型:
可是硬盘当中分区到底可以分多少个呢?最开始的时候,硬盘分区只有一种类型,就是主分区,但是由于MBR(主引导记录)中只保留了64 Byte存储空间,而每个分区要用16 Byte,所以一块硬盘只能分成4个主分区。当硬盘很小的时候,4个主分区足够使用;但是随着硬盘容量的不断增加,4个分区已经不能满足我们的工作需要。这时为了分配更多的分区,就出现了扩展分区和逻辑分区。

  • 主分区。由于MBR的限制,最多只能分配4个主分区。
  • 扩展分区。扩展分区在一块硬盘上只能有1个,而且扩展分区和主分区是平级的,也就是说,主分区加扩展分区最多只能有4个。扩展分区不能直接写入数据,也不能格式化,需要在扩展分区中再划分出逻辑分区才能使用。
  • 逻辑分区。逻辑分区是在扩展分区中再划分出来的。在Linux系统中,IDE硬盘最多有59个逻辑分区(加4个主分区最多能识别63个分区),SCSI硬盘最多有11个逻辑分区(加4个主分区最多能识别15个分区)。

这三种分区可以用下图表示。
在这里插入图片描述

在上图中,分区1、2、3是主分区,分区4是扩展分区,而分区5和6是逻辑分区。扩展分区不能写入数据,也不能格式化,唯一的作用就是包含逻辑分区。大家可以理解为柜子4是一个大柜子,这个柜子不能放文件,只能在里面套小柜子(逻辑分区)。

2.1.2、格式化

分区有了,就可以向里面存储数据了吗?当然不是。我们还用柜子来说明,大柜子分成了小柜子就能放文件了吗?还是不行,柜子当然要打入隔断,才能放入数据,如下图所示:
在这里插入图片描述
对柜子来讲,格式化就是打入隔断;对硬盘来讲,格式化的目的是写入文件系统。很多人认为格式化是为了清空数据,这个概念是错误的。目前常见的文件系统有以下几种:

  • ext3文件系统:ext2文件系统的升级版本,带日志功能,支持最大16TB的分区和最大2TB的文件(1TB=1024GB=1024×1024MB)。
  • ext4文件系统:ext3文件系统的升级版,向下兼容ext3文件系统,支持无限量子目录,支持最大1EB(1EB=1024PB=1024×1024TB)的分区和最大16TB的文件。这是CentOS 6.x默认的文件系统。
  • fat32文件系统:早期Windows的文件系统,支持最大32GB的分区和最大4GB的文件。
  • NTFS文件系统:现在Windows的主流文件系统,比fat32更加安全、速度更快,支持最大2TB的分区和最大64GB的文件。

把硬盘当成柜子,格式化就是按照文件系统的要求,把分区分成等大小的数据块(默认是4KB)。可以理解为将小柜子分成等大小的抽屉,并在柜子门上贴上标签,标签上写明每个文件的索引号、访问时间、权限、数据保存在哪个抽屉中等信息。硬盘有了这样的隔断,才可以真正地保存数据。不过在写入文件系统的时候,会顺带清空分区中的数据,就像给柜子打隔断,当然要先取出柜子内的所有文件一样。

2.1.3、指定设备文件名

在Windows中,在硬盘分区并格式化之后,只要分配盘符就可以使用了。而在Linux中,还需要给分区分配一个设备文件名。Linux中所有的硬件都被当成一个文件来对待,分区当然也是文件。既然是文件,当然就有文件名,不过我们把硬件的文件名称作设备文件名。分区的设备文件名有固定的命名方式。常见的设备文件名如下表所示:
在这里插入图片描述

2.1.4、挂载

在Linux中的挂载,大家就可以当成Windows中的分配盘符,只不过Windows的盘符是C、D、E等字母,而Linux的盘符是目录。在Linux中把盘符称为挂载点。这是分区的最后一步,只要给分区分配了挂载点,就可以正常使用分区了。

1、Linux基础分区

Linux系统安装必须划分的分区有两个:一个是根分区“/”,根分区当然越大越好;另一个是虚拟内存分区“swap”。

swap分区的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap分区中,等到那些程序要运行时,再从swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行swap分区交换。其实,swap分区的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整swap分区,有时可以越过系统性能瓶颈,节省系统升级费用。

现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其他程序的干扰。计算机用户经常会遇到这种现象:在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了swap分区中。因此,一旦该程序被放置到前端,它就会从swap分区中取回自己的数据,将其放进内存,然后接着运行。需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到swap分区中(如果这样做,swap分区就会不堪重负),有相当一部分数据被直接交换到文件系统中。例如,有的程序会打开一些文件,对文件进行读/写(其实每个程序至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到swap分区中了,而可以直接将其放到文件中。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为当下次需要时,可直接从文件系统中恢复;如果是写文件操作,那么只需将变化的数据保存到文件中,以便恢复。分配太多的swap分区会浪费硬盘空间,而swap分区太小,如果系统的物理内存用完了,系统就会运行得很慢,但仍能运行;如果swap分区用完了,系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果swap分区用完了,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此,swap分区的分配是很重要的。

通常情况下,swap分区应大于或等于物理内存的大小,一般官方文档会建议swap分区的大小应是物理内存的2倍。但现在的服务器动不动就是16GB/32GB内存,是不是swap分区也要扩大到32GB/64GB?其实,大可不必。根据服务器实际负载、运行情况及未来可能的应用来综合考虑swap分区的大小即可,如桌面系统,则只需要较小的swap分区;而服务器系统,尤其是数据库服务器和Web服务器,则对swap分区要求较高。我们推荐的swap分区设置如下:

  • 4GB或4GB以下内存的系统,最少需要2GB swap分区。
  • 大于4GB而小于16GB内存的系统,最少需要4GB swap分区。
  • 大于16GB而小于64GB内存的系统,最少需要8GB swap分区。
  • 大于64GB而小于256GB内存的系统,最少需要16GB swap分区。

swap分区设置过大只是对硬盘空间的浪费,而对系统性能不会产生太大的影响。

2、Linux的常用分区

除根分区和swap分区外,其他Linux目录也可单独划分出来的分区如下:

  • /boot:存放Linux系统启动所需文件。我们建议给/boot单独分区,分配200MB空间。任何系统启动都需要一定的空闲空间,如果不把/boot单独分区,那么,一旦根目录写满,系统将无法正常启动。
  • /usr:存放Linux系统所有命令、库、手册页等,类似Windows系统引导盘C盘的Windows目录。
  • /home:存放用户宿主目录,用于存放用户数据。

其他应用分区,如专门划分一个分区“/web”用于存放Web服务器文件;或者创建一个用于本地和远程主机数据备份的分区“/backup”;初学者创建一个专门用于练习的分区“/test”……都可以视服务器需求来决定。

3、不能单独分区的目录

不过大家需要小心,并不是所有目录都可以单独分区的,有些目录必须和根目录(/)在一个分区中,因为这些目录是和系统启动相关的,如果单独分区,系统就无法正常启动。这些目录有如下几个:

  • /etc:配置文件目录。
  • /bin:普通用户可以执行的命令保存目录。
  • /dev:设备文件保存目录。
  • /lib:函数库和内核模块保存目录。
  • /sbin:超级用户才可以执行的命令保存目录。
4、Linux的目录结构

Linux是树形目录结构,最高一级目录是根目录(/),根目录下保存一级目录,一级目录下保存二级目录,以此类推,如下图所示:
在这里插入图片描述

Linux系统的每个目录(除不能单独分区的目录外)都可以划分为分区,包括自己手工建立的新目录。它们从Linux层面上看都是根目录的子目录,但是从硬盘层面上看是并列的。也就是说,给“/”分了一个区,也可以给“/home”单独分区,从Linux层面上看“/home”目录是“/”目录的子目录,但是从硬盘层面上看“/home”分区有单独的存储空间,在“/home”下写入的内容会写到不同的硬盘存储空间上,如下图所示:
在这里插入图片描述

简单总结一下Linux硬盘分区的4个步骤:第一步是分区,把大硬盘分为逻辑上的小硬盘;第二步是分区格式化,也就是给分区写入文件系统;第三步是给分区指定设备文件名;第四步是分配挂载点。

在Linux中,我们目前介绍的分区是基本分区方法,这种方法分配的分区大小是不能随意调整的。不过Linux支持更高级的分区方式:逻辑卷管理(LVM)和磁盘阵列(RAID),这两种分区管理方式支持动态调整分区大小。

3、Linux无人值守安装

但如果需要同时部署10台服务器呢?100台服务器呢?……这么多台服务器如果纯手工安装,那么耗费的人力和时间都将非常可怕。怎么解决这个问题呢?采用无人值守安装!简单地讲,无人值守安装就是搭建一台安装服务器,将其他所有未安装的服务器作为客户端,客户端从服务器上下载所需的软件,并安装所有的客户端服务器,客户端服务器只需修改启动顺序为网络启动,就可以从服务器安装。这种安装方式大大简化了运维工程师的工作量,但是服务器端的搭建比较复杂,并不适合初学者使用。

3.1、概念和原理

实现网络安装操作系统,有几个问题需要先明确。第一,既然是网络安装,那么客户端在启动时必须获取IP地址,由谁(DHCP)分配IP地址?第二,由谁(PXE)把客户端启动所必需的软件从服务器端传递到客户端?第三,由谁(KickStart)定义客户端的安装选择?比如选择什么语言?安装什么样的软件包?管理员密码是什么?第四,安装过程已经启动,本地安装是通过光盘或U盘保存安装所需的软件包的,那么网络安装通过谁(HTTP、FTP、NFS)来发送所需的软件包?下面我们一一说明这些问题。

3.1.1、DHCP是什么

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议,它可以使Client端(客户端)从Server端(服务器端)自动获取IP地址、子网掩码、网关及DNS等网络配置信息,从而简化了Client端的配置和操作,是局域网常用服务。

3.1.2、PXE是什么

PXE(Pre-boot Execution Environment)是由英特尔设计的协议,它可以使计算机通过网络启动。协议有Server端和Client端,PXE Client保存在网卡的ROM中,当计算机启动时,BIOS把PXE Client调入内存中执行,然后PXE Client通过网络将放在PXE Server端的启动文件下载到本地运行。注意,PXE Client和PXE Server之间传递数据是通过TFTP协议进行的,所以需要配置TFTP服务器。

3.1.3、KickStart是什么

KickStart是一种无人值守的安装方式。它把安装过程中所有需要人工干预填写的各种参数记录下来,并保存在一个命名为ks.cfg的文件中。如果安装过程中出现需要填写的参数,那么安装程序会从ks.cfg中查找需要的配置。如果ks.cfg文件把所有需要填写的参数都记录完整,那么安装过程中就不需要人为参与,从而实现自动安装。

3.1.4、HTTP、FTP、NFS是什么

HTTP、FTP、NFS都是Linux中文件共享的方式,在这里使用一种就可以了,我们选择HTTP服务。它的主要作用就是把安装过程中所需的软件包发布到网络上(注意:PXE发布的是启动必需文件),Client可以通过网络获取所需的软件包。

3.2、 无人值守安装的条件

(1)在服务器上配置DHCP服务。
(2)在服务器上配置TFTP服务。
(3)在服务器上搭建用来发布安装软件包的服务,如HTTP、FTP或NFS等服务。
(4)在服务器上由KickStart生成ks.cfg自动应答配置文件。
(5)客户机的网卡支持PXE(现在的网卡一般都支持)。
(6)客户机的主板支持网络启动(现在的主板一般都支持)。

相关推荐

  1. linux系统安装Oracle

    2024-01-26 16:12:05       37 阅读
  2. Linux系统安装zookeeper

    2024-01-26 16:12:05       31 阅读
  3. Linux系统安装KafKa

    2024-01-26 16:12:05       32 阅读
  4. linux系统安装docker

    2024-01-26 16:12:05       19 阅读
  5. Linux系统安装ansible

    2024-01-26 16:12:05       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 16:12:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 16:12:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 16:12:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 16:12:05       18 阅读

热门阅读

  1. 全网最全 MySQL EXPLAIN 完全解读

    2024-01-26 16:12:05       29 阅读
  2. Spring和 Springboot的区别你了解吗

    2024-01-26 16:12:05       36 阅读
  3. vue3基础

    2024-01-26 16:12:05       22 阅读
  4. springboot中使用easyExcel读取excel中的内容

    2024-01-26 16:12:05       30 阅读
  5. sql server 查询所有表的记录条数

    2024-01-26 16:12:05       36 阅读