Gentoo安裝配置

Gentoo安裝過程

(一) 磁盤準備

1、硬盤分區(qū)

通過cfdisk分區(qū)工具將硬盤進行分區(qū)操作,總計分為4個區(qū)如下所示

/deve/sda1 efi 分區(qū)

/dev/sda2 swap 分區(qū)

/dev/sda3 root 分區(qū)

/dev/sda4 home 分區(qū)

2、格式化分區(qū)

對已經(jīng)完成分區(qū)的磁盤進行格式化,其中對efi分區(qū)執(zhí)行vfat格式化,root分區(qū)和home分區(qū)分別個是化為ext4格式,創(chuàng)建swap分區(qū)并啟用,具體如下代碼

mkfs.vfat /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4

在完成分區(qū)格式化操作后將掛載/mnt/gentoo分區(qū)到root分區(qū),并在/mnt/gentoo下面創(chuàng)建boot目錄和home目錄并按照之前設置的分區(qū)分別完成掛載操作

mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mkdir /mnt/gentoo/home
mount /dev/sda1 /mnt/gentoo/boot
mount /dev/sda4 /mnt/gentoo/home    

(二) 安裝Gentoo安裝文件

1、安裝階段tar包

(1)時間修改

在之前的安裝過程中由于鏡像自動同步的時間并非是北京時區(qū)的時間因此需要手動修改系統(tǒng)時間,但是新版本的安裝鏡像已經(jīng)自動檢測到了正確的時區(qū)因此不需要對時間進行修改,因此該操作略過,但是如果確有需要修改時間可以通過date命令完成時間修改,如下所示:

date 012523162017   該命令將系統(tǒng)時間設置為2017-01-25 23:16

(2)下載tar包

前往掛載根文件系統(tǒng)的Gentoo掛載點(很像/mnt/gentoo):

cd /mnt/gentoo

根據(jù)不同的安裝媒介,這里有一堆工具可用來下載一個階段。這些工具之一就是links,一個非圖形化、目錄驅動的瀏覽器。要下載一個階段,訪問到Gentoo鏡像列表形如:

links https://www.gentoo.org/downloads/mirrors/

通過links工具軟件選擇相應的源并下載stage3文件,下載完成后將下載文件解壓

tar xvjpf stage3-*.tar.bz2 --xattrs

(3)配置編譯選項

通過對/mnt/gentoo/etc/portage/make.conf文件進行修改配置編譯選項
此處采用nano工具進行編輯操作
其中重點的是對CFLAGS和CXXFLAGS

CFLAGS="-march=native -O2 -pipe"
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"

同時添加MAKEOPTS參數(shù),并針對本機的cpu配置參數(shù)

在make.conf中聲明MAKEOPTS的示例
MAKEOPTS="-j2" 其中2代表1個cpu+1(1個線程+1)

自此完成了gentoo安裝文件的安裝操作

(三) 安裝Gentoo基本系統(tǒng)

本部分完成Gentoo的基本系統(tǒng)的安裝操作

1、執(zhí)行Chrooting

通過配置一些可選參數(shù)實現(xiàn)進入安裝的基本系統(tǒng)應用環(huán)境

(1)配置鏡像站點

通過配置系統(tǒng)軟件下載的鏡像站點實現(xiàn)更快的軟件下載和更新,本處跟之前類似均選擇163鏡像源

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

通過該命令將選擇的鏡像源寫入make.conf配置文件
完整鏡像選擇后完成Gentoo主倉庫的配置
通過/etc/portage/repos.conf/gentoo.conf文件來配置Gentoo的主倉庫。這個文件包含了更新Portage樹(包含Portage需要下載和安裝軟件包所需要的信息的一個ebuild和相關文件的集合)所需要的同步信息。通過幾個簡單的步驟就可以完成Gentoo主倉庫的配置。首先,如果它不存在,則創(chuàng)建repos.conf目錄

mkdir /mnt/gentoo/etc/portage/repos.conf

