這期筆記繼續安裝Gentoo,上期咱們已經到了能夠進入新環境了,這意味着就是將原來的安裝CD或其它介質改成硬盤上安裝系統了,話很少說,立刻開始!html
因爲我已經中斷了安裝,對於已經能夠進入新環境的用戶來講,這個能夠經過恢復安裝來繼續安裝Gentoo。linux
首先先掛載根分區:web
而後複製DNS信息:數據庫
若是以前已經複製了,它會提示你是否覆蓋文件,回車肯定便可。框架
掛載必要的文件系統:工具
進入新環境:優化
之後的安裝過程當中被中斷了,都要經過以上的這些命令來恢復安裝。網站
接下來,是安裝主 ebuild 版本庫 (repository) 快照.這個快照包含一組文件,包括通知Portage中有關可用軟件的標題(用於安裝),系統管理員能夠選擇哪些配置文件,軟件包或 profile 特定新聞 (news) 項目等。ui
這將從Gentoo的一個鏡像中獲取最新的快照(天天發佈)並將其安裝到系統上:spa
稍等一下子就行了。
若是須要最新更新的包(1小時之內),可使用emerge --sync,這個命令將使用rsync協議來更新 Gentoo ebuild 數據庫(以前經過emerge-webrsync得到的)到最新狀態。
emerge --sync
在慢速的終端上,好比一些framebuffer或者串口控制檯,建議使用--quiet
選項來加速這個進程:
emerge --sync --quiet
當同步Portage ebuild 數據庫到系統時,Portage 可能警告用戶相似於下面的信息:
新聞條目的建立是爲了提供一個通訊媒介,經過rsycn樹來推送重要的消息給用戶。要管理它們,使用eselect news。eselect應用程序是一個Gentoo應用程序,它容許一個通用的管理界面完成對系統的變動和操做。在這裏,要用到eselect的news
模塊。
而後閱讀新聞條目:
帶着purge
新聞能夠刪除,一旦他們已經被閱讀,並將再也不重讀。
有關新聞閱讀器的更多信息可經過其手冊頁面得到:
man news.eselect
配置文件是任何一個Gentoo系統的積木。它不只指定USE、CFLAGS和其它重要變量的默認值,還會鎖定系統的包版本範圍。這些設定全是由Gentoo的Portage開發者們來維護。
使用eselect,你能看到當前系統正在使用什麼配置文件,如今來使用profile
模塊:
注:命令的輸出只是一個例子,並隨着時間的推移而發展。
注:配置文件升級不能掉以輕心。在選擇初始配置文件時,請確保使用對應於同一版本做爲第3階段最初使用的(例如13.0)。每一個新的配置文件版本都是經過一個包含遷移說明的新聞項目來宣佈的。在切換到新的配置文件以前,必定要閱讀並遵循它們。
能夠從剛纔的新聞條目第9條看出初始配置文件版本已經更新到17.1了,而且推薦選有desktop那項,可是我選擇第16項,由於從上圖能夠看到17.0版本的被「*」(星號)所引用,說明目前文件版本爲17.0。
在這一點上,若是選擇了新的系統profile,則更新系統的 @world set 是明智的,以即可覺得新profile構建系統。
提示:若是選擇了桌面環境配置文件,則此過程可能大大增長安裝過程所需的時間量。 時間緊迫的人能夠經過這個「經驗法則」工做: 配置文件名稱越短,系統的特定屬性越少@world set; @world設置的特定性越低,系統將須要的軟件包越少。 換一種說法:
選擇default/linux/amd64/13.0
須要更新的軟件包很是少,而選擇default/linux/amd64/13.0/desktop/gnome/systemd
因爲init系統正在從OpenRC轉換爲Systemd,而且GNOME桌面環境框架將被安裝,所以須要安裝許多包。
一共編譯175個軟件,這個須要的時間很長,這將花費你時間至關於差很少一個下午了(這個時間可能隨着之後新版本而變長),耐心等待吧!!!
終於編譯完了,我昨晚不當心在因爲電腦卡死緣由致使從新以前的步驟,搞的我到如今才編譯完,這已是次日的早上了。
早上好,如今繼續安裝Gentoo。
USE是Gentoo爲用戶提供的最具威力的變量之一,不少程序經過它能夠選擇編譯或者不編譯某些可選的支持。
大多數的發行版會使用盡量多的支持特性編譯它們的軟件包,這既增長了軟件的大小也減慢了啓動時間,而這些尚未算上可能會涉及到的大量依賴性問題。Gentoo可讓你本身定義軟件編譯的選項,而這正是USE要作的事。
如今先檢查下當前活動的USE標記:(「|」是Shift+「\」鍵敲擊出的符號)
能夠在系統的/usr/portage/profiles/use.desc中找到可用的USE標記的完整描述:
使用↑和↓鍵來滾動,而且能夠按q退出。
咱們能夠設置一個支持DVD、ALSA,以及CD錄製的基於KDE系統的USE設置:
把上圖的紅框部分添加進去,而後Ctrl+X,按Y而且回車便可完成保存並退出。
爲系統選擇時區:
假設要選擇的時區是Asia/Shanghai:
echo "Asia/Shanghai" > /etc/timezone
上面我選的時區是guangdong,這個能夠隨便設置,儘可能向「北上廣深」設置。
接下來,從新配置sys-libs/timezone-data包,將會爲咱們基於/etc/timezone條目更新/etc/localtime文件。/etc/localtime文件用於讓系統的C類庫知道系統在什麼時區:
系統應該支持的地區應該在/etc/locale.gen中提到:
按照上面的紅框部分添加進去,而後Ctrl+X,按Y而後回車便可完成保存並退出。
注:咱們強烈建議使用至少一個UTF-8格式的地區設置,由於有些應用程序可能須要它。
下一步是運行locale-gen。它將生成/etc/locale.gen文件中指定的全部地區:
要驗證所選擇的地區當前可用,運行locale -a:
等完成後,咱們就來設定系統級別的區域設置:
額,我如今才發現zh-CN.UTF-8不見了,按道理是應該出現了,可是卻檢測不到沒法進行應用,因此我就不在這裏糾結了,咱們依然選擇第5項,若是真的選擇了zh-CN.utf8,可能後面的步驟會出現亂碼,爲了避免讓亂碼,因此咱們選擇第5項。
若是上面沒法應用zh-CN.utf8,這個還能夠經過人工編輯/etc/env.d/02locale文件來完成:
LANG="zh_CN.UTF-8"
確保設定了一個地區,否則系統會在後面安裝中的內核編譯和部署其餘軟件時顯示警告和錯誤。
如今從新加載環境:
Linux內核是全部發行版的核心,它位於用戶程序和系統硬件之間,Gentoo提供給用戶一些可選的內核源碼。
針對基於amd64-系統的Gentoo,建議使用包 sys-kernel/gentoo-sources。
選擇一個合適的內核並使用emerge來安裝它:
下載速度真快,很快就行了,下載完畢後將會自動安裝。
這將在/usr/src/中安裝Linux內核源碼,並有一個符號鏈接叫做linux將指向安裝的內核源碼:
如今是時候來配置和編譯內核源代碼了。有兩種方法:
1.手動配置並生成內核。
2.一個叫做genkernel的工具用來自動化生成並安裝Linux內核。
咱們在這裏解釋作爲默認選擇的手動配置,它是優化環境的最好方式。
手動配置內核常常被Linux用戶認爲是最困難的步驟。事實並不是如此——可是當您手動配置幾回內核以後,你就不會再以爲它有多麼難了。
不管如何,有一件事是真實的:當手動配置內核時,瞭解(硬件)系統是相當重要的。
但對於新手來講,建議先選用genkernel來自動配置內核,慢慢熟練後再嘗試手動配置內核,不得不說的是手動配置內核具備定製性。
不得不說做者我也曾經倒在配置內核這一塊,有時候連自動配置內核也沒法配置,經緣由查明是我以前的步驟有些出入,但最終解決了,如今是沒有什麼問題的。
因此本做者也是想避免工做量太多,因此使用genkernel,由於有時候手動配置內核可能少配置一些關鍵的東西。
若是手動配置看起來太恐怖,建議使用genkernel。它將自動配置並編譯內核。
介紹:genkernel配置內核的工做原理幾乎和安裝CD配置的內核徹底一致。也就是說當使用genkernel創建內核,系統一般將在引導時檢測所有硬件,就像安裝CD所作的。由於genkernel不須要任何手動內核配置,它對於那些不能輕鬆的編譯他們自動內核的用戶來講是一個理想的解決方案。
首先emerge sys-kernel/genkernel這個ebuild:
接下來,編輯/etc/fstab文件來使包含有第二個值爲/boot/的那條的第一個值指向到正確的設備:
根據紅框添加上去,配置/boot掛載點,而後Ctrl+X,按Y再按回車便可完成保存並退出。
注:若是引導分區不是使用ext2或ext3做爲文件系統,它可能須要使用genkernel --menuconfig all來手動配置內核,並在內核中添加對這個具體文件系統的支持(好比:不是做爲一個模塊)。LVM2用戶可能要做爲參數來添加--lvm
。
如今,運行genkernel all來編譯內核源碼。值得注意的是,使用genkernel編譯一個內核將支持幾乎所有的硬件,這將使編譯過程須要一陣子來完成!
若是出現如下狀況,請看下面的解決方案(我不保證是否是終極解決方案):(若是genkernel命令可用,沒有任何問題的話,請愉快地跳過此過程。)
上面說genkernel進入子程序沒法找到該命令,這說明應該是genkernel啓動失敗,咱們從新啓動genkernel看看。
上圖說明兩個紅框內的問題是須要解決的,不然genkernel將沒法使用相關命令。
一樣再次從新輸入命令將會出現如下:
如下是我在wiki中找到的解決方案,先嚐試下:
添加上面的紅框裏的內容後請按Ctrl+X,而後按Y再回車鍵便可完成保存並退出。
而後etc-update:
而後按-3,再按回車鍵覆蓋:
結果仍是行不通啊!!!有一個論壇這樣說:使用自動配置內核有可能自動配置到不想要的東西,這也可能會產生相關的影響!
還有一種命令能夠嘗試下(我目前認爲的最終解決方案):
輸入u接受,再次emerge這個genkernel:
等待安裝完成,這須要一下子時間。
終於下載完畢了,糾結了我比較久的時間,終於成功下載並安裝了genkernel,這個關於genkernel的相關問題的解決過程到此能夠結束了!
Tips:若是你的genkernel也是上面的問題的,應該是genkernel沒法正常下載,因此命令沒法使用,不妨嘗試下我上面的方法吧!
我就是倒在了這個genkernel沒法編譯的問題上,還好已經解決而且從新下載安裝了,不然只能手動編譯了,可是手動編譯的話若是沒有後面的initramfs文件,這可能也會致使系統沒法正常啓動,這個文件一樣須要genkernel來下載的。
因爲我不採用手動編譯,因此能夠參考下:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel,這裏詳細介紹手動編譯內核的步驟。
(注:在內核參數選擇的過程當中,輸入/能夠進行搜索,空格進行選擇和反選,按兩下esc進行返回上一級目錄,方向鍵左右能夠切換到save和load,分別進行內核配置文件的保存和導入。默認保存爲.config(我建議使用默認文件名,),保存的時候能夠輸入文件名,以備下次編譯內核導入,省時省力。內核配置文件保存目錄在/usr/src/linux下。)
困擾了我許久的genkernel問題終於解決了,固然是到了激動人心的時候了,如今開始正式編譯內核了。
(注:若是引導分區不是使用ext2或ext3做爲文件系統,它可能須要使用genkernel --menuconfig all來手動配置內核,並在內核中添加對這個具體文件系統的支持(好比:不是做爲一個模塊)。LVM2用戶可能要做爲參數來添加--lvm
。)
從新輸入很是熟悉的genkernel all:
編譯過程十分漫長,請耐心等待,先去睡一晚覺正,明天再來查看編譯結果。(其實我也不知道究竟須要多少時間,仍是那句話,耐心等待吧!)
(用時只是一個小時多點)
我看到了內核已經編譯完成,但也出現了相關的警告,通常狀況下出現警告請選擇無視,雖有風險但通常是沒有什麼問題,只有出現ERROR纔要必須處理的問題。
Tips:內核能夠重複編譯,不會影響安裝過程的。(你也能夠經過genkernel --menuconfig all來手動配置,一樣具備定製性,不過這是半自動編譯方法。)
一旦genkernel完成,將建立一個內核、所有的模塊和初始化內存文件(initramfs)。咱們將在文檔後面配置引導器的時候使用這個內核和initrd。記下內核和initrd名字做爲編輯引導器配置文件的信息。initrd將在後執行硬件檢測以後、「真實」系統啓動以前當即啓動。
到了這裏配置內核環節就已經結束,剩下的安裝步驟請見下一期的筆記!
本文將會同步到公衆號qq596044192中,有興趣的能夠關注一下:
2018-09-03