Linux:Gentoo系統的安裝筆記(一)

来源:https://www.cnblogs.com/q596044192/archive/2018/09/09/9569076.html
-Advertisement-
Play Games

這次我選擇安裝Gentoo,用來做我學習的筆記。這次我是使用虛擬機安裝Gentoo,一是方便操作,二是可以看著手冊,一邊看一邊操作,嚴格按照手冊上的步驟執行,一般是不會出現問題的。 查看手冊最好學會看英文原版的,因為更新快,中文原版的可能很久無法更新,也會導致安裝失敗。 這裡提供amd 64位的英文 ...


          這次我選擇安裝Gentoo,用來做我學習的筆記。這次我是使用虛擬機安裝Gentoo,一是方便操作,二是可以看著手冊,一邊看一邊操作,嚴格按照手冊上的步驟執行,一般是不會出現問題的。

          查看手冊最好學會看英文原版的,因為更新快,中文原版的可能很久無法更新,也會導致安裝失敗。

          這裡提供amd 64位的英文原版手冊:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Media

         wiki官方網站:https://wiki.gentoo.org/wiki/Main_Page

安裝Gentoo

映像文件下載

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

我所選擇的是64位的Gentoo最小化CD安裝媒介。

新建虛擬機並載入映像文件

註:選擇網路類型時,如果你是撥號連接的請使用預設設置,如果不是請使用“橋接”。磁碟大小最好大於20G。

 

系統正式安裝

最小化安裝CD

註:截止至2017年4月20日,官方的最小CD在UEFI模式下無法啟動。它們僅支持在BIOS(MBR)模式下引導。如果希望使其系統以UEFI啟動,讀者必須下載最新的Hybrid ISO(LiveDVD)。

Gentoo最小化安裝CD是一張包含有完整Gentoo環境的可引導鏡像。它允許用戶從CD或其它安裝媒介引導進入Linux。在引導過程中將檢測硬體並載入適當的驅動。這個鏡像由Gentoo開發人員維護,能讓任何有Internet連接的人來安裝Gentoo。

最小化安裝CD叫做install-amd64-minimal-<release>.iso。

Gentoo Linux使用最小化安裝CD做為預設安裝媒介,它帶有一個非常小的可引導的Gentoo Linux環境。此環境包含所有正確的安裝工具. CD鏡像本身可以從官方下載頁(推薦)或任意一個鏡像站下載。

想要驗證最小化安裝CD的文件合法性的請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Media

Stage

stage3壓縮包是一個包含有最小化Gentoo環境的文件,可用來繼續安裝Gentoo。現在Gentoo仍然提供stage1和stage2的壓縮包,但是官方安裝方法只使用stage3壓縮包。

Stage 文件更新比較頻繁並且不在安裝鏡像中提供,但可以在任意一個Gentoo官方鏡像站的releases/amd64/autobuilds/ 路徑下選擇下載。

啟動內核

現在啟動安裝媒介(最小化CD),我們可以使用預設的gentoo來啟動,當然如果不能滿足的話,請使用gentoo dopcmcia來啟動。

我們可以使用Alt+F2切換到簡潔的控制台,也可以使用clear來進行清屏。

額外的硬體配置

當安裝媒介啟動時,它會嘗試檢測所有的硬體設備並載入合適的內核模塊來支持硬體。在絕大多數的情況下,它工作得很好。然而,在某些情況下它可能沒有自動載入系統所需的內核模塊。如果 PCI 自動檢測錯過了一些系統硬體,相應的內核模塊就必須手動載入了。

例如:載入8139too 模塊

可選:啟動SSH服務

要在安裝期間允許其他用戶訪問你的系統(可能是為了在安裝過程中提供技術支持,甚至遠程安裝),需要添加一個用戶賬戶(就像之前的文檔描述的那樣)同時 SSH 服務也要啟動。

啟動SSH服務:

自動網路配置

我們要安裝gentoo,就必須確保網路已連接,否則後續安裝步驟是進行不了的。

如果已配置網路,則ifconfig命令應該列出一個或多個網路介面。

