这里仅仅记录一下安装过程,并非教程,参照 Gentoo Handbook

下载镜像文件

https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/x86/autobuilds/current-install-x86-minimal/

我使用的是 X86 的最小化安装镜像 install-x86-minimal-20210823T170550Z.iso

创建虚拟机

boot gentoo 进入安装环境

passwd 设置个密码

为了方便安装,可以用 ssh 连接虚拟机

启动 sshd

rc-service sshd start

用 ifconfig 或者 ip addr 观察虚拟机ip

主机去连接虚拟机 ssh root@192.168.122.198


下面就可以在主机的 shell 输命令了

ping -c 3 www.gentoo.org 测试网络

分区

fdisk -l 查看硬盘信息
我使用的是 /dev/vda
cfdisk /dev/vda

格式化

mkfs.vfat /dev/vda1
mkfs.ext4 /dev/vda3
mkswap /dev/vda2
swapon /dev/vda2 #激活swap分区

挂载 root 分区

mount /dev/vda3 /mnt/gentoo

安装stage包

使用命令date验证当前时间

刚刚开始使用Gentoo的新手不应该选择一个 no-multilib 压缩包,我选 multilib

cd /mnt/gentoo

下载 stage3
links https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/x86/autobuilds/current-stage3-i686-openrc/

这次用 openrc 版尝尝鲜

解压

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

配置编译选项

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

我只是加个并行编译 MAKEOPTS="-j5"
如果内存不大,可以关闭 -pipe 优化

Chrooting

