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

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

這期筆記將是gentoo安裝的最後一期了,雖然已經配置內核了,但是也要完成剩下的安裝步驟,這離安裝完成已經不遠了,繼續加油!!! 如果中斷了安裝,請看第二期的筆記進行恢復安裝,但請重新編譯一次內核,否則不確保最後會不出問題。 恢復安裝後的準備工作 由於本作者在上期已經編譯了內核,但由於時間關係而中斷 ...


這期筆記將是gentoo安裝的最後一期了,雖然已經配置內核了,但是也要完成剩下的安裝步驟,這離安裝完成已經不遠了,繼續加油!!!

如果中斷了安裝,請看第二期的筆記進行恢復安裝,但請重新編譯一次內核,否則不確保最後會不出問題。

 恢復安裝後的準備工作

由於本作者在上期已經編譯了內核,但由於時間關係而中斷了安裝,所以現在再次重新配置一下內核,無奈又要等待1個小時多。。。。

內核模塊配置

在/etc/conf.d/modules中列出需要自動載入的模塊。如果有必要,附加選項也可以添加到模塊中。

要查看所有可用模塊,運行下麵的find命令。不要忘記替換“<kernel version>”為剛剛編譯的內核版本:

find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

比如,要自動載入3c59x.ko模塊(3Com網卡家族的特定驅動),編輯/etc/modules-load.d/network.conf文件併在裡面輸入模塊名字。

把上面的模塊名添加進去,然後Ctrl+X,再按Y然後敲回車鍵即可完成保存並退出。

安裝固件

一些驅動需要先在系統上安裝附加的固件才能工作。這經常用於網路介面,特別是無線網路介面。非常多的固件都打包在sys-kernel/linux-firmware里:

安裝時間比較短,馬上就可以了。

文件系統信息處理

在Linux系統下,系統所用到的所有分區都必須在 /etc/fstab文件中指明。這個文件包含了這些分區的掛載點(在系統目錄樹中的位置)、掛載方法和特殊掛載選項(是否自動掛載,是否某個用戶可以掛載它等)。

創建/etc/fstab文件

介紹

/etc/fstab文件使用一種特殊語法格式。每行都包含六個欄位。這些欄位之間由空白鍵(空格鍵,tab鍵,或者兩者混合使用)分隔。每個欄位都有自己的含意:

1.#第一個欄位顯示要掛載的特殊 block 設備或遠程文件系統。 有幾種設備標識符可用於特殊塊設備節點,包括設備文件路徑,文件系統標簽,UUID,分區標簽以及UUID。

2.第二個欄位是分區掛載點,也就是分區應該掛載到的地方

3.第三個欄位給出分區所用的文件系統

4.第四個欄位給出的是掛載分區時mount命令所用的掛載選項。由於每個文件系統都有自己的掛載選項,建議你閱讀mount手冊(man mount)以獲得所有掛載選項的列表。多個掛載選項之間是用逗號分隔的。

5.第五個欄位是給dump使用的,用以決定這個分區是否需要dump。一般情況下,你可以把該欄位設為0(零)。

6.第六個欄位是給fsck使用的,用以決定系統非正常關機之後文件系統的檢查順序。根文件系統應該為1,而其它的應該為2(如果不需要文件系統自檢的話可以設為0)。

註:Gentoo 提供預設的/etc/fstab不是有效的fstab。

掛載其它分區

MBR(BIOS)和GPT都支持“文件系統”標簽和“文件系統”的UUID。這些屬性可以在/etc/fstab中定義,作為試圖查找和掛載塊設備時使用的掛載命令的替代選項。文件系統標簽和UUID由標簽和UUID首碼標識,可以使用blkid命令查看:

blkid

註:如果刪除分區內的文件系統,則文件系統標簽和UUID值隨後將被更改或刪除,由於唯一性,建議使用MBR樣式分區表的讀取器使用uuid而不是標簽來定義/etc/fstab.

