開發--CentOS-7安裝及配置

来源:https://www.cnblogs.com/Kate-liu/archive/2019/07/24/11237845.html
-Advertisement-
Play Games

本文主要進行詳細講解CentOS7.5系統的安裝過程,以及CentOS系統初始化技術。我並不想將這篇文章變成一個教程,儘管我將詳細的進行每一步的講解,enjoy! ...


開發|CentOS-7安裝及配置

本文主要進行詳細講解CentOS7.5系統的安裝過程,以及CentOS系統初始化技術。我並不想將這篇文章變成一個教程,儘管我將詳細的進行每一步的講解,enjoy!

前言

目前所有的文章思想格式都是:知識+情感。
知識:對於所有的知識點的描述。力求不含任何的自我感情色彩。
情感:用我自己的方式,解讀知識點。力求通俗易懂,完美透析知識。

目錄結構

開發|CentOS-7安裝及配置
前言
正文
CentOS下載
    方式一
    方式二
    方式三
下載CentOS版本類型詳解
    特別提醒
CentOS安裝
安裝VMware
    新建虛擬機設備
    安裝CentOS
    配置網卡名字(有坑)
CentOS配置
    安裝常用的應用
    關閉防火牆
    關閉selinux
CentOS系統初始化技術
    Sysvinit技術
    Upstart技術
    Systemd技術
    併發啟動原理
總結
結束語

正文

由於最近需要使用linux系統,所以將這些自己走過的路與踩過的坑都記錄下來,希望有緣人可以用的上。最近我嘗試了很多 Geek technology,感覺很巧妙,後期我會會進行總結並記錄下來,敬請期待。

CentOS下載

方式一

使用國內的aliyun鏡像,下載地址:請猛擊這裡

註意:這裡只可以下載最新版的CentOS,舊版本看方式二。

方式二

這個方式,也就是你在方式一,準備下載的不是最新版本的CentOS版本的時候,提示下載的readme文件,裡面的提示下載舊版本信息的地址:請猛擊這裡

