gentoo安装笔记

2024-02-20 22:52
文章标签 安装 笔记 gentoo

本文主要是介绍gentoo安装笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近比较闲,所以挑战一下自己,在自己的台式电脑上安装gentoo

下面记录了我亲自安装的步骤,作为以后我再次安装时参考所用。

整体步骤

一般来将一个linux发行版的安装步骤其实大体上都差不多,基本分为一下几步:

1. 制作启动盘

2. 从启动盘启动进入安装流程

3. 硬盘分区

4. 复制文件到分区

5. 安装引导软件(现代linux基本上都是grub)

6. 进行一些初次启动的基础设置

7. 重启进入新系统

8. 对新系统进行个性化设置

每一步都有各自的难点。不过以我的经验来看,最劝退的在硬盘分区这一步,容易搞坏。

另外对新系统进行个性化设置的时候,可能会发现某些地方和用户预期的不太一样,也可能导致劝退。

制作启动盘

大多数发行版都是通过自己的启动盘启动后进入安装步骤。而gentoo可以用任意的linux启动,然后通过chroot切换到安装分区,再进行后续步骤。但是考虑到gentoo安装过程中可能会用到一些自己特定的工具,所以我考虑后还是决定使用gentoo官方的启动盘。

Downloads – Gentoo Linux

我下载了Live GUI USB Image

Rufus - 轻松创建 USB 启动盘

下载了rufus工具。

然后用rufus把刚才下载的gentoo镜像烧录到了u盘上。和其他的发行版不同,gentoo必须要选dd模式烧录出来的usb启动盘才好用。

把刚刚制作好的usb启动盘插入usb口,然后开机,狂按delete键进入bios设置,选择usb存储介质启动,就可以从刚刚制作好的usb启动盘启动。

连通网络

因为gentoo在安装过程中要下载很多文件,所以必须要连通网络。

因为我选的是Live GUI,所以开机启动以后,进入了KDE桌面,会自动识别计算机硬件以及网络。因为我的机器在路由器后面,而路由器开启了dhcp,所以网络变成了自动配置,直接就连接到了网络上。

没错,很多市面上的教程都是讲解的minimal installation CD字符界面的启动盘如何开始配置网络,因为我用的Live GUI,网络配置这步省掉了。

在左下角的开始菜单可以启动浏览器,通过浏览器浏览网页,可以在线阅读安装教程,比纯字符界面的启动盘操作方便多了。

同样通过左下角的开始菜单,启动一个命令行窗口。因为是KDE桌面,所以konsole还可以开启多标签页,可以在一个标签里进行安装,在另一个标签里输入其他命令。这样方便多了。

也许有人认为在纯命令行的minimal installation CD系统下调试网络是一件水平更高的事情,但是我还没到那种水平,先从GUI开始。

Gentoo Linux安装教程20220218(长期更新维护)_gentoo安装-CSDN博客

的作者选择从minimal installation CD启动,通过命令行完成网络配置,然后启动ssh, 通过ssh远程操作来完成所有的后续步骤,这个方法适用于服务器的管理。

我这边是桌面系统,而且既然已经可以通过minimal installation CD启动,也就是说可以物理接触到这台电脑了。那也没有必要非得把安装系统的工作也通过远程来处理,完全可以直接操作电脑完成系统安装,然后在安装好的系统里开启ssh,再通过ssh远程操作完成个性化配置的步骤。

硬盘分区

我的电脑上有多块硬盘,专门拿出一块来做linux系统用,所以我选择全盘安装,为此,我拆开机箱,把其他几块硬盘的sata线拔了,以免误操作把其他几块硬盘上的数据破坏了。

接下来进入实质的硬盘分区步骤。硬盘分区是十分危险的操作,必须要root权限,在gentoo Live GUI环境里,通过sudo来提权执行是不需要输入密码的,但是如果想通过su命令直接切换为root却不行。

我参考了几个文章

How to install Gentoo with UEFI LUKS LVM and systemd | amedeos home