使用GPT路徑的用戶可以使用更多的“robust”選項來定義/etc/ fstab中的分區。不管為分區本身選擇了什麼文件系統,分區標簽和分區uuid都可以用來標識塊設備的各個分區。分區標簽和uuid分別由PARTLABEL和PARTUUID首碼標識,通過運行blkid命令可以在終端很好地查看:

blkid

註:雖然對於分區表不總是正確的,但使用UUID來標識fstab 中的分區,即使將來文件系統更改,也可以保證在尋找某個捲時引導載入程式不會被混淆。對於經常重新啟動並定期添加和刪除SATA設備時,在 fstab 中定義分區,使用舊的預設分區文件 (/dev/sd*N非常危險) 。

有些用戶不希望/boot/分區自動掛載,以提高系統的安全性。 他們應該用noauto.代替 defaults。這意味著這些用戶將需要在每次他們想要使用它時手動掛載這個分區。

以下的為例子,當然也是我的設置:

添加完成後請按Ctrl+X,按Y並按回車鍵即可完成保存和退出。

註:auto選項可以使mount 猜測文件系統(推薦對於可移動設備採用這個選項,因為它們可能採用很多不同的文件系統),而 user選項使得非root用戶可以掛載光碟機。

為了提高性能,大多數用戶想要添加 noatime mount選項,這將擁有更快的系統,因為訪問時間沒有註冊(一般不需要這些)。 這也推薦用於固態硬碟(SSD)用戶,他們還應該啟用discard 安裝選項(現在只支持ext4和btrfs),這使得 TRIM命令有效。

網路信息

設置主機名和功能變數名稱

現在個性化你的系統:

然後Ctrl+X(按Y再按回車)即可保存並退出。

註:只有當ISP或網路管理員這麼說,或者網路有DNS伺服器,而不是DHCP伺服器時,這才是必要的。如果系統使用DHCP進行動態IP地址分配和網路配置,則不必擔心DNS或功能變數名稱。

註:如果/etc/conf.d/net文件預設不存在,因此需要創建。

註意該文件沒有內容,所以需要自己添加,然後Ctrl+X(按Y再按回車)即可保存並退出。

註: 如果你選擇不設定功能變數名稱,你可以去掉登錄界面上的這條信息:“This is hostname.(none)”。你只需要修改/etc/issue ,把字元串.\O從該文件里刪掉即可。

如果你有一個NIS域(如果你不知道這是什麼,就說明你沒有),你也需要定義一個:

然後Ctrl+X(按Y再按回車)即可保存並退出。

配置網路

在安裝Gentoo Linux期間,已經配置了網路。但是,這是針對安裝CD本身,而不是針對已安裝的環境。現在,網路配置是為已安裝的Gentoo Linux系統做的。

首先安裝net-misc/netifrc:

如果你需要配置你的網路連接,不管是因為你是需要指定DHCP選項還是你不使用DHCP,打開 /etc/conf.d/net:

註:這假定網路介面將被稱為eth0。 然而,這非常依賴於系統。 如果安裝介質足夠新,則建議在從安裝介質引導時將介面重命名。 更多信息可以在網路介面命名中找到。

靜態IP定義
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

若要使用DHCP,請定義config_eth0:(系統預設使用DHCP。如果使用DHCP的話,你需要安裝一個DHCP客戶端,這個在後面安裝系統工具時會提到。)

DHCP定義
config_eth0="dhcp"

但是我的網路介面是eno16777736,所以設置如下:(建議設置為dhcp,否則在新gentoo系統中無法聯網)

添加上去,然後Ctrl+X(按Y再按回車)即可保存並退出。

在啟動時自動啟用網路鏈接

為了在啟動時自動激活網路介面,你必須添加這些到預設運行級別。

註:如果系統有多個網路介面,那麼需要創建適當的net.* 文件,就像我們使用net.eth0一樣。

如果在啟動系統之後,我們發現關於網路介面名稱的假設(目前已記錄為eth0)是錯誤的,那麼執行以下步驟來糾正這個錯誤:

1.更新/etc/conf.d/net具有正確介面名稱的文件(如eno16777736而不是eth0).

