Gentoo虛擬機安裝教程

Gentoo是一個非常著名的發行版,在Linux高手中非常流行。之前我也是被Gentoo的威名震懾了,所以一直沒有嘗試安裝,最近感覺可以嘗試一下了。所以今天來看看如何在虛擬機中安裝Gentoo吧。本文參考了Gentoo 安裝手冊,如果想了解更多關於安裝Gentoo的知識,可以直接查看官方文檔。

當然有一說一,Gentoo的安裝確實比Arch複雜多了。Arch其實安裝起來並不算複雜,就是第一次操作命令行不熟悉,而Gentoo相比之下複雜多了,感覺難度是Arch安裝5倍不止。特別是配置內核這一項的複雜程度,可能就頂了Arch整個安裝的複雜度。

準備工作

下載鏡像

首先到Gentoo官網下載所需的網絡安裝鏡像,和Arch一樣,Gentoo沒有提供完整安裝包,只有一個網絡安裝鏡像。當然硬要說的話,Gentoo還是有完整鏡像的,不過這個鏡像已經三四年沒有更新了,所以我們完全不用管它。

下載網絡安裝鏡像

啓動虛擬機

首先新建虛擬機的過程就不說了,我選擇的CPU是2核,內存2G,硬盤空間32G,啓動方式EFI。除了啓動方式必須設置成EFI以外,其他設置全部按大家實際情況來就行了。設置好之後用網絡鏡像啓動虛擬機,應該會看到如圖所示的界面。

啓動界面

非常有趣的一點就是Gentoo的Live環境了,它雖然是命令行終端,但是卻非常神奇的支持鼠標操作,。鼠標拖動選擇文本等操作全部支持,真的是讓人驚歎。

進入Live界面

開啓SSH

雖然虛擬機是可以支持剪貼板複製等操作的,但是在系統安裝過程中是沒辦法支持的。所以接下來要輸入的大量命令會讓人感到十分困擾。所以爲了方便最好開啓SSH,這樣我們好歹大部分命令可以直接複製粘貼。

rc-service sshd start

默認root密碼爲空,爲了能夠SSH,還有手動設置一下root密碼。

passwd

開啓成功之後,輸入ip a命令查看一下虛擬機的IP,然後我們就可以SSH到虛擬機內部了。
查看IP地址

這樣一來就不需要手打命令了。當然並不是說所有命令都能無腦複製粘貼,有些地方還是需要根據自己需求進行修改的。使用SSH還有一個好處就是在下面配置區域的時候,如果你只指定了中文區域,在終端中漢字會顯示成方塊,但是在SSH中可以正常顯示。如果你準備直接在終端中輸入命令的話,記得同時啓用英文區域。

成功登錄

安裝Stage3文件

磁盤分區

當然,因爲是虛擬機安裝,所以燒錄鏡像、配置網絡等複雜步驟不需要進行,我們直接從磁盤分區開始。因爲我是EFI方式啓動,所以要分兩個區,ESP以及根分區。

parted /dev/sda mklabel gpt
parted /dev/sda mkpart efi fat32 0% 512M
parted /dev/sda mkpart root ext4 512M 100%
parted /dev/sda set 1 esp on

# 格式化分區
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

最後將根目錄分區掛載爲/mnt/gentoo,就可以進行下一步的工作了。

mount /dev/sda2 /mnt/gentoo

安裝Stage3

這裏簡單按我的理解介紹一下Gentoo的包,詳細信息請參考關於Stage Tarball的官方文檔,簡單說來可以分爲Stage 1/2/3/4四個類型:Stage 1可以簡單理解成源代碼的包;Stage 2同樣包含了Stage 1的所有文件,但是同時還包含了Stage 1編譯出來的文件,也就說是Stage 2是自包含的包(自己可以編譯出自己);Stage 3則是包含了系統必備工具的集合,也就是我們這裏要安裝的系統基礎組件(不包括內核和引導器);Stage 4除了Stage 3的文件之外,還包含了內核和系統引導器,所以Stage 4就是一個可運行的包。這裏我們要學習如何安裝Gentoo,所以選擇下載Stage 3就可以了,Stage 4主要是用於虛擬機快速運行之類的。

我們到清華鏡像尋找最新的Stage 3的包,可以看到這裏有很多文件,x32的我們不需要,帶nomultilib的也不需要,iso的也不需要。我們要找的就是tar.xz格式的歸檔文件,除了包以外,還有三個附加文件分別包含了歸檔包的內容信息(CONTENTS)、校驗信息(DIGESTS)以及加密的校驗信息(DIGESTS.asc)。我們要把文件和三個校驗文件全部下載下來。

