惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
Scott Helme
Scott Helme
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
J
Java Code Geeks
U
Unit 42
The GitHub Blog
The GitHub Blog
H
Help Net Security
T
Tenable Blog
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
Spread Privacy
Spread Privacy
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
L
Lohrmann on Cybersecurity
T
Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
L
LINUX DO - 最新话题
K
Kaspersky official blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Threat Research - Cisco Blogs
C
Check Point Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
Y
Y Combinator Blog
N
News | PayPal Newsroom
M
MIT News - Artificial intelligence
Latest news
Latest news
H
Hacker News: Front Page
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
I
Intezer
爱范儿
爱范儿
F
Fortinet All Blogs
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes

qlAD 的技术笔记

2026 年 6 月 7 日 -- 我有社交恐惧症,恐惧外面到处雷电风雨声(大学生活记录) 手把手带你实现哈希表(C/C++ 数据结构) 手把手带你实现图结构(C/C++ 数据结构) 手把手带你实现二叉树(C/C++ 数据结构) 手把手带你实现栈和队列(C/C++ 数据结构) 手把手带你实现单/双链表(C/C++ 数据结构) 手把手带你实现动态数组(C/C++ 数据结构) 2026 年 1 月 2 日 -- 我不怕冷,因为我内心炽热 【2025 年度总结】(大学生活记录) 2025 年 12 月 2 日 -- 省电模式:大一 100 天耗电日志(大学生活记录) 蓝桥杯备赛第一期 —— 枚举与模拟 2025 年 11 月 3 日 -- 用爱发电、大爱无私(大学生活记录) 使用循环嵌套输出规则图形找规律讲解(嵌套循环-图形输出) 2025 年 10 月 1 日 -- 二字开头第一年的生日记录及感悟随笔(大学生活记录) Python 初级 04 -- 目前为止 Python 中你们做题可能会遇到的问题以及七七八八 2025 年 9 月 24 日 -- 开学后的第一课及军训汇演(大学生活记录) Python 初级 03 -- 程序设计的三种结构之选择结构和循环结构 Python 初级 02 -- 基础的数据类型和输入输出 2025 年 9 月 17 日 -- 大连 2025 国际大体联足球世界杯(大学生活记录) Python 初级 01 -- 初识编程、理解计算机语言及程序运行方式 适合大一新生学习编程的前一课 -- 编程先导(编程的本质) 2025 年 9 月 12 日 -- 三天军训感受以及一些七七八八(大学生活记录) 2025 年 9 月 9 日 -- 体检、军训前的准备(大学生活记录) 适合大一新生的计算机基础知识 -- 个人认为足够版 2025 年 9 月 7 日 -- 既来之、则安之(大学生活记录) C++ 程序的内存布局 —— 代码区、全局/静态区、栈区和堆区 联想小新 pro 16 2025 开箱记录:跳过联网、office 激活、更换 win 11 专业版 R 语言中的数学函数 计算机软件著作权申请过程记录 从聚类到回归:用 Python 解析鸢尾花数据集的完整数据科学流程 条件概率、全概率与贝叶斯公式 —— 一篇文章带你死磕概率公式 高中化学物质反应规则表 —— 方程式之间也有规律可循 集合元素性质、关系、子集公式、基本运算 —— 一篇文章带你全方面死磕集合 如何为你的项目选择合适的许可证 -- 全方位指南 解释 3:1 和 9:3:3:1 的详细来源 —— 建立减数分裂与孟德尔遗传学定律之间的联系 重新设置磁盘分区以及 Btrfs 子卷(subvolume)布局的无损方案 零基础实战:用 Docker 启动 dockermailserver 绕过 25 端口封锁搭建个人邮箱服务器 基于 GitHub Actions + OSS 的自托管 APT 仓库全面指南 如何在安装 Debian 时配置 Btrfs 子卷 | 详细分步指南 一个合格的个人网站站长应该知道哪些事? CSS 基础入门教程 —— 选择器、样式声明 HTML 基础入门 —— 基本结构和语法 给博客添加一个文章数据统计的页面 Git 学习笔记(命令备忘表) Anki 牌组选项详细解释与设置 手动编译带有 KernelSU 的 OnePlus 6 内核 安卓类原生系统补全计划 —— PixelExperience(一加 OnePlus) 如何使用 use-sound 为 React 应用添加声音效果 标准化项目的 GitHub Flow 工作流 如何搭建设计自己的博客网站? 使用安知鱼主题同款的 Twikoo 评论组件 配置 GitHub Actions 实现自动化提交百度收录 第00期 | 环境搭建 & 递归 (一) | 基本数列递归 逐字符讲解 C 语言 HelloWorld 程序 2023 年回顾 🤟 Anki:记忆神器,助你高效学习 美化你的 PixelExperience OS Markdown 语法指南 搭建 OneDrive 目录索引 为什么用 65 表示大写字母 A
Gentoo 学习笔记
qlAD · 2023-07-09 · via qlAD 的技术笔记