接下來,復制Portage提供的Gentoo倉庫配置文件到這個(新創(chuàng)建的)目錄:

cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

通過使用cat命令來看一眼。文件里的內(nèi)容應該是.ini格式并且看起來像是這樣:

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes

(2)復制DNS信息

在進行新環(huán)境之前,還有一件要做的事情就是復制/etc/resolv.conf中的DNS信息。需要完成這個來確保即使進入到新環(huán)境后網(wǎng)絡仍然可以使用。/etc/resolv.conf包含著當前網(wǎng)絡中的DNS服務器。
要復制這個信息,建議通過cp命令的-L選項。這可以保障如果/etc/resolv.conf是一個符號鏈接的話,復制的是那個目標文件而不是這個符號文件自己。否則在新環(huán)境中,符號文件將指向一個不存在的文件(因為鏈接目標非常可能不會在新環(huán)境中)。

cp -L /etc/resolv.conf /mnt/gentoo/etc/

(3)掛載必要的文件系統(tǒng)

為了確保新環(huán)境正常工作,需要確保一些文件系統(tǒng)可以正常使用。需要提供的文件系統(tǒng)是:

  • /proc/ 一個pseudo文件系統(tǒng)(看起來像是常規(guī)文件,事實上卻是實時生成的),由Linux內(nèi)核暴露的一些環(huán)境信息
  • /sys/ 一個pseudo文件系統(tǒng),像要被取代的/proc/一樣,比/proc/更加有結構
  • /dev/ 是一個包含全部設備文件的常規(guī)文件系統(tǒng),一部分由Linux設備管理器(通常是udev)管理

/proc/位置將要掛載到/mnt/gentoo/proc/,而其它的兩個都是綁定掛載。字面上的意思是,例如/mnt/gentoo/sys/事實上就是/sys/(它只是同一個文件系統(tǒng)的第二個條目點),而/mnt/gentoo/proc/是(可以說是)文件系統(tǒng)的一個新的掛載。
具體操作命令如下

mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

(4)進入新系統(tǒng)環(huán)境

現(xiàn)在所有的分區(qū)已經(jīng)初始化,并且基礎環(huán)境已經(jīng)安裝,是時候進入到新的安裝環(huán)境了。這意思著會話將把根(所能訪問到的最頂層位置)從當前的安裝環(huán)境(安裝CD或其他安裝媒介)變?yōu)榘惭b系統(tǒng)(叫做初始化分區(qū))。因此叫作change root或chroot。
完成chroot有三個步驟:

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

具體命令如下:

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

2、配置Portage

(1)安裝Portage快照

接下來,是安裝Portage快照,一個用來告訴Portage哪些軟件標題可用于安裝、哪些配置文件可以由管理員選擇等等的文件集合。建議使用emerge-webrsync。這將從Gentoo的一介鏡像中得到最新的Portage快照(Gentoo每天發(fā)布一個基準)并安裝到系統(tǒng)中。

(2)可選:更新Portage樹

Portage樹可以更新到最新版本。前面的emerge-webrsync命令將安裝一個最近的Portage快照(通常是24小時以內(nèi)),所以這一步是可選的。
假設需要最新更新的包(1小時以內(nèi)),可以使用emerge --sync。這和s命令將使用rsync協(xié)議來更新Portage樹(之前通過emerge-webrsync獲得的)到最新狀態(tài)。

emerge --sync

在慢速的終端上,比如一些framebuffer或者串口控制臺,建議使用--quiet選項來加速這個進程:

emerge --sync --quiet

(3)閱讀新聞條目

當同步Portage樹到系統(tǒng)時,它可能警告用戶一條類似于下面的信息:

Portage通知用戶關于新聞條目
* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Portage新聞條目的創(chuàng)建是為了提供一個通信媒介,通過rsycn樹來推送重要的消息給用戶。要管理它們,使用eselect news。eselect應用程序是一個Gentoo應用程序,它允許一個通用的管理界面完成對系統(tǒng)的變更和操作。在這里,要用到eselect的news模塊。
對于news模塊,最常用的有三個操作:

  • 使用list顯示一個可用新聞條目的預覽。
  • 使用read來閱讀新聞條目。
  • 使用purge將在新聞條目閱讀后刪除,并且不能再次閱讀。