2.創建新的符號鏈接(如/etc/init.d/net.eno16777736).

3.刪除舊的符號鏈接 (rm /etc/init.d/net.eth0).

4.創建新的 default runlevel.

5.刪除舊的rc-update del net.eth0 default.

hosts 文件

現在你需要告訴Linux有關你的網路的信息,這需要在/etc/hosts文件中定義,它將幫助你將那些無法被功能變數名稱解析器解析的主機名解析成IP地址。

添加上去,然後Ctrl+X(按Y再按回車)即可保存並退出。

可選:啟用PCMCIA

筆記本好像有這個功能,沒有可跳過。

PCMCIA用戶首先應該安裝sys-apps/pcmciautils軟體包:

設置系統信息

Root 密碼

密碼不要設置得過於簡單。

配置引導和啟動

Gentoo(在使用OpenRC時)使用/etc/rc.conf配置系統的服務,啟動和關閉, 打開 /etc/rc.conf並查看文件中的所有註釋, 設置並根據需要進行更改。

nano -w /etc/rc.conf

註:更改設置的話只要把前面的“#”去掉即可應用設置。

接下來,打開/etc/conf.d/keymaps 來處理鍵盤設置,編輯它就可以設置你的鍵盤。

註:要特別註意keymap這個變數 。如果你選擇了錯誤的KEYMAP,在你敲擊鍵盤的時候會有奇怪的結果。

你可以保持預設設置,我修改為cn,選擇的是漢語鍵盤。

然後Ctrl+X(按Y再按回車)即可保存並退出。

設置時鐘:

nano -w /etc/conf.d/hwclock

如果你機器上的時鐘不用UTC,你需要在配置文件加上clock="local",否則,你的時鐘就有可能出現偏差。

安裝系統工具

安裝基本工具

 安裝系統日誌工具,並且把它加入到預設的運行級別:

接下來你可以選擇cron守護進程,儘管這是可選的並且不是系統所必須的,但是最好能夠安裝一個。

註:Gentoo提供了三個可選的cron守護進程: sys-process/bcronsys-process/dcronsys-process/fcron, and sys-process/cronie。安裝這其中一個的方法和安裝一個系統日誌工具的方法類似。

註:如果使用dcron或fcron,則需要執行額外的初始化命令:

crontab /etc/crontab

文件索引工具安裝:(為了對文件系統進行索引以提供更快的文件定位功能)

可選:遠程訪問

若要能夠在安裝後遠程訪問系統,請添加SSHDinit腳本到預設運行級別:

如果需要終端訪問(在遠程伺服器的情況下這是可能的),請在 /etc/inittab中取消註釋控制台部分:

nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

文件系統工具

根據你所使用的文件系統的不同,你需要安裝必須的文件系統工具(用於檢查文件系統完整性、創建額外的文件系統等)。請註意管理ext2,ext3和ext4文件系統的工具 (sys-fs/e2fsprogs)已經做為系統的一部分被安裝了,以下的表格列出了特定文件系統所需要安裝的工具。

FilesystemPackage
Ext2, 3, and 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs

安裝網路工具

安裝DHCP客戶端

儘管是可選的,但大多數用戶會發現他們需要一個DHCP客戶端來連接到他們網路上的DHCP伺服器,請藉此機會安裝DHCP客戶端。如果忘記了這一步驟,那麼系統可能無法進入網路,從而使得以後無法下載DHCP客戶端。

可選:安裝PPPoE客戶端

如果你需要ppp來連接網路,你需要安裝它 net-dialup/ppp :

可選:安裝無線網路工具

如果系統將連接到無線網路,請安裝以下工具:

配置引導載入程式

完成配置Linux內核、安裝系統工具和編輯配置文件,現在是時候去安裝Linux安裝的最後一個重要的步驟:引導器。

引導器負責在引導過程中啟動內核——如果沒有它,系統將不知道按下電源鍵後將如何進行。