cover

Gentoo Linux 从入门到入土

前言

本文档仅为本人当笔记使用,内容仅供参考。不定期更新。

内容

打算分三部分,第一部分是 Gentoo 的安装,第二部分是 Bspwm 窗口管理器的配置,第三部分是软件工具的安装。

声明

本人菜鸟一个,用 Linux 只是因为有受不了 Windows ,用 Gentoo 只是为了浪费生命(Doge),以下内容仅为本人在学习过程中的记录,主要目的为了以后我自己安装 Gentoo 时的参考,各位参考需谨慎。

安装介质的准备

在开始之前,我们首先列出在 amd64 机器上成功安装 Gentoo 所需的硬件要求。

下载最新官方镜像(可选清华大学镜像源)

将 install-amd64-minimal-*.iso 刻录到 U 盘中(推荐全平台制作工具 BalenaEtcher)

重启电脑并设置 U 盘为第一引导,进入 U 盘安装系统。

重启电脑后进 U 盘安装模式

键盘设置默认回车,中国电脑使用 US 键盘(默认)

之后正式进入安装界面,输入以下命令测试是否是 UEFI 引导启动,有输出结果即为 UEFI 启动。

ls /sys/firmware/efi/efivars

网络方面的设置

# 检查网卡ifconfig# 检查网络连接ping -c 3 www.baidu.com

磁盘空间准备阶段

在本阶段中,首先要完成分区,利用 fdisk 工具或 cfdisk 工具完成磁盘空间分配。在本次安装中,采用的电脑为 4 核 8 线程,运行内存为 16 G,固态硬盘容量 256G。采用的分配方案如下

FilesystemSizeMounted onType
/dev/nvme0n1p1512M/bootvfat
/dev/nvme0n1p28G[SWAP]swap
/dev/nvme0n1p364G/btrfs
/dev/nvme0n1p4160.4G/homexfs

做好分区划分后,对应地进行格式化与挂载

# 启动交换分区mkswap /dev/nvme0n1p2swapon /dev/nvme0n1p2# 根分区mkdir --parents /mnt/gentoomkfs.btrfs /dev/nvme0n1p3mount /dev/nvme0n1p3 /mnt/gentoo# 引导分区mkdir /mnt/gentoo/bootmkfs.vfat -F 32 /dev/nvme0n1p1mount /dev/nvme0n1p1 /mnt/gentoo/boot# home 分区mkdir /mnt/gentoo/homemkfs.xfs /dev/nvme0n1p4mount /dev/nvme0n1p4 /mnt/gentoo/home

下载安装文件

手动配置当前时间

进入挂载点,下载 stage3 并解压,其中的 stage3 包可以从 Gentoo 官网或者 清华源 下载,这里选择了 stage3-amd64-desktop-openrc 。

# 进入挂载目录cd /mnt/gentoo# 下载 stage3wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64-desktop-openrc/stage3-amd64-desktop-openrc-**.tar.xz# 解压 stage3tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

之后开始配置编译选项