註意:進入對應版本之後,選擇--->/isos--->/x86_64 --->CentOS-7-x86_64-DVD-1804.iso(或者選擇下載種子文件:CentOS-7-x86_64-DVD-1804.torrent,請千萬以及肯定,別告訴我不會使用種子下載文件。。。好吧,請點擊查看教程https://jingyan.baidu.com/article/425e69e60e7488be15fc16ef.html)

方式三

直接一步到位的下載,因為某某原因,很多情況下,最終你都會跳轉到這個地址:請猛擊這裡。直接進行相應的版本選擇下載即可。
註意:其實一開始就可以直接說,在這裡找,一定可以找到你想要的內容,但是這是你第一次找,所以花點時間還是值得的。

下載CentOS版本類型詳解

當我們下載CentOS 7 時會發現有幾個版本可以選擇,如下:
1、CentOS-7-DVD版本:DVD是標準安裝盤,一般下載這個就可以了。
2、CentOS-7-NetInstall版本:網路安裝鏡像。
3、CentOS-7-Everything版本:對完整版安裝盤的軟體進行補充,集成所有軟體。
4、CentOS-7-GnomeLive版本:GNOME桌面版。
5、CentOS-7-KdeLive版本:KDE桌面版。
6、CentOS-7.0-livecd版本:光碟上運行的系統,類擬於winpe

特別提醒

註意CentOS的名字的變化,7版本之後,版本命名就跟發行的日期有關。
CentOS-7 -----> 系統是7.x版本
x86_64 -----> 64 位操作系統,並且從7以後不再提供32位鏡像。
1708 -----> 2017年08月發表的版本

那麼,拋出個問題: CentOS7.5又是怎麼來的呢???(自己想,不要百度。)

CentOS安裝

系統安裝有坑,一定要註意!

安裝VMware

VMware Workstation Pro的安裝,就自己搞定吧!百度一下就夠了 !

新建虛擬機設備

在整個過程中,這個文檔只是將關鍵部分進行了講解,剩下的地方,直接下一步保持預設即可。

1.打開VMware軟體的界面,如下:

2.選擇自定義

3.選擇稍後安裝系統

4.選擇版本

5.目前選擇橋接,這是我第一次使用它。巨坑,大家選擇NAT。

6.進行硬體信息配置

7.選擇自己下載的CentOS系統。

8.準備開始安裝機器

安裝CentOS

1.註意,使用上下鍵選擇,tab鍵使用

2.輸入內容,修改系統的內核,別寫錯了。

3.進行網路的配置

4.可以看到自己修改的內核參數,就是為了改變網卡的名字。

5.進行相關IP的配置

6.預設,啟動使用預設配置

7.更改主機名,並保存

8.更改時區

9.最小化安裝

10.別選做錯了。

11.系統分區

12.自定義分區

13.分三個部分,名字,大小看自己

14.分區結束的確定

15.開始安裝

16.設置root用戶密碼

17.設置的結果

18安裝完成,準備啟動

19.啟動結果頁面

配置網卡名字(有坑)

目前已經將CentOS安裝成功了,現在來看看,為什麼要內核的參數。
歷史版本上,Linux的網路介面名稱為eth0、eth1…,但這些名稱並不一定符合實際的硬體插槽等,這可能會導致不同的網路配置錯誤(例如,自己無意的介面改名引起的禁止介面)。基於MAC地址的udev規則在虛擬化的環境中並不有用,這裡的MAC地址如埠數量一樣無常。

CentOS6/RHEL6 引入了一致和可預測的網路設備命名網路介面的方法。這些特性可以唯一地確定網路介面的名稱以使定位和區分設備更容易,並且在這樣一種方式下,無論是否重啟機器、過了多少時間、或者改變硬體,其名字都是持久不變的。然而,這種命名規則並不是預設在CentOS/RHEL6上開啟。

從CentOS7/RHEL7起,這種可預見的命名規則變成了預設。根據這一規則,介面名稱被自動基於固件,拓撲結構和位置信息來確定。現在,即使添加或移除網路設備,介面名稱仍然保持固定,而無需重新枚舉,和壞掉的硬體可以無縫替換。

經過上面的歷史,6版本,到7版本,從網口名稱eth0到enp5s0/ens33。但是為了使用更順手,所以將網口名字進行更名,也只有直接修改內核才可以根治。並且在7版本,很多命令都開始變化了,ifconfig失蹤了,使用ip命令吧!啊啊哈哈~~
回顧一下修改的方法:在安裝系統的時候配置:修改內核選項,net.ifnames=0 biosdevname=0

CentOS配置

配置,主要講述最關鍵的,也就是一定可以用的上的內容。例如:關閉防火牆,關閉Selinux,安裝常用軟體包(我們使用的是最小化安裝,所以軟體包都是自己配置的,當自己玩伺服器的時候,都是這個流程,需要啥配置啥,不可能啥啥都給你裝上。)。

安裝常用的應用

由於使用的是最小化安裝,所以基本沒啥軟體,自己裝,推薦安裝下麵的wget/vim/lrzsz/telnet/nmap/bash-completion.
bash-completion在7版本裡面是一個好東西,由於7中的很多命令都是很長的,自己在那裡敲,有點傻,多使用tab鍵,進行自動補全,舉個例子,防火牆的那個,這麼長:firewalld.service .
總結:多使用工具,做一個geek。

[root@Web ~]# yum -y install wget vim lrzsz bash-completion telnet nmap
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
。。。。。

關閉防火牆

1.登錄到系統
2.查看防火牆狀態,看 Active: active (running)

[root@Web ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-07-05 04:29:27 CST; 45min ago

Hint: Some lines were ellipsized, use -l to show in full.

3.關閉防火牆,並查看Active: inactive (dead)

[root@Web ~]# systemctl stop firewalld.service
[root@Web ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2019-07-05 05:15:59 CST; 4s ago
     Docs: man:firewalld(1)

Hint: Some lines were ellipsized, use -l to show in full.
[root@Web ~]# 

4.防止開機重啟

[root@Web ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@Web ~]# 

關閉selinux

1.登錄到系統
2.顯示selinux配置信息
輸入命令:cat /etc/selinux/config ,得到下麵的結果:

[root@Web ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

3.使用vim進行修改,不會使用的自己進行百度一下哈 !
如果vim沒有安裝,看到的是下麵的內容:

[root@Web ~]# vim /etc/selinux/config 
-bash: vim: command not found

安裝vim

[root@Web ~]# yum -y install vim
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

修改文件,SELINUX=disabled即可。

[root@Web ~]# vim /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protecte
d. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted


~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
"/etc/selinux/config" 14L, 546C written                            
[root@Web ~]# 

4,查看是否更改成功

[root@Web ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 


[root@Web ~]# 

5.進行設置的生效,setenforce.

[root@Web ~]# getenforce 
Enforcing
[root@Web ~]# setenforce 0
[root@Web ~]# getenforce 
Permissive
[root@Web ~]# 

CentOS系統初始化技術

Sysvinit技術

1.特點:
系統第1個進程(pid=1)為init;
Init進程是所有進程的祖先,不可kill;
大多數Linux發行版的init系統是和SystemV相相容的,被稱為sysvinit。
代表系統:CentOS5與6

2.系統查看進程樹:

[root@kate-centos ~]# pstree
init─┬─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─dbus-daemon
     ├─hald─┬─hald-runner─┬─hald-addon-acpi
     │      │             └─hald-addon-inpu
     │      └─{hald}
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─5*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd───bash
     │      └─sshd───bash───pstree
     └─udevd───2*[udevd]

3.應用場景:
用於伺服器時代。

4.優點:
SysVinit運行非常良好,概念簡單清晰。它主要依賴於Shell腳本。

5.缺點:
①按照一定順序執行,即啟動太慢。
②很容易hang住,fstab與nfs掛載問題

6.未來的趨勢:
個人PC機和移動平臺,需要便捷、快的系統。

Upstart技術

CentOS6採用了Upstart技術代替sysvinit進行引導,Upstart對rc.sysinit腳本做了大量的優化,縮短了系統初始化時的啟動時間。但是CentOS6為了簡便管理員的操作,upstart的很多特性並沒有凸顯或者直接不支持,因此在CentOS6中的服務啟動腳本還是以原來SysV的形式提供的。
But,一個應運而生的技術,卻因為競爭對手太強大,而被淘汰。
代表系統: CentOS6 ,Ubuntu14,從CentOS7,Ubuntu15開始使用systemd

Systemd技術

目前的新系統都會採用的技術(RedHat7,CentOS7,Ubuntu15等);
設計目標是剋服 sysvinit 固有的缺點,提高系統的啟動速度
和 Sysvinit 相容,降低遷移成本;
最主要優點:並行啟動

Pid為1的進程:

[root@Web ~]# ps -ef|head -2
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 04:29 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

併發啟動原理

1.解決 socket 依賴/埠依賴
主要是Systemd技術可以在一開始啟動的時候,預設給某些依賴埠分配埠,讓其順利啟動。
2.採用了D-Bus作為程式之間的通信工具,類似消息隊列,可以緩存信息。
這個就是非同步的概念了,隨著科技的發展,非同步越來越多的被用在底層的程式設計中,這是一個趨勢,並且管道 pipeline 思想在非同步中使用的非常多。
3.解決文件系統依賴:優先啟動要用的文件系統,其餘的文件系統都延遲啟動載入。
這是系統內核的優化,將最需要的文件系統先運行,慢慢的不重要的再開始運行。window的底層也是這麼乾的,win10 開機最快可以達到刷到5秒,回想當年xp哈哈,還沒有閃到圖標,還沒有開始讀進度條呢~~~

總結

Sysvinit技術是完全的串列啟動,速度讓人捉急,一旦卡主就卡機了~
Upstart技術想法不錯,但是生不逢時,沒有發展到現在,被淘汰了,開始有同步啟動的思想了,但是還是失敗了
~

Systemd技術,算是最終的勝利者,設計的原理不僅僅是併發啟動,還涉及非同步啟動,最終,還是Systemd技術笑到了最後~~~

結束語

恭喜各位,看完了CentOS基本上最底層最精華的內容,從0到1的過程,還瞭解到了底層的內核工作原理,量很大。希望可以幫助到真正需要的人。

總結:本文從開始的CentOS系統下載到安裝,到後來的安裝各種設置,到後來的配置參數,到後面的系統初始化技術講解。知識量很大,其實醉著我對於geek世界的認識,很多東西都是一個體系,你只是學習一點,是很難有精進的,這是相當可怕的,系統的掌握一些知識,系統的學習很重要。

本文會在後面進行相關補充,文章內容還是比較糙的。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • LinuxShell腳本——迴圈結構 摘要:本文主要學習了Shell腳本中的迴圈結構。 while迴圈 基本語法 while迴圈是最簡單的一種迴圈,如果條件滿足則執行迴圈里的語句,如果條件不滿足則退出迴圈: 註意,在迴圈體命令中必須有相應的語句使得條件“不成立”,只有這樣才能最終退出迴圈,否則就成了 ...
  • 由於銀行對網路有控制,連接銀行虛擬桌面,就不能訪問外網,解決如下: route print 能查看目前的活動路由、添加過的永久路由等信息 route add 10.60.4.10 mask 255.255.255.0 -p 10.60.4.1 route add 192.168.16.9 mask2 ...
  • POSIX線程終止相關函數 線程終止方式 單個線程可以通過3種方式退出,可以在不終止整個進程的情況下,停止線程的控制流。 (1)線程可以直接從啟動常式(也就是線程函數)中返回,即執行return語句,返回值是線程的退出碼。 (2)線程可以被同一進程中的其他線程取消。即其他線程調用pthread_ca ...
  • 一、基本操作 Tab鍵: 自動補全ctrl + u: 清空至行首ctrl + k: 清空至行尾 ctrl + l: 清屏 ctrl + c: 取消本次命令編輯重啟:rebootsystemctl rebootshutdown -rinit 6關機:poweroffsystemctl poweroff ...
  • 參考地址: http://www.111cn.net/sys/CentOS/81133.htm https://www.cnblogs.com/laoxiajiadeyun/p/9943742.html https://blog.51cto.com/liqingbiao/2119953 https: ...
  • "Hadoop集群搭建 05安裝配置YARN" "Hadoop集群搭建 04安裝配置HDFS " "Hadoop集群搭建 03編譯安裝hadoop" "Hadoop集群搭建 02安裝配置Zookeeper" "Hadoop集群搭建 01前期準備" 這一篇接著記錄集群搭建,開始安裝配置zookeepe ...
  • GPS系統中有兩種時間區分,UTC就0時區的時間,CST為本地時間,如北京為早上八點(東八區),UTC時間比北京時晚八小時; CST :China Standard Time,UTC+8:00 中國沿海時間(北京時間) UTC :Universal Time Coordinated 世界協調時間 如 ...
  • [toc] 開機啟動流程 linux啟動流程 centos6 1.內核引導 2.運行init 首先讀取/etc/inittab配置文件 在init中,涉及7個運行級別(runlevel) 查看當前運行的級別 臨時切換運行級別 永久切換運行級別 查看開機自啟服務 CentOS6忘記root密碼或者調整 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...