|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Gentoo Linux是Linux世界中最为独特和灵活的发行版之一,它以其高度可定制性和卓越的性能优化能力而闻名。与其他Linux发行版不同,Gentoo允许用户从源代码编译软件,这意味着系统可以根据特定硬件和需求进行精确优化。本指南将带您深入了解Gentoo系统,从基础安装到高级配置,探索Linux高度定制化与性能优化的奥秘。
引言:Gentoo Linux的独特魅力
Gentoo Linux诞生于2000年,由Daniel Robbins创建,其核心理念是”选择”。与提供预编译二进制包的发行版不同,Gentoo通过Portage包管理系统让用户从源代码编译软件,实现了无与伦比的系统定制能力。这种设计哲学使Gentoo成为高级用户、开发人员和系统管理员的首选,他们追求完全控制其系统环境并最大化性能。
Gentoo的主要特点包括:
• 源代码分发:所有软件都从源代码编译,允许针对特定硬件优化
• USE标志系统:灵活控制软件包功能和依赖关系
• 滚动更新模型:系统始终保持最新,无需周期性升级
• 最小化设计:初始安装只包含基本组件,其余根据需要添加
• 文档完善:拥有Linux发行版中最详尽的文档之一
Gentoo Linux基础安装
安装准备工作
在开始Gentoo安装之前,需要做好充分的准备工作:
1. 系统要求检查:至少5GB的可用磁盘空间(推荐20GB以上)至少512MB RAM(推荐2GB以上)可用的互联网连接(用于下载源代码和包)
2. 至少5GB的可用磁盘空间(推荐20GB以上)
3. 至少512MB RAM(推荐2GB以上)
4. 可用的互联网连接(用于下载源代码和包)
5. 下载安装介质:
从Gentoo官方网站获取最新的安装镜像。Gentoo提供多种选择,包括带GUI的安装介质和纯命令行版本。
6. 备份重要数据:
如果是在现有系统上安装,确保备份所有重要数据,以防安装过程中发生意外。
系统要求检查:
• 至少5GB的可用磁盘空间(推荐20GB以上)
• 至少512MB RAM(推荐2GB以上)
• 可用的互联网连接(用于下载源代码和包)
下载安装介质:
从Gentoo官方网站获取最新的安装镜像。Gentoo提供多种选择,包括带GUI的安装介质和纯命令行版本。
备份重要数据:
如果是在现有系统上安装,确保备份所有重要数据,以防安装过程中发生意外。
详细安装步骤
Gentoo的安装过程相对复杂,但这也提供了对系统的完全控制。以下是详细的安装步骤:
- # 从安装介质启动后,首先配置网络
- # 对于有线连接,通常使用DHCP自动获取IP
- dhcpcd eth0
- # 对于无线连接,使用net-setup工具
- net-setup wlan0
- # 测试网络连接
- ping -c 3 www.gentoo.org
复制代码
Gentoo需要手动分区,这提供了对磁盘布局的完全控制:
- # 启动fdisk进行分区
- fdisk /dev/sda
- # 创建分区(示例布局)
- # /dev/sda1 - 引导分区 (512MB)
- # /dev/sda2 - 交换分区 (2倍RAM大小)
- # /dev/sda3 - 根分区 (剩余空间)
- # 格式化分区
- mkfs.ext4 /dev/sda1
- mkswap /dev/sda2
- mkfs.ext4 /dev/sda3
- # 激活交换分区
- swapon /dev/sda2
- # 挂载分区
- mount /dev/sda3 /mnt/gentoo
- mkdir /mnt/gentoo/boot
- mount /dev/sda1 /mnt/gentoo/boot
复制代码- # 确保系统时间准确
- ntpd -qg
- # 下载stage3 tarball(基础系统)
- cd /mnt/gentoo
- links https://www.gentoo.org/downloads/mirrors/
- # 解压stage3 tarball
- tar xvjpf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
- # 配置编译选项
- nano -w /mnt/gentoo/etc/portage/make.conf
- # 在make.conf中添加以下内容(根据CPU调整)
- # COMMON_FLAGS="-O2 -pipe -march=native"
- # CFLAGS="${COMMON_FLAGS}"
- # CXXFLAGS="${COMMON_FLAGS}"
- # FCFLAGS="${COMMON_FLAGS}"
- # FFLAGS="${COMMON_FLAGS}"
- # MAKEOPTS="-j2" # 设置为CPU核心数+1
- # 选择镜像站点
- mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
- # 复制DNS信息
- cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
- # 挂载必要的文件系统
- mount -t 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"
复制代码- # 更新Portage树(软件包数据库)
- emerge --sync --quiet
- # 选择profile(系统预配置)
- eselect profile list
- eselect profile set default/linux/amd64/17.1/desktop
- # 更新@world set(系统基本软件包)
- emerge --update --deep --newuse @world
- # 配置时区
- ls /usr/share/zoneinfo
- echo "Asia/Shanghai" > /etc/timezone
- emerge --config sys-libs/timezone-data
- # 设置locale(本地化设置)
- nano -w /etc/locale.gen
- # 取消注释需要的locale,例如:
- # en_US.UTF-8 UTF-8
- # zh_CN.UTF-8 UTF-8
- locale-gen
- eselect locale list
- eselect locale set en_US.utf8
- env-update && source /etc/profile && export PS1="(chroot) $PS1"
复制代码- # 安装内核源码
- emerge sys-kernel/gentoo-sources
- # 配置内核
- cd /usr/src/linux
- make menuconfig
- # 内核配置建议:
- # 1. 启用CPU优化
- # Processor type and features --->
- # Processor family (选择你的CPU类型)
- # [*] Symmetric multi-processing support
- # [*] Enable x86-64 support
- # 2. 启用必要的文件系统
- # File systems --->
- # [*] Ext4 journalling file system support
- # [*] Btrfs filesystem support (如果需要)
- # [*] FUSE (Filesystem in Userspace) support
- # 3. 启用网络支持
- # Device Drivers --->
- # [*] Network device support
- # [*] Wireless LAN
- # 4. 启用音频支持
- # Device Drivers --->
- # [*] Sound card support
- # [*] Advanced Linux Sound Architecture
- # 编译和安装内核
- make && make modules_install
- make install
- # 安装固件
- emerge sys-kernel/linux-firmware
复制代码- # 配置文件系统表
- nano -w /etc/fstab
- # 添加以下内容(根据实际分区调整):
- # /dev/sda1 /boot ext4 defaults,noatime 0 2
- # /dev/sda2 none swap sw 0 0
- # /dev/sda3 / ext4 noatime 0 1
- # 配置网络
- echo "hostname="gentoo"" > /etc/conf.d/hostname
- emerge --noreplace net-misc/netifrc
- emerge net-misc/dhcpcd
- cd /etc/init.d
- ln -s net.lo net.eth0
- rc-update add net.eth0 default
- # 设置root密码
- passwd
- # 安装必要的系统工具
- emerge sys-apps/sysklogd
- rc-update add sysklogd default
- emerge sys-process/cronie
- rc-update add cronie default
- # 安装引导加载程序
- emerge sys-boot/grub:2
- grub-install /dev/sda
- grub-mkconfig -o /boot/grub/grub.cfg
- # 退出chroot并重启
- exit
- cd
- umount -l /mnt/gentoo/dev{/shm,/pts,}
- umount -R /mnt/gentoo
- reboot
复制代码- # 创建普通用户
- useradd -m -G users,wheel,audio,video -s /bin/bash username
- passwd username
- # 安装sudo
- emerge app-admin/sudo
- visudo
- # 添加以下内容,允许wheel组用户使用sudo
- # %wheel ALL=(ALL) ALL
- # 更新系统
- emerge --sync
- emerge --update --deep --newuse @world
复制代码
系统定制化:Gentoo的核心优势
Gentoo的核心优势在于其高度可定制性。通过USE标志、编译选项和内核定制,可以创建一个完全符合个人需求的系统。
USE标志详解
USE标志是Gentoo的一个关键特性,它允许用户控制软件包的编译选项。通过USE标志,可以启用或禁用特定功能,从而减少不必要的依赖和优化系统性能。
USE标志分为全局和局部两种。全局USE标志在/etc/portage/make.conf中设置,影响所有软件包;局部USE标志在/etc/portage/package.use中设置,只影响特定软件包。
- # 查看所有可用的USE标志
- emerge --info | grep USE
- # 查看特定软件包的USE标志
- emerge -pv <package-name>
- # 查看USE标志的描述
- equery uses <package-name>
复制代码
一些常用的USE标志包括:
• X:启用X11支持(图形界面)
• gtk:启用GTK+支持(GNOME桌面环境)
• qt5:启用Qt5支持(KDE桌面环境)
• alsa:启用ALSA音频支持
• pulseaudio:启用PulseAudio支持
• systemd:启用systemd支持(替代OpenRC)
• openssl:启用OpenSSL支持(加密)
• gnome:启用GNOME桌面环境支持
• kde:启用KDE桌面环境支持
• python:启用Python支持
• perl:启用Perl支持
- # 编辑make.conf设置全局USE标志
- nano -w /etc/portage/make.conf
- # 添加或修改USE变量
- USE="X gtk alsa pulseaudio -systemd -kde python"
- # 为特定软件包设置USE标志
- nano -w /etc/portage/package.use
- # 添加以下内容(示例)
- # media-video/vlc mp3 dvd ffmpeg
- # www-client/firefox -pulseaudio
- # app-office/libreoffice gtk -kde
复制代码- # 重新编译受影响的软件包
- emerge --update --deep --newuse @world
- # 或者使用--changed-use选项只重新编译USE标志改变的软件包
- emerge --changed-use --deep @world
复制代码
编译选项优化
Gentoo允许用户通过调整编译选项来优化系统性能。这些选项主要在/etc/portage/make.conf中设置。
这些变量控制C和C++编译器的行为。正确的设置可以显著提高系统性能:
- # 编辑make.conf
- nano -w /etc/portage/make.conf
- # 设置编译选项
- # -O2:推荐的优化级别,平衡性能和稳定性
- # -O3:更激进的优化,可能会增加编译时间和不稳定风险
- # -pipe:使用管道而不是临时文件,加快编译速度
- # -march=native:针对当前CPU架构优化
- # -mtune=native:针对当前CPU调度优化
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=native"
- CFLAGS="${COMMON_FLAGS}"
- CXXFLAGS="${COMMON_FLAGS}"
复制代码- # Intel CPU优化
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
- # AMD CPU优化
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
- # 通用优化(适用于多种CPU)
- COMMON_FLAGS="-O2 -pipe -march=x86-64 -mtune=generic"
复制代码- # 在make.conf中添加链接器优化
- LDFLAGS="-Wl,-O1 -Wl,--as-needed"
- # MAKEOPTS控制并行编译的进程数
- # 通常设置为CPU核心数+1
- MAKEOPTS="-j5" # 假设有4个CPU核心
- # EMERGE_DEFAULT_OPTS控制emerge的默认行为
- EMERGE_DEFAULT_OPTS="--with-bdeps=y --quiet-build=y --quiet-fail=y"
- # FEATURES控制Portage的特性
- FEATURES="ccache parallel-fetch parallel-install"
复制代码- # 启用Link Time Optimization (LTO)
- COMMON_FLAGS="${COMMON_FLAGS} -flto"
- # 启用Profile Guided Optimization (PGO) - 需要特定软件包支持
- # 在package.use中设置
- echo 'app-office/libreoffice pgo' >> /etc/portage/package.use
复制代码
内核定制
Gentoo允许用户完全定制内核,这是优化系统性能的关键步骤。
Gentoo提供多种内核源码选择:
- # 查看可用的内核源码
- emerge --search sys-kernel/
- # 安装gentoo-sources(推荐新手使用)
- emerge sys-kernel/gentoo-sources
- # 或者安装vanilla-sources(纯净内核)
- emerge sys-kernel/vanilla-sources
- # 或者安装其他特定内核,如 hardened-sources(安全增强)
- emerge sys-kernel/hardened-sources
- # 或者安装zen-sources(桌面优化)
- emerge sys-kernel/zen-sources
复制代码- # 进入内核源码目录
- cd /usr/src/linux
- # 使用make menuconfig进行图形化配置
- make menuconfig
- # 或者使用make nconfig(更现代的界面)
- make nconfig
- # 或者使用make oldconfig基于现有配置进行更新
- make oldconfig
- # 或者使用make localyesconfig将当前加载的模块设置为内置
- make localyesconfig
复制代码
以下是一些内核配置优化建议:
- # 1. CPU优化
- Processor type and features --->
- Processor family (选择你的CPU类型)
- [*] Symmetric multi-processing support
- [*] Enable x86-64 support
- [*] Machine Check / overheating reporting
- [*] Performance monitoring
- # 2. 调度器优化
- Processor type and features --->
- Timer frequency (1000 HZ) # 桌面系统选择高频率
- Preemption Model (Voluntary Kernel Preemption (Desktop)) # 桌面系统
- Preemption Model (Preemptible Kernel (Low-Latency Desktop)) # 低延迟需求
- # 3. 文件系统优化
- File systems --->
- [*] Ext4 journalling file system support
- [*] Btrfs filesystem support (如果需要)
- [*] XFS filesystem support (如果需要)
- [*] FUSE (Filesystem in Userspace) support
- Pseudo filesystems --->
- [*] /proc file system support
- [*] sysfs file system support
- # 4. 网络优化
- Networking support --->
- Networking options --->
- [*] TCP/IP networking
- [*] IP: advanced router
- [*] IP: TCP syncookie support
- [*] Network packet filtering framework (Netfilter)
- [*] TCP congestion control algorithm ---> BBR
- [*] TCP: advanced congestion control
- # 5. 驱动支持优化
- Device Drivers --->
- [*] Network device support
- [*] Sound card support
- [*] HID Devices
- [*] USB support
- Graphics support --->
- [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
- [*] modesetting
复制代码- # 编译内核和模块
- make && make modules_install
- # 安装内核
- make install
- # 或者手动复制内核文件
- cp arch/x86/boot/bzImage /boot/kernel-$(make kernelversion)
- cp System.map /boot/System.map-$(make kernelversion)
- cp .config /boot/config-$(make kernelversion)
- # 更新grub配置
- grub-mkconfig -o /boot/grub/grub.cfg
复制代码
对于新手,可以使用genkernel自动配置和编译内核:
- # 安装genkernel
- emerge sys-kernel/genkernel
- # 使用genkernel编译内核
- genkernel all
- # 或者使用特定选项
- genkernel --menuconfig all
- genkernel --bootloader=grub all
复制代码
性能优化:释放Gentoo的全部潜力
Gentoo的主要优势之一是其出色的性能优化潜力。通过系统启动优化、内存管理优化、文件系统优化和CPU优化,可以显著提高系统性能。
系统启动优化
Gentoo默认使用OpenRC作为初始化系统,它比systemd更轻量级,启动速度更快。
- # 确保使用OpenRC
- eselect profile list
- eselect profile set default/linux/amd64/17.1
- # 查看启动服务
- rc-update show
- # 添加或删除启动服务
- rc-update add <service> default
- rc-update del <service> default
- # 禁用不必要的服务
- rc-update del cronie boot
- rc-update del syslog-ng boot
复制代码- # 编辑rc.conf
- nano -w /etc/rc.conf
- # 启用并行启动
- rc_parallel="YES"
- # 禁用fsck检查(如果使用SSD)
- rc_fsck="NO"
- # 设置启动日志级别
- rc_logger="YES"
- rc_log_path="/var/log/rc.log"
复制代码- # 安装boot-update2简化引导配置
- emerge sys-boot/boot-update
- # 配置boot-update2
- nano -w /etc/boot-update.conf
- # 更新引导配置
- boot-update
复制代码
虽然Gentoo默认使用OpenRC,但也可以选择systemd:
- # 选择支持systemd的profile
- eselect profile set default/linux/amd64/17.1/systemd
- # 安装systemd
- emerge sys-apps/systemd
- # 配置systemd
- systemctl enable <service>
- systemctl start <service>
复制代码
内存管理优化
- # 编辑sysctl.conf
- nano -w /etc/sysctl.conf
- # 添加以下内容
- # 虚拟内存管理
- vm.swappiness=10 # 减少交换使用
- vm.vfs_cache_pressure=50 # 增加缓存保留
- vm.dirty_ratio=10 # 减少脏页
- vm.dirty_background_ratio=5 # 减少后台脏页
- # 文件系统优化
- fs.file-max=100000 # 增加文件描述符限制
- # 网络优化
- net.core.rmem_max=16777216
- net.core.wmem_max=16777216
- net.ipv4.tcp_rmem=4096 87380 16777216
- net.ipv4.tcp_wmem=4096 65536 16777216
- net.ipv4.tcp_congestion_control=bbr
- # 应用更改
- sysctl -p
复制代码
zram可以在内存中创建压缩块设备,用作交换空间:
- # 安装zram
- emerge sys-block/zram-init
- # 配置zram
- nano -w /etc/conf.d/zram-init
- # 添加以下内容
- # zram_init(8) configuration
- # Number of zram devices to create
- zram_devices=1
- # Size of zram device(s)
- zram_size_mb=512
- # Compression algorithm to use
- zram_alg=lz4
- # 启用zram
- rc-update add zram-init boot
- /etc/init.d/zram-init start
复制代码
prelink可以预链接共享库,加快程序启动速度:
- # 安装prelink
- emerge sys-devel/prelink
- # 配置prelink
- nano -w /etc/prelink.conf
- # 运行prelink
- prelink -amR
复制代码
earlyoom可以在内存不足时自动终止进程,防止系统冻结:
- # 安装earlyoom
- emerge sys-process/earlyoom
- # 配置earlyoom
- nano -w /etc/conf.d/earlyoom
- # 设置内存阈值
- # EARLYOOM_ARGS="-m 5 -M 3"
- # 启用earlyoom
- rc-update add earlyoom default
- /etc/init.d/earlyoom start
复制代码
文件系统优化
Gentoo支持多种文件系统,每种都有其优缺点:
• ext4:稳定、可靠,适合大多数用途
• btrfs:现代文件系统,支持快照、压缩和自修复
• xfs:高性能,适合大文件和大容量存储
• zfs:高级功能,如快照、压缩和数据完整性检查
- # 安装文件系统工具
- emerge sys-fs/btrfs-progs
- emerge sys-fs/xfsprogs
- emerge sys-fs/zfs
- # 格式化分区
- mkfs.btrfs /dev/sda3
- mkfs.xfs /dev/sda3
复制代码- # 编辑fstab
- nano -w /etc/fstab
- # 添加优化选项
- # /dev/sda3 / btrfs noatime,compress=lzo,ssd 0 1
- # /dev/sda3 / xfs noatime,logbufs=8,logbsize=256k 0 1
- # /dev/sda3 / ext4 noatime,data=writeback 0 1
复制代码
这些挂载选项可以减少磁盘写入,提高性能:
- # 在fstab中添加noatime选项
- /dev/sda3 / ext4 noatime 0 1
复制代码
tmpfs是基于内存的文件系统,适合临时文件:
- # 编辑fstab
- nano -w /etc/fstab
- # 添加tmpfs挂载
- # tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
- # tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
复制代码
对于Btrfs文件系统:
- # 创建子卷
- btrfs subvolume create /mnt/gentoo/@
- btrfs subvolume create /mnt/gentoo/@home
- btrfs subvolume create /mnt/gentoo/@var
- # 挂载子卷
- mount -o noatime,compress=lzo,subvol=@ /dev/sda3 /mnt/gentoo
- mount -o noatime,compress=lzo,subvol=@home /dev/sda3 /mnt/gentoo/home
- mount -o noatime,compress=lzo,subvol=@var /dev/sda3 /mnt/gentoo/var
- # 定期平衡文件系统
- btrfs balance start /mnt/gentoo
- # 启用碎片整理
- btrfs filesystem defragment -r /mnt/gentoo
复制代码
对于XFS文件系统:
- # 调整日志大小
- mkfs.xfs -l size=128m /dev/sda3
- # 挂载选项优化
- mount -o noatime,logbufs=8,logbsize=256k /dev/sda3 /mnt/gentoo
复制代码
CPU和编译优化
- # 编辑make.conf
- nano -w /etc/portage/make.conf
- # 针对特定CPU优化
- # Intel CPU
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
- # AMD CPU
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer"
- # 通用优化
- COMMON_FLAGS="-O2 -pipe -march=x86-64 -mtune=generic"
- CFLAGS="${COMMON_FLAGS}"
- CXXFLAGS="${COMMON_FLAGS}"
复制代码
LTO(Link Time Optimization)和PGO(Profile Guided Optimization)可以进一步提高性能:
- # 在make.conf中启用LTO
- COMMON_FLAGS="${COMMON_FLAGS} -flto"
- # 为特定软件包启用PGO
- echo 'app-office/libreoffice pgo' >> /etc/portage/package.use
- echo 'www-client/firefox pgo' >> /etc/portage/package.use
复制代码
ccache可以缓存编译结果,加快重新编译速度:
- # 安装ccache
- emerge dev-util/ccache
- # 配置ccache
- nano -w /etc/portage/make.conf
- # 添加以下内容
- FEATURES="ccache"
- CCACHE_SIZE="5G"
- # 检查ccache状态
- ccache -s
复制代码
distcc允许分布式编译,利用多台计算机加速编译:
- # 安装distcc
- emerge sys-devel/distcc
- # 配置distcc
- nano -w /etc/portage/make.conf
- # 添加以下内容
- FEATURES="distcc"
- MAKEOPTS="-j9" # 增加并行任务数
- # 配置distcc主机
- echo "192.168.1.100,192.168.1.101" > /etc/distcc/hosts
- # 启动distcc服务
- rc-update add distccd default
- /etc/init.d/distccd start
复制代码- # 在make.conf中启用二进制包缓存
- FEATURES="buildpkg"
- # 设置二进制包位置
- PKGDIR="/var/cache/binpkgs"
- # 从二进制包安装
- emerge --usepkg <package-name>
- # 创建二进制包
- emerge --buildpkgonly <package-name>
复制代码
高级配置:打造个性化Gentoo系统
Gentoo的高级配置包括服务管理、安全配置、网络优化和桌面环境定制等方面。
服务管理
- # 查看所有可用服务
- ls /etc/init.d/
- # 查看已启动服务
- rc-update show
- # 添加服务到启动级别
- rc-update add <service> default
- rc-update add <service> boot
- # 删除服务
- rc-update del <service> default
- # 手动启动/停止服务
- /etc/init.d/<service> start
- /etc/init.d/<service> stop
- /etc/init.d/<service> restart
- # 查看服务状态
- /etc/init.d/<service> status
复制代码- # 创建自定义服务脚本
- nano -w /etc/init.d/myservice
- # 添加以下内容
- #!/sbin/openrc-run
- command="/usr/bin/myservice"
- command_args="--option value"
- pidfile="/run/myservice.pid"
- depend() {
- need net
- after firewall
- }
- start_pre() {
- checkpath --directory --owner root:root --mode 0775 /run/myservice
- }
- # 设置执行权限
- chmod +x /etc/init.d/myservice
- # 添加到启动级别
- rc-update add myservice default
复制代码- # 安装cron
- emerge sys-process/cronie
- # 启动cron服务
- rc-update add cronie default
- /etc/init.d/cronie start
- # 编辑crontab
- crontab -e
- # 添加定时任务
- # 0 3 * * * /usr/bin/emerge --sync
- # 0 4 * * 0 /usr/bin/emerge --update --deep --newuse @world
- # */5 * * * * /usr/bin/backup-script.sh
复制代码
安全配置
- # 安装iptables
- emerge net-firewall/iptables
- # 创建防火墙规则
- nano -w /etc/iptables/rules-save
- # 添加基本规则
- *filter
- :INPUT DROP [0:0]
- :FORWARD DROP [0:0]
- :OUTPUT ACCEPT [0:0]
- -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -p icmp -j ACCEPT
- -A INPUT -p tcp --dport 22 -j ACCEPT
- COMMIT
- # 应用规则
- iptables-restore < /etc/iptables/rules-save
- # 保存规则
- /etc/init.d/iptables save
- # 启动iptables服务
- rc-update add iptables default
- /etc/init.d/iptables start
复制代码
fail2ban可以防止暴力破解攻击:
- # 安装fail2ban
- emerge net-analyzer/fail2ban
- # 配置fail2ban
- cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- nano -w /etc/fail2ban/jail.local
- # 启用SSH保护
- [sshd]
- enabled = true
- port = ssh
- filter = sshd
- logpath = /var/log/auth.log
- maxretry = 3
- bantime = 3600
- # 启动fail2ban
- rc-update add fail2ban default
- /etc/init.d/fail2ban start
复制代码- # 安装SELinux
- emerge sys-apps/policycoreutils
- emerge sec-policy/selinux-base
- # 启用SELinux
- nano -w /etc/selinux/config
- # SELINUX=enforcing
- # SELINUXTYPE=targeted
- # 重启系统
- reboot
- # 或者安装AppArmor
- emerge sys-libs/libapparmor
- emerge sys-apps/apparmor
- # 启动AppArmor
- rc-update add apparmor default
- /etc/init.d/apparmor start
复制代码- # 安装安全工具
- emerge app-admin/logwatch
- emerge app-admin/rkhunter
- emerge app-forensics/chkrootkit
- # 配置自动安全检查
- crontab -e
- # 添加以下内容
- # 0 2 * * * /usr/bin/rkhunter --checkall
- # 0 3 * * * /usr/sbin/chkrootkit
- # 配置登录安全
- nano -w /etc/login.defs
- # 修改以下内容
- # PASS_MAX_DAYS 90
- # PASS_MIN_DAYS 7
- # PASS_WARN_AGE 7
- # LOGIN_RETRIES 5
复制代码
网络优化
- # 配置网络接口
- nano -w /etc/conf.d/net
- # 添加静态IP配置
- # config_eth0="192.168.1.100/24"
- # routes_eth0="default via 192.168.1.1"
- # dns_servers_eth0="192.168.1.1 8.8.8.8"
- # 或者使用DHCP
- # config_eth0="dhcp"
- # 启用网络接口
- cd /etc/init.d
- ln -s net.lo net.eth0
- rc-update add net.eth0 default
- /etc/init.d/net.eth0 start
复制代码- # 编辑sysctl.conf
- nano -w /etc/sysctl.conf
- # 添加网络优化参数
- # TCP优化
- net.ipv4.tcp_congestion_control=bbr
- net.ipv4.tcp_rfc1337=1
- net.ipv4.tcp_slow_start_after_idle=0
- net.ipv4.tcp_fastopen=3
- net.ipv4.tcp_mtu_probing=1
- # 网络缓冲区优化
- net.core.rmem_max=16777216
- net.core.wmem_max=16777216
- net.ipv4.tcp_rmem=4096 87380 16777216
- net.ipv4.tcp_wmem=4096 65536 16777216
- # 应用更改
- sysctl -p
复制代码
对于笔记本电脑和移动设备,可以使用NetworkManager:
- # 安装NetworkManager
- emerge net-misc/networkmanager
- # 启用NetworkManager
- rc-update add NetworkManager default
- /etc/init.d/NetworkManager start
- # 安装前端工具
- emerge gnome-extra/nm-applet
- emerge net-misc/networkmanager-openvpn
复制代码
对于需要高可用性的网络,可以使用bonding或teaming:
- # 安装bonding工具
- emerge net-misc/ifenslave
- # 配置bonding
- nano -w /etc/conf.d/net
- # 添加以下内容
- # slaves_bond0="eth0 eth1"
- # config_bond0="null"
- # mode_bond0="4"
- # 启用bonding
- cd /etc/init.d
- ln -s net.lo net.bond0
- rc-update add net.bond0 default
- /etc/init.d/net.bond0 start
复制代码
桌面环境定制
- # 安装Xorg服务器
- emerge x11-base/xorg-server
- # 安装视频驱动
- emerge x11-drivers/xf86-video-nouveau # NVIDIA开源驱动
- emerge x11-drivers/xf86-video-intel # Intel驱动
- emerge x11-drivers/xf86-video-amdgpu # AMD驱动
- # 配置Xorg
- Xorg -configure
- mv /root/xorg.conf.new /etc/X11/xorg.conf
复制代码
Gentoo支持多种桌面环境,以下是几种流行的选择:
- # 设置USE标志
- echo "gnome" >> /etc/portage/make.conf
- # 安装GNOME
- emerge gnome-base/gnome
- # 启动GNOME服务
- rc-update add gdm default
- /etc/init.d/gdm start
复制代码- # 设置USE标志
- echo "kde" >> /etc/portage/make.conf
- # 安装KDE
- emerge kde-plasma/plasma-meta
- # 启动KDE服务
- rc-update add xdm default
- echo "exec startkde" > ~/.xinitrc
复制代码- # 安装Xfce
- emerge xfce-base/xfce4-meta
- # 配置启动
- echo "exec startxfce4" > ~/.xinitrc
复制代码- # 安装LightDM
- emerge x11-misc/lightdm
- emerge x11-misc/lightdm-gtk-greeter
- # 配置LightDM
- rc-update add lightdm default
- /etc/init.d/lightdm start
复制代码- # 安装性能优化工具
- emerge sys-process/htop
- emerge sys-apps/lm_sensors
- emerge sys-process/iotop
- # 配置传感器
- sensors-detect
- # 安装系统监控工具
- emerge app-admin/sysstat
- rc-update add sysstat default
- # 安装图形化系统监控
- emerge sys-process/gnome-system-monitor
- emerge x11-apps/xosview
复制代码
故障排除与维护
即使是最优化的系统也可能遇到问题。本节介绍一些常见的故障排除方法和系统维护技巧。
系统维护
- # 同步Portage树
- emerge --sync
- # 更新系统
- emerge --update --deep --newuse @world
- # 清理孤立软件包
- emerge --depclean
- # 重建依赖关系
- revdep-rebuild
- # 清理下载的源代码
- eclean-dist
复制代码- # 检查文件系统
- fsck /dev/sda3
- # 对于btrfs文件系统
- btrfs scrub start /mnt/gentoo
- btrfs balance start /mnt/gentoo
- # 清理临时文件
- rm -rf /tmp/*
- rm -rf /var/tmp/*
- # 查找大文件
- find / -type f -size +100M -exec ls -lh {} \;
复制代码- # 安装logrotate
- emerge app-admin/logrotate
- # 配置logrotate
- nano -w /etc/logrotate.conf
- # 手动轮转日志
- logrotate -f /etc/logrotate.conf
- # 查看系统日志
- tail -f /var/log/messages
- journalctl -f # 如果使用systemd
复制代码
常见问题解决
- # 检查启动日志
- dmesg | less
- journalctl -xb # 如果使用systemd
- # 检查服务状态
- /etc/init.d/<service> status
- # 进入单用户模式
- 在启动菜单添加"single"或"init=/bin/bash"
- # 修复引导问题
- grub-install /dev/sda
- grub-mkconfig -o /boot/grub/grub.cfg
复制代码- # 解决依赖问题
- emerge --resume --skipfirst
- # 重新编译损坏的软件包
- emerge -e @world
- # 查找冲突文件
- equery belongs <filename>
- # 清理部分安装的软件包
- emerge --resume --skipfirst
- # 修复Python模块冲突
- emerge @python-rebuild
复制代码- # 监控系统资源
- top
- htop
- iotop
- iftop
- # 检查磁盘使用
- df -h
- du -sh /path/to/directory
- # 检查内存使用
- free -h
- cat /proc/meminfo
- # 检查CPU使用
- cat /proc/cpuinfo
- grep 'cpu ' /proc/stat
- # 检查进程状态
- ps aux
- ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu
复制代码- # 检查网络连接
- ping www.google.com
- traceroute www.google.com
- # 检查网络接口
- ip addr
- ip link
- # 检查路由
- ip route
- # 检查DNS
- nslookup www.google.com
- dig www.google.com
- # 检查防火墙规则
- iptables -L
- iptables -t nat -L
- # 检查网络连接状态
- netstat -tuln
- ss -tuln
复制代码
系统备份与恢复
- # 安装rsync
- emerge net-misc/rsync
- # 创建备份脚本
- nano -w /usr/local/bin/backup.sh
- # 添加以下内容
- #!/bin/bash
- rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/
- # 设置执行权限
- chmod +x /usr/local/bin/backup.sh
- # 定期备份
- crontab -e
- # 添加以下内容
- # 0 2 * * * /usr/local/bin/backup.sh
复制代码- # 安装Timeshift
- emerge app-backup/timeshift
- # 配置Timeshift
- timeshift-gtk
- # 创建快照
- timeshift --create --comments "Weekly backup"
- # 恢复快照
- timeshift --restore
复制代码- # 从Live CD启动
- # 挂载分区
- mount /dev/sda3 /mnt/gentoo
- mount /dev/sda1 /mnt/gentoo/boot
- swapon /dev/sda2
- # 恢复系统
- rsync -aAXv /path/to/backup/ /mnt/gentoo/
- # 进入chroot
- mount -t 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"
- # 重新安装引导程序
- grub-install /dev/sda
- grub-mkconfig -o /boot/grub/grub.cfg
- # 重启系统
- exit
- reboot
复制代码
总结与展望
Gentoo Linux是一个高度可定制的Linux发行版,它提供了无与伦比的灵活性和性能优化潜力。通过本文的介绍,我们了解了从基础安装到高级配置的全方位指南,包括系统定制化、性能优化、高级配置和故障排除等方面。
Gentoo的主要优势
1. 高度定制化:通过USE标志、编译选项和内核定制,可以创建一个完全符合个人需求的系统。
2. 性能优化:通过系统启动优化、内存管理优化、文件系统优化和CPU优化,可以显著提高系统性能。
3. 学习价值:通过手动安装和配置系统,可以深入理解Linux内部工作原理。
4. 社区支持:Gentoo拥有活跃的社区,提供了丰富的文档和支持资源。
Gentoo的挑战
1. 安装复杂:相比其他发行版,Gentoo的安装过程更为复杂,需要更多的技术知识。
2. 编译时间长:从源代码编译软件需要更多的时间,尤其是在较旧的硬件上。
3. 维护成本高:需要定期更新系统,处理依赖关系和解决冲突。
未来展望
展望未来,Gentoo将继续发展,提供更多的优化选项和更好的用户体验。随着硬件性能的提高和编译工具的改进,Gentoo的编译时间将进一步减少。同时,Gentoo社区将继续提供高质量的文档和支持,帮助用户更好地使用和维护系统。
对于那些希望完全控制其系统环境、追求极致性能和深入了解Linux内部工作原理的用户来说,Gentoo无疑是一个理想的选择。通过本文的指南,相信你已经掌握了Gentoo的基本使用和高级配置技巧,可以进一步探索Gentoo的无限可能性。
最后,记住Gentoo的核心理念是”选择”,它赋予用户决定系统如何工作的权力。正是这种自由和灵活性,使得Gentoo成为Linux世界中独特而宝贵的存在。无论你是新手还是经验丰富的用户,Gentoo都能提供一个强大、灵活和高效的计算平台,助你精通Linux高度定制化与性能优化之道。 |
|