MENU

Gentoo安装基本系统全过程记录

Gentoo安装过程记录

下载镜像

采用minimal+stage3最小CD镜像的安装方式,必须要在联网下进行!
首先去官网下载最新版的minimal镜像,镜像下载好之后开始刻录iso
windows下推荐rufus,开源免费,简单省事
linux下推荐使用dd命令
插上U盘后终端输入lsblk查看盘是sdc还是sd?
dd命令用法:if=xxx.iso of=/dev/sdc
耐心等待几分钟,Minimal镜像200多M,很快就会写入完成,当提示写入完成后就可以重启选择U盘启动,启动过程中会让你选择键盘模式,选择us,默认是41,回车,继续启动,启动完成后会进入红色提示符界面,U盘模式启动完毕。
首先我们要做的是联网,如果是有线网,已经默认帮你连接好了,这时只需要用ping命令确认一下,如果没有插网线用的无线网,需要自行配置

配置无线网

  1. lspci -k 检查设备驱动是否已经加载
  2. dmesg | grep firmware检查内核中的固件信息
  3. iwconfig查看无线网卡名称,我的为wlp3s0,以下出现此名称的地方请替换为实际网卡名称
  4. 配置/etc/conf.d/net
    modules_wlp3s0="wpa_supplicant"

wpa_supplicant_wlp3s0="-Dwext"
config_wlp3s0="dhcp"
其中wlp3s0是我的网卡设备

  1. 生成wpa_supplicant.conf
    wpa_passphrase 无线SSID 无线密码 > /etc/wpa_supplicant/wpa_supplicant.conf
  2. 配置启动脚本
  3. /etc/init.d

ln -s net.lo net.wlp3s0

  1. 启动网卡
    /etc/init.d/net.wlp3s0 start
  2. ping测试

磁盘分区与挂载

确认网络连接好之后下面开始分区操作
cfdisk /dev/sda
选择new选项新建分区
这里需要提前知道电脑的启动模式,如果是传统的BIOS模式不需要单独划分/boot/efi分区,如果是UEFI模式则需要单独创建/boot/efi分区
UEFI分区方案
这里以我的128g固态为例:

分区大小挂在点
/dev/sda1500M引导分区/boot/efi
/dev/sda28G交换分区swap
/dev/sda330G根分区/
/dev/sda480G用户主目录/home

创建好分区后需要写入硬盘,选择write后输入yes确认
接下来格式化和挂载分区
将sda1格式化为FAT32格式用于启动分区

mkfs.vfat -F32 /dev/sda1

将sda2格式化为交换空间并打开

mkswap /dev/sda2 && swapon /dev/sda2

将sda3格式化为ext4格式用于存放系统

mkfs.ext4 /dev/sda3

将sda4格式化为ext4用于存放用户文件
格式化完毕后需要挂载分区
首先挂载/根分区

mount /dev/sda3 /mnt/gentoo

创建/boot/efi目录

mkdir  -p /mnt/gentoo/boot/efi

创建home目录

mkdir -p /mnt/gentoo/home

挂载boot

mount /dev/sda1 /mnt/gentoo/boot/boot/efi

挂载home

mount /dev/sda4 /mnt/gentoo/home

挂载完毕输入mount检查

下载stage3

更新时间
查看时间
date
#Sat Sep 22 09:12:08 UTC 2019
#本地时间:9月22日 17:08 2019
#设置时间: 9月22日 17:08 2019
date 092217082019

下载stage3

cd /mnt/gentoo
links https://mirrors.163.com/gentoo

选择releases/amd64/autobuilds/current-install-amd64-minimal/stage3-amd64-201909xxxxx.tar.xz #文件名以自己下载的为准
回车开始下载,下载完之后,按 ESC -> 回车 -> Exit -> 回车 退出
文件会存放在当前目录,使用ls命令查看

解压stage3

tar xvf stage3-amd64-201909xxxxx.tar.xz #文件名以自己下载的为准

解压过程中注意观察有没有error错误
解压完成后配置make.conf
检查cpu核心数

cat /proc/cpuinfo | grep processor

我的是4排 就证明是4核
所以我的电脑设置是:MAKEOPTS="-j5"

echo 'MAKEOPTS="-j5"' >> /etc/portage/make.conf

或者编辑make.conf

nano /etc/portage/make.conf

添加 MAKEOPTS="-j5"

选择镜像

microrselect -i -o  >> /mnt/gentoo/etc/portage/make.conf
mkdir --parents/mnt/gentoo/etc/repos.conf 
cp /mnt/gentoo/usr/share/portage/config/repos. conf /mnt/gentop/repos.conf/gentoo.conf

复制DNS信息

cp --dereference /etc/resolv.conf

挂载文件系统

mount --types proc /proc /mnt/gentoo/proce
mount --rbind /sys /mnt/gentoo/sys
mount. --rbind /dev /mnt/gentoo/dev

進入新環境

shrogt /mnt/gentog /bin/base
sourse /etc/profiler
export PS1"(chroot) $PS1

从Web安装ebuild存储库快照

emerge-webrsync

注意:这一步跟上面的选择镜像有关,如果发现一直处于执行状态,那么检查一下文件 /mnt/gentoo/etc/portage/make.conf 是否正确。