尋找Stage 3包

下載命令如下,當然在下載之前,必須將工作目錄切換到/mnt/gentoo也就是我們的根目錄下,這樣做的目的很簡單,因爲一會要將系統文件解壓到根目錄下。這裏的下載鏈接是我目前複製出來的,假如大家以後看到本文的話,需要自己打開瀏覽器重新複製一下文件下載鏈接。

# 必須先切換到/mnt/gentoo
cd /mnt/gentoo

wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20200223T214502Z.tar.xz
wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20200223T214502Z.tar.xz.CONTENTS
wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20200223T214502Z.tar.xz.DIGESTS
wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20200223T214502Z.tar.xz.DIGESTS.asc

如果條件不允許,還可以使用另外一種方式避免手動輸入這麼一大長串鏈接。這就是利用文本瀏覽器link來上網並下載文件,光標選擇,回車點擊超鏈接,d開始下載,q退出瀏覽器。我們要做的就是用文本瀏覽器訪問清華鏡像網站,然後下載文件。

links https://mirrors.tuna.tsinghua.edu.cn/gentoo/

文本瀏覽器界面如下,使用起來也不算麻煩,將文件本體以及三個校驗文件全部下載下來。

使用文本瀏覽器下載

然後用下面的命令來校驗文件。

sha512sum -c stage3-amd64-*.tar.xz.DIGESTS

文件正確的話,應該會顯示兩個OK兩個FIALED。失敗的是另一種校驗算法,只要有兩個OK,就說明我們下載的文件是正確無誤的。

校驗文件

最後用下面命令來解壓文件,後面的兩個選項的作用是保留歸檔文件中所有文件正確的權限和命名空間關係。這樣Gentoo的Stage3文件就算安裝完成了。

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

配置基本系統

設置編譯選項

Gentoo是一個源代碼發行版,安裝大多數軟件的時候,其實都是安裝的源代碼,然後在本地編譯的。爲了能夠更快更好的編譯軟件,還需要配置一下portage的編譯選項。

# 編輯配置文件
nano /mnt/gentoo/etc/portage/make.conf

# 修改COMMAN_FLAGS
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# 添加MAKEOPTS,數字改成虛擬機設置的總內核數+1
MAKEOPTS="-j5"

設置鏡像源

用下面的命令設置鏡像源,推薦選擇清華大學鏡像源,按空格選中,然後回車確認。設置成功後,應該可以在文件最後面看到清華大學的鏡像源。

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

# 或者你懶得選擇,直接把清華鏡像源加到配置文件後面也可以
echo 'GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo"' >> /mnt/gentoo/etc/portage/make.conf

然後創建Portage配置文件目錄,並將Gentoo安裝鏡像裏的配置文件複製給我們的系統。

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

另外還要複製DNS信息,這裏--dereference參數是必須的,不然可能複製到的只是一個鏈接而已。

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

掛載必要的文件系統

爲了讓新系統能夠正常運行,需要掛載以下文件系統。

mount --types 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

切換進入新環境

用下面的命令切換到新的環境中,最後一條命令不是必須的,但是它會在命令提示符前面添加一個(chroot)提示我們處在新環境中。

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

掛載boot分區

這裏很多發行版都使用了不同的掛載點,最常用的掛載點是/boot/efi,ArchWiki裏推薦使用/efi,而這裏Gentoo文檔中介紹的是使用/boot,我們按照文檔走就可以了。

mount /dev/sda1 /boot

配置Portage

Portage是Gentoo的軟件包管理器,首先我們從網絡上下載數據庫快照。

emerge-webrsync

然後選擇列出可用的profile,從中選擇一個。這裏又用到了另外一個工具eselect,它是Gentoo的通用管理界面,讓我們方便的完成系統的各種配置和操作。因爲Gentoo安裝比較複雜,而且又是編譯安裝,所以這裏選擇其他profile的話,可能編譯時間會非常長。因此這裏大家看看就好,保持默認即可。

# 先列出可用的profile,帶星號是目前選擇的
eselect profile list
# 假如你想選擇的話
eselect profile set 2

下面是我的profile輸出。
查看profile

更新@world set

@world集合是Gentoo所有軟件和配置的集合,要進行下一步的安裝和配置,必須先更新@world集合。

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

配置USE環境變量

