歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux入門之一步一步安裝系統

1.1引言

為什麼是Gentoo?

在以往,學習Linux可以從安裝linux系統開始,但是現在Linux系統安裝變得越來越簡單,但是為了學習,我們必須挑一個有點兒挑戰性的linux發行版,Gentoo是一個安裝稍為麻煩的linux發行版本,正好適合我們來學習安裝系統。

Gentoo的安裝基本上是依賴網絡的,因此在安裝前,我們必須保證我們的計算機能連接上網絡。

我們用Vmware虛擬一台計算機來安裝系統,這樣更方便學習和游戲,在Linux下學習,在Windows下游戲,學習游戲兩不誤。


1.2安裝前的准備工作

1. 下載vmware workstation

   可以在這裡下載:http://www.vmware.com/cn/products/workstation/workstation-evaluation

2. 下載gentoo所需要的文件

  1. 啟動計算機所需要的啟動CD
     [點擊下載當前使用的啟動CD](http://distfiles.gentoo.org/releases/x86/autobuilds/20160621/install-x86-minimal-20160621.iso)
  2. stage,stage的文件檔案包含了安裝gentoo的基本環境,linux文件目錄結構。
     [點擊下載當前使用的版本](http://distfiles.gentoo.org/releases/x86/autobuilds/20160628/stage3-i686-20160628.tar.bz2)
  3. portage,是一個軟件文件快照,是gentoo軟件包管理的倉庫目錄
     [點擊下載當前使用的portage](http://gentoo.osuosl.org/snapshots/portage-20160602.tar.bz2)
  4. xshell 為了方便控制虛擬機,我們需要一個終端模擬器,xshell正是我們所需
     [在這裡可以下載到它](http://xshell.en.softonic.com/)

3. 知識點

(1). 我們下載的是基於x86架構的安裝包,在這裡我們可以學習到用什麼來區分架 構,例如:X86,SPARC, MIPS等,這些標識主要是用來區分cpu的指令集的不同體系, 不同型號的cpu有不同的指令集,因此我們選擇安裝包時就需要選擇和cpu指令匹配的包。

(2). 幾乎所有的個人電腦(PC)都是X86(X86_64)的。

(3). 64位和32位的區別是cpu總線的寬度不同,cpu總線又有數據總線、控制總線和地址總線之分,數據總線位數越多代表一次傳輸的數據量越大(吞吐量);地址總線位數越多能訪問到的內存地址就越多(可以支持更大的內存)。

1.3啟動虛擬機

1. 根據vmware新建向導創建新的虛擬機

下圖是光盤映像的選擇,正是我們下載的install CD

光盤映像選擇
圖1.3.1

我選擇了網絡橋接方式,等同於把虛擬機和主機接著同一個集線器般,這樣方便分配IP地址。

網絡選擇
圖1.3.2

完畢
圖1.3.3

2.啟動虛擬機

當出現下圖畫面時,直接按回車.

boot

Install CD裝載預設的內核,返回一個root shell給用戶 。<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="shell" src="http://www.2cto.com/uploadfile/Collfiles/20160701/20160701091804473.png" title="\" />

看到上圖的畫面時,虛擬機啟動已成功,這是一個基於LiveCD的linux系統。

現在輪到Xshell出馬了,不知道你有沒有安裝好了Xshell?

為了使用Xshell,我們得打開LiveCD的sshd服務,還得設置root密碼,LiveCD默認root是空密碼。

我們進入虛擬機,敲入以下命令:

passwd root   #輸入任意能記住的密碼
vi /etc/ssh/sshd_config   #修改sshd配置文件,具體修改看下圖
/etc/init.d/sshd start    #啟動sshd服務

sshd_config配置裡的第44行改為PermitRootLogin yes,允許root通過ssh遠程登入本機

rootpermit

第72行打開PasswordAuthentication yes

passwd

呼叫xshell,建立新連接,具體參考下面圖示:

xshell_add

上圖Name為任意詞,Host請填入虛擬機的IP,可以通過在虛擬機內敲入:

ifconfig
ip

為迎合使用偏好和更顯高大上,xshell可作以下配置:
這裡寫圖片描述
這裡寫圖片描述


1.4 硬盤操作

1. 硬盤操作指的是對硬盤進行格式化和分區。

Linux比較流行的格式是ext3,ext4,xfs,這可以和windows的NTFS,FAT作對比。
EXT3/EXT4/XFS等格式在Linux下稱為文件系統。
我們可以通過Linux提供的工具:FDISK,GDISK等,對硬盤進行分區和格式化。

2. 很多人會覺得這一步有點難,難在使用windows太久了,習慣了windows的設置。

 


Linux文件系統沒有盤的稱呼,它只有一個符’/’, 叫根,樹根的根,它也像樹根一樣,是所有文件的起源。 訪問任何一個Linux文件,它的絕對路徑必定是在’/’開始的。 Linux任何一個常規目錄都可以成為類似於windows的盤符,之所用用常規來形容,是因為有的目錄是比較特殊的,如/dev,是硬件設備掛載目錄,/dev裡面的文件就是系統所能訪問的硬件設備,這也是Linux有別於window的一個地方,Linux把硬件當作一個文件去使用,當你操作(讀寫)硬件時,就像操作文件般簡單。又如/proc, 這是一個內存裡的數據映射的文件的目錄,裡面文件的內容如實反映了當前系統內核的設置,讀寫/proc文件就能和內核實時交互。 硬盤分區後可以隨意掛載在Linux的目錄下,一個成功的掛載方案的前提是:根目錄’/’下面必須有分區掛載。也就是說,如果硬盤只有一個分區,這個分區就必須掛在’/’下面,如果硬盤有兩個分區,除了掛載在’/’下的分區,另外一個分區可以任意掛載到Linux的常規目錄下,例如:/home。 分區的掛載其實就是等於為硬盤分配一個盤符,像windows般, 分區掛載在’/’下面,我們可以稱呼這個分區為’/’盤(根盤),但我建議還是忘掉windows關於盤符這樣的稱呼。 Linux有一個標准去規范文件目錄:Filesystem Hierarchy Standard (FHS),我們暫時只需要知道幾個重要的目錄:

 

(1) / : root根目錄;
(2) /usr : unix software resource, 是Linux軟件安裝和執行的目錄;
(3) /etc : Linux軟件的配置文件目錄

3. fdisk和gdisk都是可以對硬盤進行分區和格式化的工具,怎樣區別這兩個工具呢?

首先,我們要知道,硬盤要有一個表格去記錄:分幾個區?每個區的大小? 於是,就有不同的分區記錄方法,主要是MBR(Master Boot Record)和GPT(GUID partition table) MBR方式只規劃一個很少的空間(64字節)去記錄分區表格,這個空間大小僅能記錄4組分區信息,因此,MBR方式只能把一個硬盤分成4個區,有時候4個區可能不能滿足需求,聰明的人們想出了一種間接記錄的方法,這就有了主分區和擴展(邏輯)分區的稱呼,擴展分區的意思是在分區裡額外擴展出一個空間去記錄硬盤分區表,擴展出來的新的記錄空間就不用受MBR 64byte大小的限制,可以分割出多個邏輯分區。這就是等於先在MBR裡記錄一條信息,指出更詳細的分區表格請到擴展分區的空間查找,這種間接的方法就像C語言的指針。 GPT方式沒有MBR的限制,GPT使用了34個相當於MBR區塊大小的空間,用來記錄分區表格,而且GPT不同於MBR僅有一個區塊被破壞就死翹翹,GPT除了使用硬盤開始的34個區塊記錄分區表格外,還使用了硬盤最後的33個區塊來備份表格。為什麼是33個區塊,不是34個備份區塊? 因為GTP第1個區塊是用來存放開機管理程序的,這也是為了兼容MBR, MBR本身大小是512字節,但是預留了446字節是用來儲存開機程序的。 開機管理程序(boot loader)是存在放硬盤開始的第一(0號)個區塊裡

(1) 為什麼要在第一個區塊呢?當然是為了方便讀取和記憶。

(2) 什麼程序會去讀取boot loader呢? 答案是BIOS,相信大家都認識了,BIOS是寫在主板ROM上的一個程序,只要主板一通電,BIOS就會自動運行。

4. 說了這麼長,那麼FDISK和GDISK有什麼區別?

區別就是FDISK只能認識MBR分區表格
而GDISK認識的是GPT

5. 開始硬盤操作

我們保守一點,采用FDISK對硬盤進行分割。

lsblk #輸入這個命令可以列出當前可系統裡面的存儲設備
lsblk

fdisk /dev/sda #上圖列出的sda,路徑是在/dev下面的
這裡寫圖片描述
這裡寫圖片描述

在下面我把硬盤分割成兩個盤,一個是1024M大小,另一個是39G大小

這裡寫圖片描述

最後按w保存,硬盤分區完成,接下來進行硬盤的格式化

mkfs

上圖中,我使用一個命令,mkfs.xfs 將/dev/sda2格式化為xfs格式, 其中mkfs.xfs可以設置很多參數去改變硬盤的效能,不過我們用預設的參數就已經很理想了,我的計劃是把/dev/sda2掛載在 / 下面。
我再用mkswap 把/dev/sda1格式化成swap格式的分區,這個是用於虛擬內存的,當物理內存不足時,系統會使用這個虛擬內存空間(用硬盤來模擬內存,所以叫虛擬內存)。

直至此,硬盤的分區和格式化完畢,接下來進行Gentoo系統環境的安裝,stage的安裝。

1.5 安裝前序

我們下載一個工具winscp將1.2.2小節提及到的文件傳輸至虛擬機裡
winscp下載

mount /dev/sda2 /mnt/gentoo   #把硬盤sda2這個分區掛載到/mnt/gentoo這個目錄

#然後我們打開winscp將方件偉輸到/mnt/gentoo目錄下

cd /mnt/gentoo           #進入到gentoo目錄,經過硬盤掛載後,/mnt/gentoo目錄相當於硬盤的分區盤符
tar xvf  stage3-i686-20160628.tar.bz2   #解壓stage包,tar命令相當於window的rar,是包管理命令
tar xvf  portage-20160602.tar.bz2 -C /usr 
#安裝Portage快照,一個用來告訴Portage哪些軟件標題可用於安裝、哪些配置文件可以由管理員選擇等等的文件集合。
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf  #選擇鏡像文件
cp -L /etc/resolv.conf /mnt/gentoo/etc/  #復制DNS信息

#下面命令是掛載必要的文件系統
mount -t proc proc /mnt/gentoo/proc 
mount --rbind /sys /mnt/gentoo/sys     #/sys 是和 /proc 類似的文件系統
mount --make-rslave /mnt/gentoo/sys    #--make-rslave操作是稍後安裝systemd支持時所需要的。
mount --rbind /dev /mnt/gentoo/dev     #--make-rslave有綁定掛載的意思
mount --make-rslave /mnt/gentoo/dev    

經過上面的准備(安裝),已經為我們創造了一個新的linux環境,接下來我們就進入這個新的環境

1.6 進入新環境 chroot

現在所有的分區已經初始化,並且基礎環境已經安裝,是時候進入到新的安裝環境了。這意思著會話將把根(所能訪問到的最頂層位置)從當前的安裝環境(安裝CD或其他安裝媒介)變為安裝系統(叫做初始化分區)。因此叫作change root或chroot。

完成chroot有三個步驟:

使用chroot將根位置從/(在安裝媒介裡)更改成/mnt/gentoo/(在分區裡)
使用source命令將一些設置(那些在/etc/profile中的)重新載入到內存中
更改主提示符來幫助我們記住當前會話在一個chroot環境裡面。

chroot /mnt/gentoo /bin/bash   
source /etc/profile           #profile 是系統關於環境參數的變量設定  
export PS1="(chroot) $PS1"    #PS1變量是命令提示字符,就是我們按完enter後再次出現的字符

echo "Asia/Shanghai" > /etc/timezone  #更改/添加時區

# 配置地區 
# 地區不只是指定系統應該使用的與系統進行交互的語言,同時也指定了字符串排序,日期和時間的顯示等規則。

sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen  

#復制上面的命令把/etc/locale.gen文件 en_US.UTF-8 UTF-8 前面的#去掉

locale-gen    #運行locale-gen,它將生成/etc/locale.gen文件中指定的所有地區。
env-update && source /etc/profile && export PS1="(chroot) $PS1"

#執行上面這條命令再次更新系統環境,我們可以通過set這個命令可以查看當前系統環境所有變量

swapon /dev/sda1    #將虛擬內存打開,避免編譯軟件時物理內存不足,造成編譯失敗

通過以上幾步,我們基本完成了gentoo系統的配置,接下來我們進行最重要的一步,那就是安裝kernel,嚴格來說Linux只是一個kernel。


1.7 安裝kernel

沒有kernel,系統就沒法啟動,更不要說運行。可能你會問:我們並沒有安裝kernel,為什麼現在我們可以運行系統? 其實,我們是用了liveCD裡面的kernel,chroot進入的gentoo環境也是因為LiveCD裡有編譯好kernel,也因為有這個kernel,LiveCD才能提供一個miniLinux的環境。

在以往,kernel編譯和安裝是最難的一步,不過在gentoo裡,可以通過genkernel這工具用來自動化生成並安裝Linux內核,簡單到傻瓜化。

1. 下面我們學習一下手動安裝kernel

手動配置內核經常被Linux用戶認為是最困難的步驟。事實並非如此——但是當您手動配置幾次內核之後,你就不會再覺得它有多麼難了:)
無論如何,有一件事是真實的:當手動配置內核時,了解(硬件)系統是至關重要的。大多數信息可以通過安裝包含lspci命令的sys-apps/pciutils來收集:

emerge –ask sys-apps/pciutils #這條命令用來安裝pciutils

除此之外還可以運行lsmod來查看安裝CD使用什麼內核模塊,它可能對啟用什麼提供了一個好的暗示。

首先我們得下載kernel的源代碼:

emerge –ask sys-kernel/gentoo-sources

下面是一個關於內核配置的連接:
內核配置指導

因為Linux內核配置有很多很多的章節,所以在這裡就不再討論了。

2. 真正方便的安裝方法是genkernel all

手動配置的確很麻煩,但通過手動配置無疑能對硬件有更深的認識,亦能初步了解kernel的架構。

genkernel的方法很簡單,它是將所有的硬件驅動,用到的不用到的都編譯成模塊,在系統啟動時動態檢測計算機需要用到的驅動,然後再加載。

emerge --ask sys-kernel/genkernel    #安裝genkernel軟件
genkernel all   #自動編譯和安裝kernel

kernel安裝好後,linux系統算是初步安裝完畢,接下來進行幾項系統配置。

1.8 系統配置

1. /etc/fstab

這個文件是linux系統關於硬盤分區掛載的配置文件
文件記錄分區掛載點(掛在哪個目錄下),分區的格式,分區的掛載屬性(是否可以讀寫)等等

#通過下面的方法編輯/etc/fstab文件,加入我們要掛載的硬盤: 

cat > /etc/fstab <' 的意思是把標准輸出輸入 '>' 後面的文件; '<

2. 網絡信息

nano -w /etc/conf.d/hostname     #nano是一個簡易編輯器,需要按ctrl+x退出

# 設置主機名變量,選擇主機名
nano -w /etc/conf.d/net 

# 復制下面幾行到shell,設置ip地址和路由
cat > /etc/conf.d/net <

3.安裝bootloader

我們在硬盤分區時提到boot loader, 它是用來引導操作系統啟動的,所以boot loader一般是安裝在硬盤的第一塊空間上-MBR,如果以GPT方式記錄分區的,boot loader也是需要安裝到硬盤第一塊區間上的。

Boot loader有很多選擇,針對不同的BIOS,有另一種BIOS叫UEFI(Unified Extensible Firmware Interface),它是配合GPT來使用。不同的BIOS有不同的boot loader選擇,GRUB2支持目前所有的BIOS,所以我們選擇GRUB2 作為系統的Bootloader。

GRUB2安照很簡單,通過下面這條命令就可以完成安裝

emerge –ask sys-boot/grub:2

安裝好GRUB2,需要配置使它能進入工作狀態,下面這條命令是把GRUB2放到MBR的頭部中。

grub2-install /dev/sda

下面的命令則是配置GRUB2的,它會自動尋找編譯好了的kernel,生成配置文件。

grub2-mkconfig -o /boot/grub/grub.cfg

4. 安裝完畢

經過一番折騰,Linux安裝完畢,reboot!

Copyright © Linux教程網 All Rights Reserved