配置系统

选择配置

配置列表是实时更新的,所以需要根据实际做出选择,这里选择默认12即可,如果是systemd,则需要选择带systemd字样的配置。

eselect profile list
eselect profile set 12

更新@world集

因为没有选择桌面环境,所有更新时间会短一些。

time emerge --ask --quiet --update --deep --newuse @world

时区

选择本地时区

ls /usr/share/zoneinfo/Asia
echo "Asia/Shanghai" > /etc/timezone

更新时区

emerge --config sys-libs/timezone-data
  1. 配置语言环境

    echo en_US.UTF-8 > /etc/locale.gen

根据如下修改,这里需要注意,gentoo默认不支持zh_CN.UTF-8

运行locale-gen。它将生成/etc/locale.gen文件中指定的所有语言环境。

locale-gen
eselect locale list
eselect locale set 6

选择en_US UTF-8,确保系统语言环境为英文,中文会报错

重新加载环境:

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

安装内核源码

对于基于amd64的系统,Gentoo推荐使用sys-kernel / gentoo-sources包。

选择适当的内核源并使用emerge安装它:

 emerge --ask sys-kernel/gentoo-sources

如果提示needs updating
则运行

 etc-update

然后输入-3 -> 回车 -> yes ,之后在重新装一次即可。

编译内核

配置kernel

这里使用自动配置方式,需要手动配置的请看Gentoo Wiki。

安装kernel自动配置工具genkernel

emerge --ask --quiet sys-kernel/genkernel

安装时如果提示 USE changes,则运行:

etc-update

然后输入-3 -> 回车 -> yes ,之后在重新执行 time emerge --ask --quiet sys-kernel/genkernel即可。

安装完成之后,编辑 /etc/fstab 系统的挂载点:

nano -w /etc/fstab

修改分区表并保存,分区挂载点会永久生效

将最前面的删掉修改为/dev/sda1或其他sda分区,这里注意修改boot/efi的文件系统为vfat而不是ext4

然后开始编译内核
如果选择手动编译请去官网查看教程
这里使用genkernel一键编译,
genkernel all
大概需要编译半小时左右,编译完成检查boot分区

ls /boot/kernel* /boot/initramfs*

#会显示两个文件
遵循先多后少的选择,先自动编译
让系统跑起来,以后慢慢精简内核

安装固件

某些驱动程序在工作之前需要在系统上安装其他固件。安装固件相当于win上装驱动

emerge --ask --quiet sys-kernel/linux-firmware

修改主机名

nano -w /etc/conf.d/hostname

#将hostname变量设置为自己取的主机名字
hostname =“ShadowElves”

配置有线网

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

设置启动时自动启动网络

要在引导时激活网络接口,需要将它们添加到默认运行级别。
首先需要知道网络接口名称:
使用 ifconfig查看是 eth0,还是 enp3s0
这里使用 enp3s0:

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

nano -w /etc/hosts

在localhost后添加主机名ShadowElves
127.0.0.1 localhost ShadowElves
设置root密码
passwd
输入两次密码,提示successful证明修改成功

设置时钟

nano -w /etc/conf.d/hwclock   #修改:clock="local"

安装工具

系统日志记录

emerge --ask sysklogd
rc-update add sysklogd default

Cron守护程序

emerge --ask cronie
rc-update add cronie default

文件索引

emerge --ask mlocate

DHCP客户端

emerge --ask dhcpcd
rc-update add dhcpcd default

安装无线网络工具

emerge --ask iw wpa_supplicant

配置引导

配置引导加载程序
UEFI用户注意:
用户需要确保GRUB_PLATFORMS="efi-64"已启用,添加GRUB_PLATFORMS="efi-64"
到/etc/portage/make.conf文件中,然后在安装GRUB2 :

echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf

emerge -av grub:2 注意观察是否有GRUB_PLATFORMS="efi-64"字样

安装GRUB2软件
接下来,通过grub-install命令将必要的GRUB2文件安装到/boot/grub目录,确保boot分区已经挂载,否则会安装失败
UEFI用户:

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

BIOS用户:

grub-install /dev/sda

#/dev/sda 为 /boot 挂载分区
提示no error reported证明安装成功

运行 grub-mkconfig 命令:
GRUB2将自动检测要引导的内核来生成最终的GRUB配置

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

出现两个found 开头的文字和done
证明引导程序安装成功

没有的话重新genkernel all生成再重复上一步操作
如果是安装win10 与gentoo 双系统,需要另外安装 os-prober 用以检测 win10 的引导:

emerge --ask os-prober

然后执行

os-prober

重新启动系统
退出chroot环境并卸载所有已安装的分区。
然后重新启动:reboot。

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

不要忘记拔掉优盘,否则可能会再次引导CD而不是新的Gentoo系统。

gentoo命令行登录,此时输入 root -> 回车 -> 输入密码,即可进入gentoo系统。
创建普通用户用于登陆桌面

useradd -m -G users,wheel,audio,video,cdrom,portage,cron -s /bin/bash moonery
passwd moonery #设置用户密码

至此,Gentoo的基本系统已安装完成!

接下来是安装显卡驱动,触摸板驱动X服务和桌面,这些会在下一篇文章中写到,敬请关注!

Title - Artist
0:00