註:如果使用標準的ifconfig命令沒有顯示出介面,嘗試使用帶有-a選項的相同的命令。這個選項強制這個工具去顯示系統檢測到的所有的網路介面,不管他們是up或down狀態。如果ifconfig -a沒有提供結果,則硬體有錯誤或者介面驅動沒有載入到內核中。這些情況都超過本手冊的範圍。聯繫#gentoo需求支持。

其實使用ip addr命令也可以識別到介面。

 

註:作為預測的網路介面名稱控制的結果, 系統的介面名稱可以和舊的eth0命名規則很不一樣。近期的安裝媒介可能顯示常規網路介面名字像是eno0、ens1或enp5s0。查看ifconfig輸出中找到有你本地網路相關的IP地址的介面,如我的網路介面名稱為eno16777736。(下麵的代理設置為可選的,我並不需要,需要的可以選擇設置。)

可選:配置任何代理

如果通過代理訪問Internet,則必須在安裝過程中設置代理信息。定義代理非常容易:只需定義包含代理伺服器信息的變數即可。

在大多數情況下,使用伺服器主機名定義變數就足夠了。例如,我們假設代理名為proxy.gentoo.org,埠為8080。

若要設置HTTP代理(用於HTTP和HTTPS通信),請執行以下操作:

export http_proxy="http://proxy.gentoo.org:8080"

若要設置FTP代理,請執行以下操作:

 export ftp_proxy="ftp://proxy.gentoo.org:8080" 

若要設置rsync代理,請執行以下操作:

export RSYNC_PROXY="proxy.gentoo.org:8080"

如果代理需要用戶名和密碼,則對變數使用以下語言:

http://username:[email protected]:8080

 至於以上的用戶名和密碼,請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Media,裡面有可選的用戶賬戶的相關設置。

測試網路:

嘗試ping你的ISP的DNS伺服器

可以看到上圖,我的網路已經連接正常了。

如果網路不能工作,請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Networking,裡面有詳細的網路配置教程,確保全裝環境中網路的連接正常。

如果是準備無線網路鏈接的話,也請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Networking,裡面有詳細的設置。

分區表簡介

首先,我們可以先來理解下MBR與GPT。

MBR

主引導記錄MBR (Master Boot Record)對分區的起始扇區和長度使用32比特的標識符,它支持三種分區類型:主分區、擴展分區和邏輯分區。主分區把它們的信息存儲在主引導記錄里一個非常小的空間里,通常是512位元組,因為這個空間太小了,所以系統只支持四個主分區。(例如從 /dev/sda1到/dev/sda4)

為了支持更多的分區,其中一個主分區可以被標識成擴展分區,然後這個分區就可以包含邏輯分區了(分區里的分區)。

每個分區的尺寸被限制在2TB,這是由於32比特的標識符造成的。另外MBR不提供任何的MBR備份,所以一旦被某個應用或者用戶誤寫覆蓋了,所有的分區信息將會丟失。

GPT

GTP(GUID Partition TQable)為分區使用64比特標識符,它用來存儲分區信息的空間也遠比MBR的512位元組要大,GPT磁碟它也不對分區的數量作限制。分區的大小限制可以達到8ZB。 譯者註: 1ZiB = 1,024 EiB 1ZiB = 1,048,576 (1024)PiB 1ZiB = 1,073,741,824 (1024)TiB 1ZiB = 1,099,511,627,776 (1024)GiB 1ZiB = 1,125,899,906,842,624 (1024)MiB 1ZiB = 1,152,921,504,606,846,976 (1024)KiB 1ZiB = 1,180,591,620,717,411,303,424 (1024)B

當操作系統和系統固件之間的軟體介面是UEFI (相對於BIOS)時,GPT幾乎是必選的,因為這裡MBR會引起很多相容性問題。

GPT還利用校驗和和冗餘。 它攜帶CRC32校驗和以檢測報頭和分區表中的錯誤,併在磁碟的末尾有一個備份GPT。 此備份表可用於恢復磁碟開頭附近主GPT的損壞。

GPT還是MBR

依據上面的描述,人們大概會認為使用GPT應該總是被推薦的方法,儘管還有一些註意事項。