eselect news list
eselect news read

更多關于新聞閱讀器的信息可以通過其手冊頁查看:

man news.eselect

(4)選擇正確的配置文件

配置文件是任何一個Gentoo系統(tǒng)的積木。它不僅指定USE、CFLAGS和其它重要變量的默認值,還會鎖定系統(tǒng)的包版本范圍。這些設定全是由Gentoo的Portage開發(fā)者們來維護。
使用eselect,你能看到當前系統(tǒng)正在使用什么配置文件,現(xiàn)在來使用profile模塊:

root #eselect profile list
Available profile symlink targets:
[1]   default/linux/amd64/13.0 *
[2]   default/linux/amd64/13.0/desktop
[3]   default/linux/amd64/13.0/desktop/gnome
[4]   default/linux/amd64/13.0/desktop/kde

這只是一個示例,根據(jù)個人的情況選擇需要的,使用如下命令選擇

eselect profile set 2

由于我要安裝kde5桌面,也就是plasma桌面并且要使用systemd作為初始化腳本,因此需要配置一下package.use文件

具體命令如下

echo "media-video/ffmpeg cpu_flags_x86_mmxext" > /etc/portage/package.use/ffmpeg

(5)更新@world集合

在完成了各項配置后為了是配置生效需要更新world集合尤其是采用systemd作為啟動腳本管理,具體命令如下

emerge --ask --update --deep --newuse @world

3、時區(qū)配置

為系統(tǒng)選擇時區(qū)。在/usr/share/zoneinfo/中查找可用的時區(qū),然后寫進/etc/timezone文件。

ls /usr/share/zoneinfo

假設要選擇的時區(qū)是Asia/Shanghai:

echo "Asia/Shanghai" > /etc/timezone

請避免使用/usr/share/zoneinfo/Etc/GMT*時區(qū),它們的名字并不意味著想要的時區(qū)。例如,GMT-8實際上是GMT+8。
接下來,重新配置sys-libs/timezone-data包,將會為我們基于/etc/timezone條目更新/etc/localtime文件。/etc/localtime文件用于讓系統(tǒng)的C類庫知道系統(tǒng)在什么時區(qū)。

emerge --config sys-libs/timezone-data

4、配置地區(qū)

大多數(shù)用戶只想在他們的系統(tǒng)上使用一或兩個地區(qū)。地區(qū)不只是指定系統(tǒng)應該使用的與系統(tǒng)進行交互的語言,同時也指定了字符串排序,日期和時間的顯示等規(guī)則。系統(tǒng)應該支持的地區(qū)應該在/etc/locale.gen中提到。

nano -w /etc/locale.gen

下面的地區(qū)是一個示例,展示了同時使用英語(美國)和中文(中國)及附加字符格式(如UTF-8)。

FILE /etc/locale.gen啟用US和CN地區(qū)及附加字符格式
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK
zh_CN.UTF-8 UTF-8

<font color="red">警告 強烈建議使用至少一個UTF-8格式的地區(qū)設置,因為有些應用程序可能需要它。</font>
下一步是運行l(wèi)ocale-gen。它將生成/etc/locale.gen文件中指定的所有地區(qū)。

locale-gen

要驗證所選擇的地區(qū)當前可用,運行l(wèi)ocale -a。等完成后,我們就來設定系統(tǒng)級別的區(qū)域設置。我們又一次使用eselect來做這件事,現(xiàn)在使用locale模塊。通過eselect locale list可顯示可用的目標:

eselect locale list

通過eselect locale set VALUE可以設定正確的地區(qū):
在完成了地區(qū)設置后重新加載系統(tǒng)環(huán)境:

env-update && source /etc/profile && export PS1="(chroot) $PS1"

(四)配置Linux內(nèi)核

1、安裝內(nèi)核源碼