选择镜像站点

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
(不好使

Gentoo ebuild 软件仓库

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信息

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 /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"

挂载 boot 分区

mount /dev/vda1 /boot

配置Portage

Distfiles 配置:
在 /etc/portage/make.conf 中加入:

GENTOO_MIRRORS=“https://mirrors.tuna.tsinghua.edu.cn/gentoo”

从Gentoo的一个镜像中获取最新的快照(每天发布)并将其安装到系统上:
emerge-webrsync

更新Portage ebuild 数据库

配置好以上两项后,执行emerge --sync进行更新。

创建新闻条目

为了提供一个通信媒介,通过 Gentoo ebuild 数据库来给用户推送重要的消息

要用到 eselect 的 news 模块,最常用的有三个操作:

  • 使用list显示一个可用新闻条目的预览。eselect news list
  • 使用read来阅读新闻条目。eselect news read
  • 使用purge将在新闻条目阅读后删除,并且不能再次阅读。

选择正确的配置文件

eselect profile list

eselect profile set 1

编译图形界面挺慢的,先不搞

更新@world集合

emerge --ask --verbose --update --deep --newuse @world
询问时输入Yes

经过漫长的编译后跑一下emerge --depclean

配置USE变量

使用 emerge --info | grep ^USE 可以查看 USE 变量

可以在系统的 /var/db/repos/gentoo/profiles/use.desc 中找到可用的USE标记的完整描述。

暂时先用默认值

配置 ACCEPT_LICENSE 变量

/etc/portage/make.conf 添加 ACCEPT_LICENSE="*",允许所以许可证

时区

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

配置 locale

nano -w /etc/locale.gen

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

locale-gen

Locale 选择

(chroot) root@livecd / # eselect locale list
Available targets for the LANG variable:[1]   C[2]   C.utf8[3]   POSIX[4]   en_US[5]   en_US.iso88591[6]   en_US.utf8[7]   zh_CN[8]   zh_CN.gbk[9]   zh_CN.utf8[10]  C.UTF8 *[ ]   (free form)

先选 C eselect locale set 1
重新加载环境:
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

安装源码

emerge --ask sys-kernel/gentoo-sources

手动配置内核

安装 sys-apps/pciutils 来了解硬件信息
emerge --ask sys-apps/pciutils

另一个系统信息来源是运行lsmod来查看安装CD使用什么内核模块

cd /usr/src/linux-5.10.61-gentoo/
make menuconfig

Your display is too small to run Menuconfig! 改全屏

教程必须选中的默认都选中了。自己再瞎改改

编译和安装

make && make modules_install
make install

文件系统信息

nano -w /etc/fstab

(chroot) root@livecd /usr/src/linux-5.10.61-gentoo # blkid

/dev/loop0: TYPE=“squashfs”
/dev/vda1: UUID=“ce2a29c4-51f9-4837-a04d-d7eb0bcd38d6” BLOCK_SIZE=“1024” TYPE=“ext2” PARTUUID=“88a6531f-c6af-8443-b195-4b68897eb59c”
/dev/vda2: UUID=“1ec99c6d-443e-43ed-be1a-bfb22dcf849b” TYPE=“swap” PARTUUID=“7a55d4e2-0a3b-1045-b0cc-bc807c1e5ca6”
/dev/vda3: UUID=“580db676-2c9b-4cc8-ab31-fc6636e8e9fe” BLOCK_SIZE=“4096” TYPE=“ext4” PARTUUID=“2cf2ed8d-1ac8-534b-aa6f-ac4f9874b7fe”
/dev/sr0: BLOCK_SIZE=“2048” UUID=“2021-08-23-17-47-13-26” LABEL=“Gentoo x86 20210823T170550Z” TYPE=“iso9660” PTUUID=“10fdc0f3” PTTYPE=“dos”

我就不用 uuid 了

(做错了,ext2 改成 vfat

网络信息

主机名、域名信息

nano -w /etc/conf.d/hostname
hostname="rew"nano -w /etc/hosts:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback

如果你选择不设定域名,你可以去掉登录界面上的这条信息:“This is hostname.(none)”。你只需要修改/etc/issue ,把字符串.\O从该文件里删掉即可。

配置网络

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

查看自己的网卡设备信息

(chroot) root@livecd /usr/src/linux-5.10.61-gentoo # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:dc:41:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.198/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 1944sec preferred_lft 1354sec
inet6 fe80::1e79:113c:c926:b246/64 scope link
valid_lft forever preferred_lft forever

nano -w /etc/conf.d/net:
config_enp1s0="dhcp"
config_lo="dhcp"

在启动时自动启用网络连接

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

hosts 文件

nano -w /etc/hosts

系统信息

Root 密码

passwd

配置引导和启动

Gentoo(在使用OpenRC时)使用/etc/rc.conf配置系统的服务
nano -w /etc/rc.conf

设置键盘。
nano -w /etc/conf.d/keymaps

时钟
nano -w /etc/conf.d/hwclock
如果你机器上的时钟不用UTC,你需要在配置文件加上clock=“local”

系统日志工具

app-admin/sysklogd -提供传统的系统日志记录守护程序。默认日志配置容易学习,这个包是初学者的好选择。

就你了emerge --ask app-admin/sysklogd

rc-update add sysklogd default

Cron守护进程

如果某些命令需要定期执行(例如每天,每周或每月),这是非常方便的。

emerge --ask sys-process/cronie
rc-update add cronie default

文件索引

如果你想索引你的系统文件使得你能够使用locate工具很快定位它们,你需要安装sys-apps/mlocate。

emerge --ask sys-apps/mlocate

远程访问

rc-update add sshd default

在 /etc/inittab中取消注释控制台部分:
nano -w /etc/inittab

#SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

文件系统工具

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

网络工具

emerge --ask net-misc/dhcpcd
emerge --ask net-dialup/ppp
emerge --ask net-wireless/iw net-wireless/wpa_supplicant

GRUB

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

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

  • error: /boot/EFI doesn’t look like an EFI partition
    看错教程了,boot 应该格式化成 vfat(uefi),而不是 ext2 (BIOS)
  • efi variables are not supported on this system
    修改kvm,使之支持uefi
<vcpu placement="static">4</vcpu><os><type arch="x86_64" machine="pc-q35-6.0">hvm</type><bootmenu enable="yes"/></os><features>

试试

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

脚本文件来生成GRUB2
grub-mkconfig -o /boot/grub/grub.cfg

重启!!!

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

不知道哪个参数不对,太麻烦了,用 genkernel 编译内核吧

 emerge --ask sys-kernel/genkernelgenkernel --menuconfig all

Block device is not a valid root device on boot
Fuck!!!

折腾半天,发现gentoo时启动盘是sata,而/dev/vda时virtio,导致genkernel没有支持virtio,无法识别 /(/dev/vda3)分区

参考下面的教程重新编译内核
https://wiki.gentoo.org/wiki/QEMU/Linux_guest

最后的配置

vim,sudo等都装上
并添加普通用户

提示 INIT:Id “s1” respawning too fast,disabled for 5 minutes
vim /etc/inittab
注释 s1 那一行

is not in the sudoers file 解决(转)
清理磁盘rm /stage3-*.tar.*

Gentoo 安装笔记 2021/8相关推荐

  1. Debian 11 “bullseye” 安装笔记

    Debian 11 "bullseye" 安装笔记 请访问原文链接:https://sysin.org/blog/debian-11-install/,查看最新版.原创作品,转载请 ...

  2. 【docker安装笔记】

    docker安装笔记 一.前期准备 1.准备3台虚拟机 2.更改hosts和hostname 3.检查linux的内核 4.非root安装时修改 /etc/sudoers 5.阿里云yum源 二.安装 ...

  3. 基于Python的监控工具Graphite安装笔记

    基于Python的监控工具Graphite安装笔记 iDaemon » 基于Python的监控工具Graphite安装笔记 基于Python的监控工具Graphite安装笔记 零. 环境简介 Gent ...

  4. CentOS 8 安装笔记

    CentOS 8 安装笔记 第一部分 概述 初始版本:CentOS 8.0.1905 继 RHEL 8 发布之后,CentOS 社区也发布了让人期待已久的 CentOS 8,并发布了两种模式: Cen ...

  5. 前端面经笔记 2021.8.28

    前端面经笔记 2021.8.28 下面哪些执行结果为true() A.'foo' == new function(){ return String('foo'); }; B.'foo' == new ...

  6. laravel安装笔记 (转)

    一.安装composer 安装之前将\php\php.ini文件中的php_openssl.dll扩展库开启,否则composer在安装过程中会出现错误提示. (我在安装过程中发现apache目录下的 ...

  7. 前端开发学习笔记 - 1. Node.JS安装笔记

    Node.JS安装笔记 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an ...

  8. Gentoo 安装日记 12 (配置内核 :电源和bios)

    接:http://nvd11.blog.163.com/blog/static/200018312201272515750861/ Power management and ACPI options  ...

  9. Oracle安装笔记

    Oracle安装笔记 出现错误后不要慌,最主要的是看log文件的提示,其中比较简单的文件是install目录下的make.log 错误一: client_shared For example: /us ...

  10. convirt2.5在虚拟机上安装笔记

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

最新文章

  1. 线程安全之strtok()函数
  2. python invalid type promotion_17个新手常见Python运行时错误
  3. mysql 安装dso命令_LAMP环境搭建
  4. 药理学css概念,药理学css 名词解释
  5. Armv8-A 架构概述
  6. dx postprocess
  7. [精华][推荐]SSO CAS单点登录框架学习 搭建详细步骤及源码
  8. Redux Todos Example
  9. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月6日-2月12日)
  10. ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
  11. python解释器的使用
  12. python urllib3 使用_使用Python URLLIB3下载文件
  13. JVM虚拟机详解(一)JVM与JAVA体系统结构
  14. 艾宾浩斯30天计划表_干货丨艾宾浩斯遗忘曲线
  15. ws协议绑定服务器域名,Websocket直接域名连接
  16. android自定义view星空,自定义RecyclerView星空列表「多item且互相交错,自定义列表,ViewGroup级」...
  17. centos7批量自动安装
  18. Java通过JNI调用C的一个小demo
  19. 人工智能现在的技术“好玩”到了什么程度?
  20. 远程电脑打游戏鼠标漂移无法操作解决办法

热门文章

  1. 烤仔建工 | 元宇宙开门红就是中国红!
  2. timus 1741. Communication Fiend URAL 解题报告 DP+读题
  3. R语言中 attach()与detach(),及with()的使用
  4. Java Attach机制
  5. 微博相册一键批量下载 Chrome 扩展
  6. 在Excel里快速插入目录
  7. R包的安装以及安装失败的解决
  8. 【优化算法】加权黑猩猩优化算法(WChOA)(Matlab代码实现)【与ChOA、PSO、WOA、BH、ALO、GA和GWO算法比较】
  9. h3c路由器msr2600-10,msr3600-28调试记录
  10. 特征值篇2——特征子空间