作爲一個源代碼編譯的Linux發行版,Gentoo的很多軟件包並不是直接安裝二進制版本,而是下載源代碼由用戶選擇編譯。USE環境變量就是Gentoo提供給用戶的一個工具,利用它可以指定一些環境變量,在編譯的時候啓用或者禁用某些功能。假如我現在要安裝的是Gnome桌面,就可以禁用Qt的編譯選項,這樣編譯出來的軟件就不包含Qt的功能,軟件包更加小巧,運行起來也會更快一點。

當然新手用戶就沒有必要更改這些高級選項了,默認的就完全夠用了。如果你想要看看USE變量裏面有什麼東西的話,可以用下面的命令。

emerge --info | grep ^USE

如果想查看USE變量裏面所有可用的選項,可以用下面的命令。

less /var/db/repos/gentoo/profiles/use.desc

配置時間和區域

首先要配置時區。

echo Asia/Shanghai > /etc/timezone
emerge --config sys-libs/timezone-data

然後配置區域。

echo 'zh_CN.UTF-8 UTF-8' >> /etc/locale.gen
# 如果你不用SSH,需要添加英文區域
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
locale-gen

# 列出可用的區域
eselect locale list
# 選擇中文區域的編號
eselect locale set 2

最後重新加載一下環境變量。注意一下上面的設置,如果你是SSH到虛擬機系統的話,可以放心配置中文區域,但是如果你是直接在虛擬機終端裏操作的話,需要在eselect locale set那裏選擇英文區域,不然漢字是無法正確顯示的。

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

安裝和配置內核

官方文檔這裏詳細介紹瞭如何配置和優化內核,開啓必須的功能,關閉不必要的功能。雖然對於初學者來說貌似這是很高深的知識,但是如果你照着做的話,會發現配置內核也不是這麼困難的工作。當然如果你還是有點心虛的話,Gentoo也可以自動配置內核。

首先安裝內核源代碼和內核編譯工具。因爲Gentoo的安裝是在本地編譯的,所以用時比較長。假如你發現安裝瞬間完成,是因爲沒有更新配置文件的原因。需要輸入etc-update並選擇-3自動更新配置文件,然後重新輸入命令即可編譯安裝。

emerge --ask sys-kernel/gentoo-sources
emerge --ask sys-kernel/genkernel

配置fstab

fstab是一個很重要的文件,在系統啓動的時候,會讀取fstab文件並掛載fstab中記錄的分區。這裏我們有boot分區和根目錄分區兩個要掛載的分區。而genkernel工具要安裝內核的話,自然需要知道我們的啓動分區在哪裏,因此首先要配置fstab文件。

首先用lsblk -f命令查看分區信息,要注意UUID和標籤。另外要注意如果重新分區或者格式化,這些信息就會發生變化。

知道了標籤和UUID,就可以填寫fstab信息了,雖然也可以用/dev/sda1這樣的塊設備名稱,但是不夠安全。所以我們用UUID來編寫fstab。第一個是分區名,推薦使用標籤或者UUID;第二個是掛載點,也就是分區掛載的位置;第三個是分區的文件系統類型;第四個是掛載選項;第五個dump參數,默認0即可;第六個pass參數,對於根分區要設置成1,其他分區設置成2。最後fstab應該類似這樣。當然UUID或者標籤應該改成你自己實際的值。你的fstab文件應該類似下面這樣。

UUID=1f3f0313-cfc3-47d3-90e3-52c6d1b67757       /       ext4     noatime 0 1
UUID=2E77-ED51          /boot           vfat    defaults,noatime                0 2

手動配置內核

在開始手動配置內核之前,我們需要了解硬件的各項信息,這需要安裝另一個包來做到。

emerge --ask sys-apps/pciutils

在配置之前,還可以通過lsmod命令來查看當前所處的Gentoo Live鏡像開啓的功能, 這可以作爲我們在配置內核時的重要參考。

一切準備好之後,就可以切換到內核源代碼目錄並打開配置菜單。

cd /usr/src/linux
make menuconfig

這樣就會打開一個終端界面的圖形化配置工具,和其他一些終端工具操作方法類似,光標鍵選擇,空格選擇,按兩下Esc退回到上一個界面,/是搜索。
內核配置工具界面

必選配置

有些內核選項是必須的,必須編譯到內核中,而不是作爲模塊加載。*表示包括到內核中,M表示作爲模塊加載,[]只有包括到內核中和排除在外兩種選項,<>則有包括到內核中、排除在外和以模塊加載三種選項。下面這些選項都必須以*方式編譯到內核中。

devtmpfs支持。

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