Installing Gentoo – Alice's Digital Notebook

How To Install Gentoo With LVM and Disk Encryption | NKLY

关于硬盘分区,我采用的方案是GPT方式。搭配lvm和btrfs,lvm和btrfs的优势这里就不介绍了,读者可以去自行查阅相关资料。

konsole中输入命令

lsblk

输出结果大概如下

NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda               8:0    0 953.9G  0 disk  
├─sda1            8:1    0   100M  0 part  
├─sda2            8:2    0    16M  0 part  
├─sda3            8:3    0 292.2G  0 part  
├─sda4            8:4    0   680M  0 part  
└─sda5            8:5    0 660.9G  0 part  
sdb               8:16   0 238.5G  0 disk  
├─sdb1            8:17   0   512M  0 part /boot
└─sdb2            8:18   0   238G  0 part  
 ├─system-swap 254:0    0     2G  0 lvm   
 └─system-root 254:1    0   236G  0 lvm  /
sdc               8:32   0   3.6T  0 disk  
├─sdc1            8:33   0    16M  0 part  
└─sdc2            8:34   0   3.6T  0 part  
nvme0n1         259:0    0 465.8G  0 disk  
├─nvme0n1p1     259:1    0    16M  0 part  
└─nvme0n1p2     259:2    0 465.7G  0 part
 

可以看到有sda,sdb,sdc共3个sata硬盘,另外还有一个nvme0n1的nvme 硬盘,从容量和分区上上可以判断到底哪块硬盘是要用的。

当然,也可以使用

fdisk -l

列出的信息会更多。

初步分区

我选择了/dev/sdb作为安装硬盘,那么使用命令

fdisk /dev/sdb

进入分区模式

按m可以弹出提示

按l可以列出已有的分区

按d可以删除分区

按p可以打印出分区表,也就是可以列出各个分区的信息

因为我要使用全盘安装,所以先用d删除所有分区,删除所有分区后按l查看分区情况,然后按n增加新分区。我创建了以下几个分区:

bios启动分区2M,fat格式

boot分区512M,fat32格式

其他硬盘空间划分为一个lvm卷

在这个lvm卷中创建一个swap分区作为系统的swap

把这个lvm卷剩余的空间创建一个btrfs分区作为/分区,在这步其实也可以创建多个分区分别给/,/usr,/home等,但是这不是十分重要的,所以我没有费心处理。

fdisk有点古老,可以设置的内容也比较少,比如卷标之类的不能设置,也可以使用parted命令

parted -a optimal /dev/sdb

进入分区模式后,可以按照以下命令创建分区。

如果是UEFI模式启动

# Make new GPT partition table
mklabel gpt# Create an UEFI ESP
mkpart primary 1MiB 257MiB
name 1 efi
set 1 esp on# Create a boot partition
mkpart primary 257MiB 513MiB
name 2 boot
set 2 boot on# Create a LVM partition
mkpart primary 513MiB 100%
name 3 data-encrypted
set 3 lvm on# Check that everything is correct and quit
print
quit

如果是BIOS模式启动

# Make new GPT partition table
mklabel gpt# Create a BIOS Boot partition
mkpart primary 1MiB 3MiB
name 1 biosboot
set 1 bios_grub on# Create a boot partition
mkpart primary 3MiB 259MiB
name 2 boot
set 2 boot on# Create a LVM partition
mkpart primary 259MiB 100%
name 3 data-encrypted
set 3 lvm on# Check that everything is correct and quit
print
quit

BIOS模式MBR分区不支持2T以上的硬盘,所以现在即使是创建分区也都是用UEFI模式GPT分区。这里之所以有区别,仅仅是考虑到将来启动的时候主板采用的启动模式。说到底还是建议使用UEFI模式。

创建加密的lvm卷组

剩下的第3个分区我打算创建lvm,所以操作有所不同。

如果你希望在lvm上开启加密,那么

cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/sdb3

会提示你是否创建加密分区,输入yes确认,然后按照提示输入加密的密码,这个分区就被加密了。然后使用命令