首先安裝內(nèi)核源碼包

emerge --ask sys-kernel/gentoo-sources

2、手動配置內(nèi)核

首先可以通過lspci程序來檢測硬件信息,該程序在sys-apps/pciutils,安裝該軟件

emerge --ask sys-apps/pciutils
lspci -k //檢測系統(tǒng)硬件

檢測完系統(tǒng)硬件設備下一步就開始手動編譯內(nèi)核

cd /usr/src/linux
make menuconfig

操作系統(tǒng)內(nèi)核編譯可以參考金步國的Linux-4.4-x86_64 內(nèi)核配置選項簡介

http://www.jinbuguo.com/kernel/longterm-linux-kernel-options.html

在進行內(nèi)核編譯前由于iwlwifi驅動編譯的情況需要將采用的驅動編譯到內(nèi)核因此需要先安裝系統(tǒng)所需的firmware固件

emerge --ask sys-kernel/linux-firmware

手動配置完內(nèi)核后建議保存內(nèi)核配置到文件以備將來使用,隨后將編譯和安裝內(nèi)核

make && make modules_install

編譯完成后復制內(nèi)核鏡像到/boot分區(qū)

make install

完成內(nèi)核復制后可以選擇生產(chǎn)一個initramfs,創(chuàng)建的原因是當部分文件系統(tǒng)在獨立的分區(qū)(如:/usr,/var)就需要通過initramfs來完成分區(qū)掛載,initramfs需要通過genkernel來完成,因此需要先安裝該軟件

emerge --ask sys-kernel/genkernel //采用rc作為初始化腳本
emerge --ask sys-kernel/genkernel-next  //采用systemd作為初始化腳本
genkernel --install initramfs   ///通過該命令創(chuàng)建initramfs

如果覺得手動配置較為麻煩也可以通過genkernel工具來自動完成內(nèi)核構建

genkernel all

<font color=red>注意 需要將iwlwifi驅動手動編譯到內(nèi)核參數(shù)

選中 CONFIG_FIRMWARE_IN_KERNEL    
添加對應的iwlwifi-xxxx.ucode 到該 CONFIG_EXTRA_FIRMWARE
同時指定iwlwifi-xxxx.ucode 所在目錄 CONFIG_EXTRA_FIRMWARE_DIR 

</font>
自此完成了操作系統(tǒng)內(nèi)核的編譯

(五)系統(tǒng)配置

該階段完成對整個系統(tǒng)的配置工作

1、文件系統(tǒng)配置fstab

按照自己的分區(qū)設置配置相應的/boot,/root,/home的掛載點,建議通過UUID來標識磁盤而不是用/dev/sdaX來標識,可以通過blkid工具來查詢每個磁盤的UUID

nano /etc/fstab

修改好硬盤掛載文件后可以配置hostname,修改root密碼

nano -w /etc/conf.d/hostname
passwd   //修改root密碼

下一步安裝日志工具、網(wǎng)絡工具、定時任務

emerge --ask app-admin/sysklogd
emerge --ask sys-process/cronie
emerge --ask net-misc/dhcpcd
emerge --ask net-dialup/ppp

2、配置bootloader

在完成了一系列基本的系統(tǒng)安裝配置后需要完成最后一步,配置bootloader也就是引導器,我的系統(tǒng)默認使用grub2作為引導,首先需要安裝grub2軟件,同時因為我是采用uefi的,因此需要添加一些額外的標記

echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
emerge --ask sys-boot/grub:2

grub2軟件安裝好后通過grub-install命令安裝GRUB2所需的文件到/boot/grub/目錄

grub-install /dev/sda   //bios
grub-install --target=x86_64-efi --efi-directory=/boot   //uefi

<font color=red>

注意:如果采用systemd作為初始化腳本那么需要額外修改一些配置
修改/etc/default/grub 文件添加GRUB2 systemd 配置示例
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
</font>
修改完配置文件后需要生成GRUB2

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

自此整個基礎的系統(tǒng)的安裝與配置已經(jīng)完成

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容