SCSI磁盤支持。

Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support

選擇支持的文件系統。因爲前面我用的FAT32格式化的ESP,EXT4格式化的根目錄,所以這裏這兩項(FAT32也就是VFAT)必須包括到內核中,虛擬內存和proc文件系統也是必選的。其實這裏還可以取消掉不需要的文件系統,但是對於新手我不建議取消任何自己不明白的東西,很容易弄的最後內核沒辦法啓動。

File systems --->
  < > Second extended fs support
  < > The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  < > Reiserfs support
  < > JFS filesystem support
  < > XFS filesystem support
  < > Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
 
Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

假如你使用PPPoE撥號的話,還需要啓用以下功能。但是因爲我們是虛擬機嘛,所以就不用動下面的設置了。

Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

如果你的處理器是多核的,還需要開啓SMP(對稱多處理器支持)。

Processor type and features  --->
  [*] Symmetric multi-processing support

就算是虛擬機,也經常遇到使用USB的情況,所以USB也必須啓用。

Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support

系統體系相關的內核配置

因爲我們選擇了multlib,所以32和64位的程序都會安裝。爲了支持32位程序,必須啓用32位程序模擬功能。這裏其實倒是不用怎麼改,默認已經都選上了。

Processor type and features  --->
   [*] Machine Check / overheating reporting 
   [*]   Intel MCE Features
   [*]   AMD MCE Features
   Processor family (AMD-Opteron/Athlon64)  --->
      ( ) Opteron/Athlon64/Hammer/K8
      ( ) Intel P4 / older Netburst based Xeon
      ( ) Core 2/newer Xeon
      ( ) Intel Atom
      (*) Generic-x86-64
Binary Emulations  --->
   [*] IA32 Emulation

啓用GPT支持,因爲前面我用的GPT分區表,EFI啓動方式,所以這兩項也必須啓用。

-*- Enable the block layer --->
   Partition Types --->
      [*] Advanced partition selection
      [*] EFI GUID Partition support

EFI的支持。

Processor type and features  --->
    [*] EFI runtime service support 
    [*]   EFI stub support
    [*]     EFI mixed-mode support
 
Firmware Drivers  --->
    EFI (Extensible Firmware Interface) Support  --->
        <*> EFI Variable Support via sysfs

虛擬機相關內核配置

這裏我用的是VMware,所以下列內核選項也必須選擇。某些選項依賴其它選項,使用搜索功能查看具體的依賴項,然後依次啓用。

[*] Networking support  --->
        Networking options  --->
            <*> Virtual Socket protocol
            <*>   VMware VMCI transport for Virtual Sockets 
    Device Drivers  --->
            Misc devices  --->
                <*> VMware Balloon Driver
                <*> VMware VMCI Driver
            SCSI device support  --->
                [*] SCSI low-level drivers  --->
                   <*>   VMware PVSCSI driver support
        [*] Network device support  --->
                [*]   Ethernet driver support  --->
                    [*]   AMD devices
                    <*>     AMD 8111 (new PCI LANCE) support
                    <*>     AMD PCnet32 PCI support
                    [*]   Intel devices
                    <*>     Intel(R) PRO/1000 Gigabit Ethernet support
                    <*>     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support 
                <*>   VMware VMXNET3 ethernet driver
            Input device support  --->
                [*]   Keyboards  --->
                    <*>   AT keyboard
    File systems  --->
        <*> FUSE (Filesystem in Userspace) support

把上面所有必選項都配置好之後,選擇save保存配置文件,然後exit退出。默認配置文件名是.config,但是最好手動複製一個備份,有時候默認名稱的配置文件會莫名丟失,只能重頭再配置一次。然後就可以開始編譯和安裝了。這個過程可能持續十分鐘到幾個小時,主要取決於你選擇的功能大小以及電腦配置。

# 編譯內核
make && make modules_install
# 編譯完成後安裝內核到boot分區
make install

自動編譯內核

如果你感覺手動配置內核比較麻煩,或者辛辛苦苦配了半天,結果內核沒配對系統進不去了。可以考慮第二種方式,就是自動編譯內核。這種方式有個缺點就是會開啓大部分選項,所以編譯內核用時比較長。

網上查了一下可能需要幾十分鐘到兩三個小時,在虛擬機中編譯的話可能用時更長,但是考慮到自己研究如何把內核跑通可能也得用這麼長時間,所以自動編譯內核也不是不可以。假如你在手動配置內核的時候遭受了很多失敗,不妨考慮考慮電腦掛在那裏讓它慢慢編譯。