在一臺基於BIOS的電腦上使用GPT雖然是能夠工作的,但是那樣你就不能與微軟的Windows操作系統進行雙重引導了,原因是微軟的Windows如果檢測到一個GPT分區標簽,它就會以UEFI模式進行引導。

一些存在bug的BIOS或者配置成以BIOS/CSM/legacy模式進行引導的EFI也對從GPT標簽的磁碟進行引導支持不好。如果您也碰到了這種情況,有一個可能的湊合辦法:在被保護的MBR分區上加上boot/active標誌,您可以使用帶有 -t dos選項的fdisk 命令強制它使用MBR格式讀取分區表。

如:

fdisk -t dos /dev/sda

使用UEFI

當在一個使用了UEFI(替代BIOS)進行引導作業的系統上安裝Gentoo時,很重要的一點是一個EFI的系統分區 (ESP)需要被創建。 分區工具parted的簡介如下:

EFI系統分區也需要是一個FAT32分區(在Linux系統里也被稱為“vfat”)。這一章節末尾的指導中以“ext2”分區格式為例作為了/boot/ 的文件系統。請確保EFI分區使用“vfat”,就像這樣:

mkfs.fat -F 32 /dev/sda2

註:如果ESP不使用FAT變體,則無法保證系統的UEFI固件能夠找到引導載入程式(或Linux內核),並且很可能無法啟動系統!

設置分區

下麵我使用parted來進行分區,使用的是MBR分區表,分區的方案我是按照手冊上的進行安裝,若不想手冊上的可以自己設計分區方案。

但在之前先瞭解下分區:

swap空間

對於swap空間,沒有一個完美值。swap空間的目的是當記憶體(RAM)有壓力時為內核提供磁碟存儲。一個swap空間允許內核將看過來稍後不會被訪問的記憶體頁面移動到磁碟(swap或者page-out)、施放記憶體。當然,如果那塊記憶體突然要使用到,需要花一些時間(相比較記憶體,硬碟是非常慢的)將這些頁面需要放回到記憶體中(page-in)。

如果系統不運行很需要記憶體的應用程式或系統有足夠多的可能記憶體,則不需要太多的swap空間。不過,swap空間還用來在休眠時儲存整個記憶體。如果一個系統需要休眠,則必須需要大一點的swap空間,通常至少為系統安裝的記憶體數量,這裡我會給2048MB的swap空間大小。

BIOS引導分區

BIOS引導分區是一個非常小的分區(1到2MB),引導器軟體如GRUB2可以將不適於存放在引導扇區(MBR中只有幾百個位元組)里並且不能存放在其它位置的額外數據存放於此。

這種分區並不總是需要的,但是考慮到低地址空間消耗以及記錄大量不同的分區的難度,我們建議最好還是創建一個。

為了完整,當GPT分區方案與GRUB2一起使用,或者當MBR分區方案與GRUB2一起使用且第一個分區開始於磁碟上1MB位置之前時,BIOS引導分區是需要的。

接下來開始進入分區階段:(進入parted開始搞磁碟吧。)

如果想使用GPT的分區標簽,請輸入命令:mklabel gpt。

但我現在使用的是MBR分區標簽,為了讓磁碟使用MBR分區佈局,可以輸入如下命令:mklabel msdos命令

我們先使用print命令可以查看當前的分區信息,如果存在分區的話,使用rm 命令移除已有的分區,rm <N> 中N是需要移除的分區號碼。

沒有分區信息,則不用進行移除分區。

註:對其它不需要的分區採取同樣的操作。但是在這裡請確保不要犯任何錯誤,因為parted是立即執行改變的,這一點不像fdisk是分步操作,允許用戶在保存或者退出fdisk時可以"undo"。

下麵創建分區:

註:如果使用MSDOS分區標簽,請記住,主分區不能超過4個。如果需要4個以上的分區,則將前四個分區中的一個進行擴展,併在其中創建邏輯分區。

首先,要告訴parted我們工作要使用的容量單位是megabytes(實際上是mebibytes,其標準縮寫符號是MiB,但是我們會通篇使用MB因為它用得更普遍一些)

現在創建一個2MB的分區,稍後將由GRUB 2引導載入程式使用。

但是現在有個問題就是MBR分區不支持grub分區來命名。