cryptsetup luksOpen /dev/sdb3 lvm

在这个加密分区上创建lvm卷,这里会提示你输入加密的密码,把刚才的密码输入进去。注意这个命令最后的参数“lvm”这个成为了设备名,所以下一步使用命令

pvcreate /dev/mapper/lvm # /dev/mapper是系统指定的,lvm就是刚刚创建的加密分区名

创建lvm的物理卷

输入命令

vgcreate system /dev/mapper/lvm # 在/dev/mapper/lvm物理卷上创建卷组system

创建卷组
 

创建非加密的lvm卷组

我个人使用的电脑没必要加密,所以我跳过加密这一步,直接创建lvm物理卷。

pvcreate /dev/sdb3

输入命令

vgcreate system /dev/sdb3 # 在/dev/sdb3物理卷上创建卷组system

创建逻辑卷组 

创建lvm分区

不论是加密还是不加密,我创建的卷组名都叫system。卷组创建好以后就可以创建分区,输入命令

lvcreate -L 8G -n system-swap system # 在system卷组内创建system-swap分区
lvcreate -l 100%VG -n system-root system # 在system卷组内创建system-root分区,使用剩余的全部空间

格式化分区

创建分区的时候是不能指定文件系统的,所以创建分区完成后,使用以下命令格式化对应分区创建文件系统

mkfs.vfat /dev/sdb1 # 创建fat文件系统用于bios启动
mkfs.vfat -F32 /dev/sdb2 # 创建fat32文件系统作为/boot分区

这里我采用了fat32格式的boot分区,也可以用ext4的。无论如何boot分区都必须是一个单独的primary分区,否则启动容易失败。

处理swap分区

mkswap /dev/mapper/system-swap # /dev/mapper是lvm的固定路径,system-swap是刚才创建的lvm逻辑卷
swapon /dev/mapper/system-swap # 启用swap分区

处理根分区

mkfs.btrfs -L root /dev/mapper/system-root # /dev/mapper是lvm固定路径,system-root是刚刚创建的逻辑卷
mount /dev/mapper/system-root /mnt/gentoo # 把格式化后的分区挂在到一个目录上备用,通常是/mnt/gentoo

如果说这块硬盘之前安装过其他的linux系统,并且已经分好区了,那么前面的分区操作都不需要,直接执行这里的格式化就可以,只要用lsblk和blkid命令查看一下分区情况,确保mkfs时选择正确的分区即可。 

安装stage3

很多安装教程都是建议用户使用curl和wget来下载stage3的压缩包。因为我用的是Live GUI,所以我用浏览器到镜像站点下载的stage3的压缩包。我下载的是desktop profile openrc。这是因为我考虑到将来可能会用到FreeBSD,而systemd和FreeBSD不兼容,迁移的时候会麻烦。 

 stage3的压缩包下载以后,放到/mnt/gentoo目录,然后解压缩

tar xpvf stage3*.tar.xz

因为用的是Live GUI,所以也可以用图形界面的工具解压缩到/mnt/gentoo目录

这样stage3的文件内容就都解压缩到/mnt/gentoo目录下了,而/mnt/gentoo其实是mount的/dev/sdb3这个lvm中的/分区。所以理论上讲,只要把grub安装到/dev/sdb上,再设定好fstab,其实可以重启到这个stage3的系统中了。

但是这样的话后续的操作就要全部在stage3中进行,这样就失去了图形界面,无法一边安装一边上网查资料。而且因为还有一些其他参数没有设定好,比如时区、语言等等,会导致更多的不便。所以我还是坚持在Live GUI中完成后续的操作。

校对时间

因为gentoo安装过程中会下载很多文件,而且会对比文件的新旧,如果计算机本身的时间有问题,那就可能会在对比文件新旧的过程中产生一些不必要的麻烦,这里可以用命令行对一下时间

#自动或者手动设置时间
ntpd -q -g #自动
date 021822162021 #手动设置,我这时间2021年11月27日19点16分

 如果计算机的时间没问题,不进行这步操作也没事