genkernel all

安裝firmware和initrampfs

雖然官方文檔說這是可選的,但是爲了保險起見我們還是安裝firmware。

emerge --ask sys-kernel/linux-firmware

別忘了安裝initramfs,如果你是自動編譯內核的話,可以不用安裝initramfs,因爲genkernel all會自動安裝內核以及initramfs。

genkernel --install initramfs

內核編譯完畢之後,查看/boot分區內容,應該會看到initramfs和vmlinuz文件,這樣內核就準備就緒了。

配置系統

接下來就是一些系統配置工作。

網絡配置

設置主機名

nano -w /etc/conf.d/hostname
# 設置主機名
hostname="mygentoo"

配置網絡

先安裝軟件包。

emerge --ask --noreplace net-misc/netifrc

然後配置DHCP。

nano -w /etc/conf.d/net

# 添加DHCP配置
config_eth0="dhcp"

配置網絡自啓動。

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

等到成功進入系統以後,可能會出現沒網的情況,因爲默認的網絡接口名字不一定是eth0,這時候需要使用ip a查看一下實際的名稱,然後重新編輯一下網絡配置。

# 添加正確的網絡配置
cd /etc/init.d
ln -s net.lo net.eno16777736
rc-update add net.16777736 default

# 刪除錯誤的配置
rm /etc/init.d/net.eth0
rc-update del net.eth0 default
# 啓動網絡
rc-service net.16777736 start

實際網絡接口名

設置root密碼

別忘了設置root密碼。

passwd

安裝工具

還有一些系統工具也需要安裝。

日誌工具

安裝和啓動日誌工具。

emerge --ask app-admin/sysklogd
rc-update add sysklogd default

遠程登錄

因爲前面設置了中文區域,所以終端會顯示方塊。最好這裏直接預先開啓SSH服務,方便以後遠程登錄。

rc-update add sshd default

文件系統工具

因爲系統使用了FAT32和EXT4兩個文件系統,所以至少這兩種工具必須安裝。

emerge --ask sys-fs/dosfstools sys-fs/e2fsprogs

網絡工具

安裝DHCP工具。

emerge --ask net-misc/dhcpcd

添加用戶

root用戶是特權用戶,日常使用並不安全,所以需要添加新用戶。

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

磁盤清理

是不是想起來有些地方不對勁,沒錯,還有一開始下載的stage3文件,假如最後系統成功啓動了的話,他們就沒用了,可以安全的刪除掉。

rm /stage3-*.tar.*

安裝系統引導器

最後一步就是安裝系統引導器了,推薦使用grub,功能齊全。

安裝grub

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

將grub安裝到系統中

grub-install --target=x86_64-efi --efi-directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg

安裝完畢之後,輸入exit退出chroot環境。

(chroot) livecd ~ # exit

然後就umount分區,然後重啓系統。

cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot

系統成功啓動好了嗎?

重啓之後應該會看到grub的界面,但是別以爲這就成功了。因爲重點是手動配置編譯的內核是否能夠正常啓動。所以接下來繼續觀察,看看是否可以成功啓動內核進入系統。如果你一次性安裝成功,那麼恭喜了。

但是我前後總共裝了三四天才算成功。第一天照着官方文檔慢慢看慢慢敲命令,第二天卡在了配置內核這一步了,然後前後反覆測試,最後把前面的各種步驟弄得非常熟悉,可以直接複製粘貼命令。最後我放棄了手動配置內核,做好了編譯大半天的準備,於是改用genkernel自動編譯內核。然後最悲催的事情發生了,genkernel半個小時以後失敗了。

最後沒辦法我又開始了手動配置內核的步驟,終於慢慢靠着搜索把文檔列出來的所有項都找到並配置好了。而且爲了保險起見,這次我沒有關閉任何默認內核配置,只按着文檔把所有新的項加上去了。終於奇蹟發生了,重啓之後終於成功了!

安裝screenfetch截個圖,做個紀念。

emerge app-misc/screenfetch

screenfetch

故障排除

block device is not a valid root device gentoo

我一開始用的是XFS做根分區的文件系統,也確實在內核中將XFS相關選項設置爲編譯到內核中,但是奈何不知道哪裏漏了,所以最後啓動系統的時候,出現了這個錯誤。理論上找到所有XFS、驅動程序等相關選項,然後添加到內核配置中重新編譯一下內核,就可以解決問題了。可惜的是我對內核配置一竅不通,百般之下只好認栽,重新用EXT4安裝了一遍,終於成功了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章