介紹:以前,Gentoo Linux使用現在稱為GRUB Legacy的推薦引導載入程式。顧名思義,舊的GRUB包不再被積極維護,而是被GRUB2取代。有關遺留GRUB的更多信息,請參閱其GRUB文章。預設情況下,大多數Gentoo系統現在都依賴於GRUB2(可以在系統引導/grub包中找到),它是grub Legacy的直接繼承者。沒有額外的配置,GRUB2很樂意支持較舊的BIOS(“pc”)系統。在構建之前,只需進行少量的配置,GRUB2就可以支持6個以上的額外平臺。

安裝Grub 2

當使用只支持MBR分區表的,舊版BIOS系統時,無需進行其他配置即可安裝GRUB 2:

安裝需要一會兒時間,請稍後。

GRUB2現在已經安裝到系統中了,但是還沒有激活。

UEFI用戶註意事項

運行上述命令將在安裝之前輸出啟用的grub_platform值。在使用具有UEFI功能的系統時,用戶需要確保啟用了grub_platform =" ei -64"(預設情況下是這樣的)。如果設置不是這樣,則需要向/etc/portage/make.conf中添加grub_platform =" ei -64"conf文件在出現GRUB2之前,使該包支持EFI功能:

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

如果在不啟用grub_platform =" ei -64"的情況下安裝了GRUB2,則可以添加該行(如上所示)來make。然後,通過傳遞-update -newuse選項重新計算grub 2包集的依賴關係:

emerge --ask --update --newuse --verbose sys-boot/grub:2

激活Grub 2

接下來,通過grub-install命令安裝GRUB2所需的文件到/boot/grub/目錄,假設第一塊磁碟(引導系統的那塊)是/dev/sda,將使用下麵的一條命令:

使用BIOS時:

配置已完成(沒有報告錯誤)。

使用UEFI時:

在運行grub-install之前,確保已經安裝了EFI系統分區。GRUB -install可以將GRUB EFI文件(grubx64.efi)安裝到錯誤的目錄中,而不提供使用錯誤目錄的任何指示。

grub-install --target=x86_64-efi --efi-directory=/boot

註:將--aix-directory選項修改為EFI系統分區的根,如果/boot分區沒有格式化為FAT分區,那麼這是必要的。

註:如果GRUB安裝是出現錯誤,如Could not prepare Boot variable: Read-only file system,可能需要將efivars掛載為讀寫,這樣才能成功:

mount -o remount,rw /sys/firmware/efi/efivars

一些主板製造商似乎只支持efi系統分區(ESP)中. efi文件的/efi/boot/目錄位置,GRUB安裝程式可以使用--removable選項自動執行此操作。在運行以下命令之前,請驗證ESP是否已掛載。假設ESP安裝在/boot(如前面所建議的),執行:

grub-install --target=x86_64-efi --efi-directory=/boot --removable

這將創建UEFI規範定義的預設目錄,然後複製grubx64。將efi文件設置為相同規範定義的“預設”efi文件位置。

再一次配置

要生成最終的GRUB2配置,運行grub-mkconfig命令:

註:需要註意至少找到一個Linux鏡像在命令的輸出中,它們是用來引導系統的,如果沒有,請查看第二期的筆記的配置內核部分。

到此,Grub 2激活成功!

備選:LILO

介紹:LILO (the LInuxLOader,) 是Linux引導程式的久經考驗的主力。但是它缺少GRUB所擁有的一些特性。LILO仍舊在一些系統上被使用的原因是GRUB無法使用但LILO卻可以。當然還因為一些人是先認識了LILO而且對它忠心不二。不管怎樣,Gentoo可以支持它們兩個啟動器,下麵為安裝命令:

emerge --ask sys-boot/lilo

要配置LILO,首先要創建 /etc/lilo.conf:

nano -w /etc/lilo.conf

註:如果根文件系統是JFS,請在每一個引導條目之後增加 append="ro"因為JFS在它被掛載為可讀寫之前需要重放它的日誌。

由於備選項目過長,請閱讀:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader,裡面有詳細的安裝以及激活配置過程。

關於備選:efibootmgr,請閱讀:https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader,裡面有詳細的安裝以及激活配置過程。