# 编辑 make.conf 文件nano -w /mnt/gentoo/etc/portage/make.conf
# Build-time functionality# ========================#USE="X elogind alsa pulseaudio vulkan pgo lto zstd vaapi vdpau opengl dbus cjk udev"# Host Setting# ============#CHOST="x86_64-pc-linux-gnu"# Host and optimization settings# ==============================#COMMON_FLAGS="-march=native -O2 -pipe"CFLAGS="${COMMON_FLAGS}"CXXFLAGS="${COMMON_FLAGS}"FCFLAGS="${COMMON_FLAGS}"FFLAGS="${COMMON_FLAGS}"# Advanced Masking# ================#ACCEPT_KEYWORDS="amd64"ACCEPT_LICENSE="*"# Portage Directories# ===================#PORTAGE_TMPDIR=/var/tmpPORTDIR=/var/db/repos/gentooDISTDIR=/var/cache/distfilesPKGDIR=/var/cache/binpkgs# Fetching files# ==============#GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo"# Advanced Features# =================#EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y --complete-graph --jobs=2 -l"MAKEOPTS="-j2"AUTOCLEAN="yes"# 安装了 ccache 后再启用以下两行FEATURES="ccache"CCACHE_DIR="/var/cache/ccache"# Language# ========#LC_MESSAGES=C.utf8L10N="en-US zh-CN en zh"LINGUAS="en_US zh_CN en zh"# Bootloader# ==========#GRUB_PLATFORMS="efi-64"# Xorg Devices# ============#INPUT_DEVICES="libinput"VIDEO_CARDS="amdgpu radeonsi"# 虚拟机方面设置,按需配置# QEMU Targets# ============#QEMU_SOFTMMU_TARGETS="arm x86_64 sparc"QEMU_USER_TARGETS="x86_64"

安装 Gentoo 基本系统

配置 ebuild 软件仓库

# 创建repos.conf 目录mkdir --parents /mnt/gentoo/etc/portage/repos.conf# 将 Portage 提供的 Gentoo 存储库配置文件复制到(新创建的)repos.conf 目录cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

修改源

# 编辑配置文件,替换以下内容nano /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
sync-uri = rsync://rsync.mirrors.tuna.tsinghua.edu.cn/gentoo-portage/

复制 DNS 信息

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

安装必要的文件系统,需要提供的文件系统是:

/proc/ 这是一个伪文件系统(它看起来像普通文件,但实际上是动态生成的),Linux 内核从中向环境公开信息 /sys/ 是一个伪文件系统,就像 /proc/ 一样,它曾经打算取代它,并且比 /proc/ 更有结构 /dev/ 是一个常规文件系统,部分由 Linux 设备管理器(通常是 udev)管理,其中包含所有设备文件 /run/ 是一个临时文件系统,用于运行时生成的文件,例如 PID 文件或锁

mount --types proc /proc /mnt/gentoo/procmount --rbind /sys /mnt/gentoo/sysmount --rbind /dev /mnt/gentoo/devmount --bind /run /mnt/gentoo/run

进入新环境

chroot /mnt/gentoo /bin/bashsource /etc/profileexport PS1="(chroot) ${PS1}"

安装 ebuild 数据库快照

emerge-webrsyncemergr --sync

选择系统配置文件

eselect profile listeselect profile set x

安装 cpuid2cpuflags,检测 cpu 指令集(如果安装不了,请先更新 world)

emerge --ask app-portage/cpuid2cpuflagsecho "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

安装 ccache 加快编译速度

emerge -av ccachemkdir -p /var/cache/ccachechown root:portage /var/cache/ccache -Rchmod 2775 /var/cache/ccache -R# 编写配置文件nano /var/cache/ccache/ccache.conf
# /var/cache/ccache/ccache.confmax_size = 100.0Gumask = 002hash_dir = falsecompiler_check = %compiler% -vcache_dir_levels = 3compression = truecompression_level = 1

安装 aria2 加快 emerge 的下载速度(可选)

在 make.conf 中添加如下内容

FETCHCOMMAND="/usr/bin/aria2c -d \${DISTDIR} -o \${FILE} --allow-overwrite=true --max-tries=5 --max-file-not-found=2 --max-concurrent-downloads=5 --connect-timeout=5 --timeout=5 --split=5 --min-split-size=2M --lowest-speed-limit=20K --max-connection-per-server=9 --uri-selector=feedback \${URI}"RESUMECOMMAND="${FETCHCOMMAND}"