所以我就在這裡糾結了比較久,決定使用fdisk對磁碟進行分區。這裡說下parted分區支持GPT,但我是使用MBR,使用fdisk更適合些。

想要看parted接下來的分區,請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks,裡面有詳細的parted分區設置。

fdisk分區

使用Ctrl+Z可以終止當前所有操作,現在使用fdisk向磁碟開火吧!(fdisk是一種流行的、功能強大的工具,可以將磁碟拆分為分區。

註:如要支持GPT,需要增加 -t gpt選項。建議您一定要仔細研究fdisk的輸出,因為最近的 fdisk開發改變了它的以MBR作為預設設置的行為。雖然最近fdisk應該支持GPT,它仍然表現出一些問題。

輸入p查看當前分區情況,不出所料應該會有一個之前使用parted分出的區。

輸入d,現在刪除現有的存在的一個/dev/sda1。

如果原本分區表為空的可以忽略上述操作。(重覆輸入p列印分區列表,然後鍵入d以及要刪除它的分區的編號。最終,分區表將為空。)

創建一個很小的BIOS引導分區,大約2MB。

構造分區用於UEFI(這個只是一個標記而已):

註:不鼓勵在MBR分區佈局中使用UEFI。如果使用的是UEFI系統,請使用GPT佈局。(這個步驟是可選的。)

下麵創建一個引導分區,大約為128MB。

然後輸入a來切換一個分區是否為可引導的標記,然後再輸入2,之後再一次敲 p鍵,您可以發現一個“*”被放置於相應分區的“boot”列。

下麵創建swap交換分區,大約為512MB,但是這裡我會給2048MB。

把剛剛設置的swap分區設置分區類型為“Linux Swap”。(輸入 t來設置分區類型,輸入 3來選擇剛剛創建的這個分區,然後敲擊“82”設置分區類型為“Linux Swap”。)

最後創建根分區,當提示輸入“the first sector”時,敲擊Enter。當提示輸入“the last sector”時,敲擊Enter來創建一個占用了所有剩餘磁碟空間的分區。

下麵輸入p查看現在的所有分區情況:

註:當然如果不只想使用一個根分區,想使用多個的話,請在the last sector那行輸入準確數值即可。

輸入w來保存分區佈局並退出。

創建文件系統

首先要瞭解一下一些文件系統,下麵給的不是詳細的,詳細的請見英文原版手冊裡面的。

ext2是經考驗證明可靠的Linux文件系統,但是沒有元數據日誌,這意味這在啟動系統時的ext2文件系統的日常檢查相當耗時。現在相當一部分的新一代的日誌文件系統都可以非常迅速檢查一致性,因此比那些非日誌文件系統更受歡迎。當你啟動系統碰巧遇到文件系統狀態不一致時,日誌文件系統不會在那裡耽擱很長時間。

ext3是ext2文件系統的帶日誌版本,提供了元數據日誌模式以快速恢複數據。此外還提供了其他增強的日誌模式,如完整數據日誌模式和有序數據日誌模式。它使用了HTree索引,在幾乎所有的情況下都能保持高性能。簡而言之,ext3是非常好及可靠的文件系統。

ext 4最初是作為ext 3的分叉創建的,ext 4帶來了新的特性、性能改進和刪除大小限制,對磁碟上的格式進行了適度的更改。它的容量可達1EB,最大文件大小為16 TB。與經典的Ext 2/3點陣圖塊分配不同,ext 4使用區段,這可以提高大型文件的性能並減少碎片。ext 4還提供了更複雜的塊分配演算法(延遲分配和多塊分配),為文件系統驅動程式提供了更多優化磁碟上數據佈局的方法。ext 4是推薦的通用平臺文件系統。

vfat也稱為FAT32,被支持Linux,但不支持任何許可權設置。它主要用於互操作性與其他操作系統(主要是微軟的Windows),但也是很有必要的一些系統固件(如UEFI)的支持。

為分區增加inode

當在一個小的分區(少於8GB)上使用ext2、ext3或ext4,則創建文件系統時必須帶適當的選項以保留足夠的inode。mke2fs(mkfs.ext2)應用程式使用“位元組每inode”設置來計算一個文件系統應該用多少個inode。在小分區,建議增加計算出的inode數量。

對於ext2,可以使用下麵的命令來完成:

mkfs.ext2 -T small /dev/<device>

因為我的sda2是打算使用ext2格式的,所以輸入如下:

對於ext3或ext4,添加-j選項來啟用日誌:

mkfs.ext2 -j -T small /dev/<device>

因為我的sda4已經大於8G了,所以不需要增加計算出的inode數量,如果小於則需要增加。

為分區應用文件系統

要使引導分區(/dev/sda 2)在ext 2和根分區(/dev/sda 4)在ext 4中,輸入如下:

現在在新創建的分區(或邏輯捲)上創建文件系統。

創建文件系統

下麵是激活swap分區,首先先初始化swap分區:

下麵是激活swap分區:

下麵進行掛載根分區:

註:如果/tmp/需要放在一個獨立分區,確保在掛載後變更它的許可權:

chmod 1777 /mnt/gentoo/tmp

這同樣適用於/var/tmp。

安裝Stage包

在安裝Gentoo之前,最好確保日期和時間設置正確。 錯誤配置的時間可能會導致奇怪的結果,如果系統時間差的離譜,可能無法下載安裝文件!

使用date命令來驗證當前時間是否準確:

如果顯示的日期/時間是錯誤的,請使用以下方法之一更新它。

自動更新時間,相當於同步時間,但可能泄露隱私:

ntpd -q -g

當然也可以手動更新:

例如,將日期定在2018年9月1日13點16分:

date 090113162018

下載stage包

註意stage包的尾碼名一般為bz2或xz。

前往掛載根文件系統的Gentoo掛載點:

圖形瀏覽器

請進入https://www.gentoo.org/downloads/,選擇stage 3:

由於本人使用amd64位,那麼stage 3也要對應一致,請右鍵進入快捷菜單,選擇複製鏈接地址:http://distfiles.gentoo.org/releases/amd64/autobuilds/20180830T214502Z/stage3-amd64-20180830T214502Z.tar.xz(該包為2018-8-30,該鏈接地址僅供參考,請按實際的更新情況複製鏈接地址)

wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20180830T214502Z/stage3-amd64-20180830T214502Z.tar.xz

命令行瀏覽器

但我使用的是命令行瀏覽器,如果不是在虛擬機上進行,而是實體機進行安裝,使用圖形瀏覽器比較麻煩的,當然配合手機使用也可,但建議使用命令行瀏覽器下載:

更傳統的讀者或是“老前輩”的Gentoo用戶,只能命令行工作,可能更喜歡使用非圖形化菜單驅動的瀏覽器 links。 要下載一個stage,請像下麵這樣訪問Gentoo鏡像列表:

使用滑鼠指針(像一個閃爍的小矩形)左鍵點擊其中HTTP鏡像(當然也可以使用鍵盤方向鍵向下瀏覽),但其他網路協議是可用的。請訪問releases/amd64/autobuilds/ 。 那裡將顯示所有可用stage文件 (可能他們個別小組架構在命名的子目錄中存儲)。

由於支持國產,我選擇:

回車鍵選擇,或滑鼠指針選定雙擊進入,然後訪問releases/amd64/autobuilds/ 。

選擇的Stage包必須是要以最新為主,當然建議是與啟動鏡像更新日期一致,不一致可能導致安裝過程中出現任何問題。

到了這裡需要選擇一個Stage包。

multilib(32和64位)

選擇一個基礎壓縮包的系統可以在稍後的安裝過程節省大量的時間,特別是當它是一次 choose a system profile。一個stage包的選擇將直接影響未來的系統配置,可以在以後省的頭痛。該壓縮包multilib儘可能使用64位的庫,只必要時對32位版本相容。這對於大多數安裝一個很好的選擇,因為它在未來的定製提供了極大的靈活性量。那些誰希望自己的系統,能夠容易地切換配置,應該下載根據各自的處理器架構multilib的壓縮包選項。

大多數用戶應該不需要使用“高級”tar包選項;它們用於特定的軟體或硬體配置。

no-multilib(純64位)

選擇一個no-multilib壓縮包:no-multilib是在系統的基礎上提供了一個完整的64位操作系統環境。這有效地使得切換到multilib的profile是不可能的(不是完全不可能)。這些剛剛開始使用Gentoo的新手不應該選擇一個 no-multilib 壓縮包,除非"絕對必要"。而且應該有很好的理由並做出負責任的選擇。

所以建議選擇multilib包。

由上圖可看選擇Stage3包(現在已經出現Stage4包了,這個老手可以嘗試使用),按d進行下載。

正在下載中,使用163網易,下載速度快而穩定,只需要2分多鐘就可以了。

下載完畢後請按q來關閉links瀏覽器,如果想要驗證文件的合法性的請參考:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage

當然你喜歡圖形瀏覽器的直接也是可以的,這些方法隨用戶的喜好挑選。

links之外還有一個lynx瀏覽器。和links類似,它也是一個非圖形化的瀏覽器,但不是自帶的。

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

現在接下來就是解壓stage包了。

解壓Stage包

現在,解壓下載的stage到系統。我們使用 tar來進行:

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

確保你使用了同樣的參數 ( xvjpf 和 --xattrs)。 x表示解開(Extract),v表示詳細信息(Verbose)可以用來查看解壓縮時發生了什麼(可選參數), j 表示使用bzip2解壓縮,p 表示保留許可權(Preserve permissions),還有f 表示我們要解開一個文件,而不是標準輸入。最後,--numeric-owner 被用於確保從tarball中提取的文件的用戶和組ID與Gentoo發佈工程團隊預期的保持一致,即使大膽的用戶使用的不是Gentoo官方安裝媒介。

如果出現以下解壓出錯問題,即是j表示的bzip2沒有。

解決方法:去掉j,再次輸入如下命令:

正在解壓中,不需要多少時間,解壓完畢後進入到配置編譯選項。

配置編譯選項

介紹:為了優化Gentoo,可以設置一些影響Portage的變數,Gentoo官方支持包管理器。 所有這些變數可以設置為環境變數(使用export),但這不是永久的。 為了保留設置,Portage讀入/etc/portage/make.conf文件 ,一個用於Portage的配置文件。

註:要成功安裝Gentoo,只需要設置下麵提到的變數。

在你定義 CFLAGSCXXFLAGS的時候,你需要把這些優化標記都合併起來。stage3文件里包含的你解壓縮出來的預設值已經足夠好了。

註:MAKEOPTS=“-jX”(X代表核數,你的電腦CPU是多少核的就填多少核)

請按照上圖中紅框里的變數添加到make.conf裡面,然後按Ctrl+X退出。

輸入Y,然後敲擊回車鍵即可保存。

Chrooting

選擇鏡像站點

為了能更快的下載源代碼,這裡推薦選擇一個快的鏡像。提供一個叫作mirrorselect的好工具,它為用戶選擇所需鏡像提供了一個很好的交換。只需要移動游標選擇鏡像並按Spacebar選擇一個或多個鏡像。

選擇中國163mirrors,速度最快,空格鍵進行選擇,回車鍵確定。

Gentoo eBuild存儲庫

選擇鏡像的第二個重要步驟是通過/etc/portage/repos.conf/gentoo.conf文件來配置Gentoo的 ebuild 倉庫。這個文件包含了更新Portage資料庫(包含Portage需要下載和安裝軟體包所需要的信息的一個ebuild和相關文件的集合)所需要的同步信息。

配置存儲庫可以通過幾個簡單步驟完成。首先,如果它不存在,則創建repos.conf目錄:

接下來,複製Portage提供的Gentoo倉庫配置文件到這個(新創建的)目錄:

複製DNS信息

在進行新環境之前,還有一件要做的事情就是複製/etc/resolv.conf中的DNS信息。需要完成這個來確保即使進入到新環境後網路仍然可以使用,/etc/resolv.conf包含著當前網路中的DNS伺服器。

如果不複製DNS信息,進入新環境後可能導致網路不可用。

掛載必要的文件系統

稍等片刻,Linux的根將變更到新的位置。為了確保新環境正常工作,需要確保一些文件系統可以正常使用。

註:當使用非Gentoo安裝媒介時,這時可能還不算完。一些發行版將/dev/shm符號鏈接到/run/shm/,在chroot後將變得不可用。為了讓/dev/shm/是一個正常掛載的tmpfs,可以如此修複:

test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

還確保設置模式1777:

chmod 1777 /dev/shm

進入新環境

終於到本期筆記的最後一個步驟了,這是關鍵。

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

完成chroot有三個步驟:

1.使用chroot將根位置從/(在安裝媒介里)更改成/mnt/gentoo/(在分區里)

2.使用source命令將一些設置(那些在/etc/profile中的)重新載入到記憶體中

3.更改主提示符來幫助我們記住當前會話在一個chroot環境裡面。

從現在開始,所有的動作將立即在新Gentoo Linux環境里生效。當然這離完成還很遠,所以請留意下一篇的安裝筆記吧!

提示:如果安裝Gentoo時在這一步之後的任何地方中斷,那麼“應該”可以從這一步“繼續”安裝,不必再重新給磁碟分區!只需要 掛載根分區 並運行上述步驟,然後通過複製 DNS 信息重新進入工作環境。 這也對修複引導程式問題很有用。 

結尾

gentoo安裝果然複雜,但也充滿著挑戰性,也是十分有趣的,上面這些安裝步驟離安裝完成還很遠,只要堅持下去總會安裝成功的。

本文將會同步到公眾號qq596044192中,有興趣的可以關註一下:

 

2018-09-01


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

-Advertisement-
Play Games
更多相關文章
  • 準備寫一些關於Identity4相關的東西,最近也比較對這方面感興趣。所有做個開篇筆記記錄一下,以便督促自己下一個技術方案方向 已經寫好的入門級別Identity4的服務+api資源訪問控制和簡單的客戶端請求模擬: 1.實現服務端+api資源控制+客戶端請求 2.後面準備寫單點登錄統一認證服務 ...
  • 1. NUGET包引用 icrosoft.AspNetCore.Session 2.Startup中添加一下代碼: 3.控制器中使用Session using Microsoft.AspNetCore.Http; //添加引用 HttpContext.Session.SetString("key", ...
  • Quartz.Net的集群部署詳解 標簽(空格分隔): Quartz.Net Job 最近工作上要用Job,公司的job有些不滿足個人的使用,於是就想自己搞一個Job站練練手,網上看了一下,發現Quartz,於是就瞭解了一下。 第一版 目前個人使用的是Asp.net Core,在core2.0下麵進 ...
  • UEditor是什麼 最近在在項目的時候使用到了百度的富文本編輯器。官網有詳細的操作流程文檔。這裡我只是記錄項目中常用到的一些事件。以便日後可以方便查詢。 UEditor是百度的一個javascript編輯器的開源項目。支持Php、Asp、Asp.Net 、Jsp多種後臺配置。這裡記錄的是Asp的寫 ...
  • "linq2db.EntityFrameworkCore" 是一個ef core的插件,對linq語法的擴展 對複雜的sql都有很好的支持,他是基於linq2db (provided by LINQ To DB) 如果你使用了linq2db的語法擴展那麼你必須使用下麵的方法進行查詢 下麵是 linq ...
  • 對於Word文檔中包含較多的超鏈接,如果一個個來刪除很花費時間和精力,本篇文章將提供一種可用於批量刪除Word中的超鏈接的方法。這裡的超鏈接可以是頁眉頁腳處的超鏈接、正文中的超鏈接、表格中的超鏈接、文字超鏈接、圖片超鏈接等等。下麵將具體演示如何來進行代碼操作。 所需工具 Free Spire.Doc ...
  • 在開發項目的時候,往往碰到的不同的需求情況,相容不同類型的資料庫是我們項目以不變應萬變的舉措之一,在底層能夠相容多種資料庫會使得我們開發不同類型的項目得心應手,如果配合快速的框架支持,那更是錦上添花的舉措。我開發的項目或者框架,採用了微軟企業庫Enterprise Library的模塊,傾向於支持多... ...
  • 1、前臺的表單: <form enctype="multipart/form-data" method="post" id="inportFile" name="inportFile"><input type="file" name="excelfile" id="excelfile"/></for ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...