關於備選:Syslinux,Syslinux是amd64架構的另一種引導裝載程式。它支持MBR,從版本6.00開始,它支持EFI引導。還支持PXE(網路)啟動和不太為人所知的選項。雖然Syslinux對於許多人來說是一種流行的引導程式,讀者可以在Syslinux文章中找到有關出現和安裝這個引導載入程式的信息。

重啟系統

退出chroot環境並unmount全部已掛載的分區。然後敲入一條有魔力的命令來初始化最終的、真實的測試:reboot。

當然,別忘了移除可引導CD,否則可能再次從CD啟動,而不是新的Gentoo系統。

當重啟進全新安裝的Gentoo環境,請完成本筆記最後最後的安裝工作。

重啟後進入如下界面:

選擇第一項,進入後先進行檢索,然後進入如下:

先添加一個日常用戶,在Unix/Linux系統中,用root進行工作是一件危險的事情,應該儘量避免。因此強烈推薦您為日常使用添加一個普通用戶。

先運行root來創建日常用戶:(root密碼之前在安裝前已經設置了,請記住root密碼,切勿忘記)

useradd -m -G users,wheel,audio -s /bin/bash larry

如果一個用戶仍需要以root身份做一些任務,他們可以使用su -來臨時得到root許可權。另一種方式是使用sudo包,如果配置正確的話,非常安全。

清理磁碟

當Gentoo安裝完畢並且系統已經重啟過,如果所有事情都完成好了,我們現在要從硬碟上刪除下載的stage3的tar包。記住它們下載在/目錄。

rm /stage3-*.tar.bz2*

下麵就是Gentoo的最終界面:

到此Gentoo系統安裝完畢!!!

等等。。。。。還沒有結束,我還有圖形桌面沒裝呢,看著上面這個界面我就感覺非常鬱悶,接下來差最後一步就是安裝桌面了,這個花費的時間可能很漫長。

系統UEFI啟動需要的Hybrid ISO(LiveDVD)

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

Hybrid ISO(LiveDVD)下載地址:https://www.gentoo.org/downloads/

下麵將會演示一次開啟終端安裝gentoo方法,當然安裝gentoo的方法是和最小化CD安裝一樣的,只是想要使其系統以UEFI啟動的,必須在LiveDVD的基礎上安裝gentoo而已。

選第一項,gentoo預設內核,支持K8 CPU(包括NUMA支持)和EM64T CPU。gentoo-nofb與“gentoo”相同,但沒有framebuffer支持。

載入一段時間,然後進入以下界面,直接點擊登錄即可,無需輸入密碼:

關於本筆記

1.本筆記是嚴格執行wiki官方英文原版的安裝步驟來進行安裝gentoo的,本次安裝gentoo經本作者親自測試,最終成功裝到基礎系統(黑白文字系統)。

2.本作者也認為手冊里的分區不太合理,但是在虛擬機中測試的就不用那麼執著,當然你也可以新分/home等其他新區,但是安裝過程中出現分區等問題就要自己先檢查下自己分的區有沒有掛載了等等。

3.本作者是使用虛擬機來安裝gentoo,沒有通過自身電腦來測試過,對於在自身電腦出現的問題不清楚,一般情況下,嚴格按照wiki英文原版手冊或本人寫的筆記來安裝,在虛擬機上基本沒什麼大問題,基礎系統最終是可以成功安裝到的,至於在其中的手動配置內核階段配置出現問題與本作者無關。

4.本作者樂意分享這次安裝gentoo的經驗,特地寫了安裝gentoo的筆記,本筆記僅供學習和參考,適合初次使用gentoo的初學者學習和借鑒。

5.最後重要的一點是本作者也在摸索gentoo的階段中,至於高深的問題自行百度吧!!!(gentoo百度貼吧大神多多)

結尾

雖然基礎系統裝了,但也在配置內核的時候倒過多次,最後還是成功了,安裝gentoo就是耗費時間長,但是這並沒表示結束,還有桌面沒有安裝,單單看著黑白的文字系統我就覺得難受

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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...