设置镜像站点

为了改善下载的速度,我们把镜像站点选为离我们较近的站点

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

虽然是字符界面,但是会弹出老式的那种字符界面的图形菜单供选择,根据自己的网络状态选取就好,比如说我选的是南京大学的镜像。

nano /mnt/gentoo/etc/portage/make.conf

也可以直接编辑/mnt/gentoo/etc/portage/make.conf这个文件,里面增加内容

GENTOO_MIRRORS="http://mirrors.nju.edu.cn/gentoo/"

配置编译选项

调整编译选项的方法是:编辑配置文件

nano /mnt/gentoo/etc/portage/make.conf

里面的内容

编译优化选项

Linux Manpages Online - man.cx manual pages

COMMON_FLAGS = "-march=native -mtune=native -O2 -pipe"

# -march=native -mtune=native 针对当前cpu优化

# -O2 中等优化,比较稳妥,如果要激进的优化可以使用-O3,但是会有一些危险的汇编代码可能会导致计算出错

# -pipe 在编译期使用管线IO而不是临时文件,通过增加内存占用的代价加快编译速度

MAKEOPTS = "-j17"     # 采用多线程编译,加快编译速度。根据CPU线程数和内存填写,数字可以是CPU核心数+1,但是数字不能超过内存G数的一半(建议用CPU核心数+1和内存G数两者小的那个数字)

CFLAGS="${COMMON_FLAGS}" # C编译器的优化选项
CXXFLAGS="${COMMON_FLAGS}" # C++编译器的优化选项
FCFLAGS="${COMMON_FLAGS}" # Fortran 9x编译器的优化选项,其实和FFLAGS没啥差别 
FFLAGS="${COMMON_FLAGS}" # Fortran编译器的优化选项

还可以通过命令

cpuid2cpuflags

检测当前cpu支持的指令集,并通过在/mnt/gentoo/etc/portage/make.conf中增加对应内容

CPU_FLAGS_X86=“aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq”

开启对该cpu所拥有指令集的支持

本地化选项

Localization/Guide - Gentoo wiki

L10N="en en-US zh zh-CN" # 增加额外的语言支持
LINGUAS="en en_US" # 对于这里的语言不提供额外支持 

USE选项

gentoo通过USE选项来调整软件在编译和配置时的参数,在这个配置文件中可以增加一些全局参数。而如果想在各个软件包中单独设置参数,则可以在/etc/portage/package.use/目录下的软件包名的文件来调整。

对于全局而言,一般都要用的选项

USE="networkmanager pulseaudio alsa spice usbredir udisks offensive bash-completion opengl opencl vulkan v41 x264 x265 theora policykit vaapi vdpau lto cec wayland X libressl xattr dbus xft"

# bash-completion 添加bash提示

# -jit t禁用JIT,因为JIT可能和hardened冲突

# libressl 替代openssl,因为openssl冒出来了心脏流血漏洞,确实有替代的需要

# vim-syntax 安装配套的vim语法高亮文件

# xattr 针对额外的文件系统特性提供支持

# alsa 增加对alsa声音系统的支持

# dbus 启用dbus对系统的支持

# -gnome -gnome-keyring 去掉对GNOME的支持

# -kde 去掉对KDE的支持

# -pulseaudio 去掉对Pulseaudio的支持

# xft 启用X FreeType支持

# X 启用X11支持 ,虽然新一代的图形系统大家都在逐步切换到wayland,但是有时对X11的支持是必不可少的,而且如果文件中有VIDEO_CARDS和INPUT_DEVICES这两个选项,启用对X11的支持也是有好处的

在USE选项中,还可以增加hardened参数来提高安全性,不过这额外的安全性可能会在未来带来使用上的不便,比如SELinux

加固的Gentoo (Hardened Gentoo) - Gentoo wiki

其他选项