现在可以更新 world 了

emerge --ask --verbose --update --deep --newuse @worldetc-update --automode -3

完了以后设置时区与语言

echo "Asia/Shanghai" > /etc/timezoneemerge --config sys-libs/timezone-dataecho "en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8" >> /etc/locale.genlocale-geneselect locale list# 设置成英文eselect locale set X# 现在重新加载环境env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

配置与编译内核

先采取二进制内核,进入系统之后再进行自定义编译

# 开启 initramfs USE 以便获取 amd-uc.imgecho "sys-kernel/linux-firmware initramfs" >> /etc/portage/package.use/linux-firmwareemerge -av sys-kernel/linux-firmware# 安装二进制内核emerge -av sys-kernel/gentoo-kernel-bin# 安装 genkernel 以便生成 initramfs 文件emerge -av genkernelgenkernel initramfs --compress-initramfs --makeopts=-j`nproc`# 检查是否生效,应出现 amd-uc.img initramfs*.img vmlinuz*.img config* System.map* 这些文件ls /boot/

配置系统

生成 fstab

# 安装 genfstab 以便自动配置 fstabemerge -av sys-fs/genfstabgenfstab -U / >> /mnt/gentoo/etc/fstab# 检查是否全部正确cat /etc/fstab

设置主机名(OpenRC 或 systemd)

echo Gentoo-WorkSpace > /etc/hostname

编辑 hosts 文件

# /etc/hosts: Local Host Database127.0.0.1   Gentoo-WorkSpace.homenetwork    Gentoo-WorkSpace    localhost::1     localhost

设置 Root 密码

设置时钟选项

# 编辑 hwclock 文件,更改 clock="local"nano /etc/conf.d/hwclock

安装系统工具

# 系统记录器emerge --ask app-admin/sysklogdrc-update add sysklogd default# 定时守护进程emerge --ask sys-process/cronierc-update add cronie default# 文件索引emerge --ask sys-apps/mlocate# 时间同步emerge --ask net-misc/chronyrc-update add chronyd default# 文件系统工具emerge -av sys-fs/xfsprogsemerge -av sys-fs/btrfs-progsemerge --ask sys-block/io-scheduler-udev-rules# 网络工具emerge --ask net-misc/dhcpcdrc-update add dhcpcd defaultrc-service dhcpcd startemerge --ask net-wireless/iw net-wireless/wpa_supplicant

配置引导加载程序

安装 GRUB 之前检查 make.conf 中是否设置了 GRUB_PLATFORMS=“efi-64”

emerge --ask sys-boot/grubgrub-install --target=x86_64-efi --efi-directory=/bootgrub-mkconfig -o /boot/grub/grub.cfg# 以下为正确的反馈,即 GRUB 可以找到识别内核文件和 initramfs 文件Generating grub.cfg ...Found linux image: /boot/vmlinuz-5.15.52-gentooFound initrd image: /boot/initramfs-genkernel-amd64-5.15.52-gentoodone

重新启动系统

exitcdumount -l /mnt/gentoo/dev{/shm,/pts,}umount -R /mnt/gentooreboot

简单设置新系统

添加日常使用的用户

useradd -m -G users,wheel,audio -s /bin/bash qlad# 为 qlad 用户设置密码,这里密码规则较复杂passwd qlad

磁盘清理

Bspwm 窗口管理器

安装相关软件

# 安装 xorg-serveremerge --ask x11-base/xorg-server# 在启动运行级别启动 elogindrc-update add elogind boot# 编辑 .xinitrc 文件 添加 exec bspwmnano ~/.xinitrc# 安装 Bspwmemerge --ask x11-wm/bspwm

使用我的 Dot 文件

git clone [https://github.com/qlad/dotfiles.git](https://github.com/qlad/dotfiles.git)cp -r .config/ ~/.config/

重启系统,在 tty 里输入 startx 检验是否成功

软件工具的安装

待更。。。。。。。