其实还可以添加VIDEO_CARDS和INPUT_DEVICES这两个选项,有助于X系统的安装。不过因为本来我就是用的Live GUI,都已经识别好了,而且我用的是台式机,不需要针对触摸板或者指点杆做特殊处理。

ACCEPT_LICENSE=“*”

# 对任何软件的许可协议都接受,这样在emerge的时候不会需要你时不时的去接受一些奇奇怪怪的许可协议

复制DNS

因为当前的Live GUI已经识别了网卡,网络都已经配置好了,所以直接把当前系统的DNS设置复制到新的stage3里

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

挂载文件系统

mkdir /mnt/gentoo/boot
mount /dev/sdb2 /mnt/gentoo/boot
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sdb1 /mnt/gentoo/boot/efi
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
#mount --make-rslave /mnt/gentoo/sys   #安装systemd需要
mount --rbind /dev /mnt/gentoo/dev
#mount --make-rslave /mnt/gentoo/dev   #安装systemd需要
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm

除了刚刚创建的boot分区以外,还要把bios启动的EFI分区也要挂载上去。另外proc、sys、dev也挂载上去。

我选择的是openrc,所以对于sys和dev不需要太多处理,如果选择systemd,还要额外处理一下。

 对于shm这个共享内存,一般来讲不需要处理,但是保险起见,我处理了一下。

切换到stage3

到这里就可以切换到刚刚解压缩出来的stage3了

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

通过chroot命令,当前命令行——也就是konsole里的标签页——也就切换到了新解压缩出来的stage3系统中。接下来的所有操作其实都是在stage3新系统里的操作

设置时区

通过以下命令可以查看可用的时区

ls /usr/share/zoneinfo

如果有子目录的话,意味着里面还有更多的时区选项,比如

ls /usr/share/zoneinfo/Asia

就可以看到Shanghai

根据可选的时区设置时区,比如说我国使用的是

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

源同步

设置源

编辑配置文件

nano /etc/portage/repos.conf/gentoo.conf

sync-uri = rsync://rsync.gentoo.org/gentoo-portage

修改为

sync-uri = rsync://mirrors.nju.edu.cn/gentoo-portage

这样就把官方的gpg-key源切换为南京大学的镜像。

执行源同步
emerge-webrsync # 下载Gentoo ebuild数据库快照,稍陈旧
emerge --sync # 更新Gentoo ebuild存储库,最新的。这步网络比较慢,具体要多久视你的网络情况而定,也是切换本地源的原因

设定系统方案

eselect profile list # 列出备选的系统方案
eselect profile set <prof-num>

 首先是列出备选的系统方案,然后根据清单选择

更新系统

emerge --ask --verbose --update --deep --newuse @world #更新@world集(系统升级、profile构建stage3、use标记变化时需要)
emerge -avuDN @world # 也可以用缩写

系统更新以后,你的stage3系统就相当于全部重新编译了一遍,编译优化参数就是之前设置的COMMON_FLAGS。现在这个stage3系统的速度应该是有一定的提升的,不能说很大,因为目前这个系统里面对cpu占用比较多的程序暂时还没有。

安装cpuid2cpuflags

在Live GUI中,cpuid2cpuflags这个工具是有的,但是到了stage3里面,这个工具默认是没有自带的,为了后续可能用到,这里要安装一下

emerge --ask app-portage/cpuid2cpuflags

设置locale

nano /etc/locale.gen

里面的内容

en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN.GB2312 GB2312

然后运行命令

locale-gen # 生成本地化文件
eselect locale list # 列出本地化选项
eselect locale set <locale-num> # 根据清单选择本地化方案
env-update # 更新系统环境
source /etc/profile # 更新当前bash
export PS1="(chroot) $PS1" # 当前bash提示符被重置后,再改为合适的提示符

更新gcc

gcc-config --list-profiles # 查看备选的gcc
gcc-config 2 <gcc-num> # 选取合适的gcc版本

在2024年2月,候选的gcc只有1个版本,所以也无所谓优化了。

更新过gcc后,有必要更新一下系统,新版的gcc一般来说生成的二进制文件要快一些。 

emerge -avuDN @world

定制内核

更新固件

emerge --ask sys-kernel/linux-firmware # 更新固件

更新intel cpu的微代码

echo "sys-firmware/intel-microcode initramfs" > /etc/portage/package.use/intel-microcode
emerge --ask sys-firmware/intel-microcode

安装内核源代码,注意不是内核

 emerge --ask sys-kernel/gentoo-sources

安装好内核源代码以后到/usr/src目录下看看找到源代码的目录,后面要用到 

安装内核编译工具

emerge --ask sys-kernel/genkernel

调整内核参数

cd /etc
cp -p genkernel.conf genkernel.conf.ORIG # 备份旧的配置文件
nano genkernel.conf

 /etc/genkernel.conf的内容中

MAKEOPTS="$(portageq envvar MAKEOPTS)"
LVM="yes"

BTRFS="yes"
LUKS="yes" # 如果之前选择了加密的lvm就是比需的,否则不必

DEFAULT_KERNEL_SOURCE="/usr/src/linux-6.6.13-gentoo" # 就是之前安装的源代码的目录

其他的选项看情况 

安装硬件探测工具

emerge --ask sys-apps/pciutils # 安装包含lspci命令的sys-apps/pciutils包

配置并编译内核 

genkernel --menuconfig all

安装额外的文件系统支持

emerge --ask sys-fs/btrfs-progs # btrfs支持
echo "sys-fs/lvm2 lvm" > /etc/portage/package.use/lvm2 # 对lvm的支持调整一下参数
emerge --ask sys-fs/lvm2 # 对lvm的支持
emerge --ask sys-fs/ntfs3g # 对ntfs的支持

每次添加文件系统支持后会有提示,要求用rc-update添加到系统服务中,按照提示操作 

如果需要对其他文件系统的支持,也可以添加

安装grub

在/etc/portage/make.conf中增加grub的配置内容

GRUB_PLATFORMS="efi-64" # x86_64 UEFI支持,目前最流行的

# GRUB_PLATFORMS="efi-32" # x86 i386 UEFI支持,因为32位cpu时代基本没有UEFI启动的设备,所以该选项其实没什么用武之地

# GRUB_PLATFORMS="pc" # x86 i386 BIOS MBR支持,古老

# GRUB_PLATFORMS="pc efi-64" # x86 i386 BIOS MBR支持,同时支持x86_64 UEFI,也就是同时支持老旧的和新的

# GRUB_PLATFORMS="pc efi-64 efi-32" # 同时支持:x86 i386 BIOS MBR,x86_64 UEFI ,x86 i386 UEFI

增加grub对lvm的支持

echo "sys-boot/grub device-mapper" > /etc/portage/package.use/grub

编译grub

emerge --ask sys-boot/grub

把grub安装到引导存储器上

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

我是在一整个硬盘上安装,不用grub做多操作系统启动,所以没有让grub探测其他操作系统。当我使用多系统时,我会在开机时按delete进入bios选择启动的硬盘,以此来启动不同的操作系统

找到加密lvm的UUID

blkid

该命令会列出各个存储设备的信息,其中最重要的是UUID

配置grub

/etc/default/grub

里面的内容

GRUB_CMDLINE_LINUX_DEFAULT="dolvm crypt_root=UUID=<crypt-partition-uuid> crypt_swap=UUID=<crypt-swap-uuid>
root=/dev/mapper/system-root"

其中dolvm支持lvm文件系统格式,crypt_root和crypt_swap支持加密卷,root支持根目录

生成grub配置文件 

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

生成fstab

linux系统启动的时候会读取/etc/fstab文件并按照其内容挂载文件系统。内容如下

 /dev/system/root  /                       btrfs  defaults                      0  0

/dev/system/swap  swap                    swap   defaults                      0  0
UUID=A84A-FDFE    /boot                   vfat   utf8,codepage=936             0  2
UUID=BA13-AD23   /boot/efi                   vfat   utf8,codepage=936             0  2

也就是之前对硬盘的分区所对应的几个分区。其他硬盘上的分布如果需要挂载,可以在系统启动后通过其他方法挂载,而不建议在fstab中增加内容,因为那些设备一旦变动可能会导致系统不能启动。另外由于多个硬盘的存在,如果增减硬盘,那么/dev/sdx中的x可能会变,所以fstab里也要避免使用这种可能会变的设备名。 

其中/boot的UUID就是之前命令blkid输出的挂载到/boot的/dev/sda2的UUID,每次格式化mkfs之后都会生成一个新的。UUID是不变的。

到这里stage3就已经安装到硬盘上,而且启动器grub也安装好了,接下来要进行一些配置

初次启动前配置

配置网络

使用networkmanager管理网络

NetworkManager - Gentoo wiki

 

emerge --ask net-misc/networkmanager # NetworkManager支持,网络连接管理服务,自动识别网卡,自动dhcp
rc-update add NetworkManager default # NetworkManager随系统启动
rc-update add sshd default   #启用开机ssh

我是很反对使用netifrc和dhcpcd的,因为networkmanager更适合桌面电脑

有了networkmanager开机启动以后,每次开机网络都会自动配置,自动联网 

设置主机名

echo "your_host_name" > /etc/hostname

有一些文章建议编辑/etc/conf.d/hostname,我不建议

另外还要设定一些特定的主机名对应的ip,可以编辑/etc/hosts,一般来讲都是用来指定内网地址或者绕开DNS污染的

配置系统

计划任务

emerge -av sys-process/cronie # 计划任务
rc-update add cronie default # 计划任务随系统启动

一些管理工具

emerge -av app-portage/gentoolkit # gentoo的一些工具
emerge -av app-admin/sudo # sudo支持

设置root密码

第一次开机登录的时候使用该密码登录 

passwd root

退出以后就可以重启了

初次启动的配置

初次启动的时候,直接从grub菜单选择启动内核即可。

启动后以root登录,密码刚才设置过了

然后创建一个新的普通用户

useradd -m -G users,wheel,audio,video,portage -s /bin/bash your_user_name

日常情况下可以以这个普通用户登录来使用

安装KDE 

 此时仍然是root在字符界面登录的状态。

KDE - Gentoo wiki

SDDM - Gentoo wiki 

emerge --ask kde-plasma/plasma-meta
emerge --ask kde-plasma/kdeplasma-addons
emerge --ask kde-apps/kwalletmanager
emerge --ask kde-plasma/kwallet-pam
emerge -1 kde-cli-tools
emerge --ask kde-apps/kde-apps-meta
usermod -a -G video sddm
emerge --ask gui-libs/display-manager-init
rc-update add display-manager default # SDDM 开机启动

如果哪个包在安装后提示要进行相应的操作,记得完成操作。

这个过程中,ffmpeg会自动安装,另外KDE自带的媒体播放器也会安装,多媒体也就解决了。

另外,KDE桌面环境自带了一个Falkon的浏览器,其实就是以前的qupzilla。

到了这个时候,英文的显示和使用是没有问题的,但是中文显示是小方块,而且没法输入中文。 

完整中文化 

安装字体

emerge --ask media-fonts/noto-cjk

安装以后,KDE的应用程序就能正确显示中文了。 

 安装fcitx输入法

emerge --ask app-i18n/fcitx app-i18n/kcm-fcitx app-i18n/fcitx-configtool

打开系统设置文件

nano /etc/profile

 在里面追加

fcitx &
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

然后在KDE控制面板中设置为中文,从KDE桌面注销后,再次登录KDE后就全都是中文了,而且可以正常输入中文。 

但此时SDDM登陆界面还是英文

修改系统locale设定

找到/etc/env.d/02locale文件,将LANG变量的值由en_US.utf8更改为zh_CN.utf8。这样即使用户没有登录,SDDM显示的也是中文了。 

 

 

 

 

 

 

这篇关于gentoo安装笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729782

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP