|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
引言
Gentoo Linux是一个基于源代码的Linux发行版,以其灵活性、强大功能和高度可定制性而闻名。与其他Linux发行版不同,Gentoo采用Portage包管理系统,允许用户从源代码编译软件,从而实现针对特定硬件的深度优化。这种设计理念使Gentoo成为追求极致性能和完全控制系统的用户的首选。
Gentoo的主要特点包括:
• 高度可定制:从内核到应用程序,几乎所有组件都可以根据用户需求进行定制。
• 优化性能:通过从源代码编译软件,可以针对特定硬件进行优化,提高系统性能。
• 滚动更新:Gentoo采用滚动更新模式,无需重装系统即可保持软件最新。
• 选择自由:用户可以自由选择系统组件,避免不必要的软件和服务。
• 文档完善:Gentoo拥有详尽的文档,帮助用户解决各种问题。
本教程将手把手指导您从零开始学习Gentoo Linux的安装、配置与优化,帮助您掌握这个强大而灵活的Linux发行版。
准备工作
系统要求
在开始安装Gentoo之前,请确保您的系统满足以下最低要求:
• CPU:任何64位或32位处理器(x86或AMD64)
• 内存:至少512MB RAM(推荐2GB以上)
• 硬盘空间:至少10GB可用空间(推荐20GB以上)
• 网络连接:安装过程中需要互联网连接以下载源代码和软件包
下载Gentoo安装镜像
1. 访问Gentoo官方网站(https://www.gentoo.org/downloads/)
2. 选择适合您系统架构的安装镜像(例如amd64、x86等)
3. 下载最小安装CD(Minimal Installation CD)或LiveDVD
创建启动介质
创建启动介质的方法取决于您的操作系统:
- # 首先确定USB设备名称(例如/dev/sdb)
- lsblk
- # 卸载USB设备(如果已挂载)
- umount /dev/sdb*
- # 使用dd命令将镜像写入USB设备
- sudo dd if=gentoo-install-amd64-minimal.iso of=/dev/sdb bs=4M status=progress
- sync
复制代码
1. 下载并安装Rufus(https://rufus.ie/)
2. 插入USB设备
3. 启动Rufus,选择Gentoo安装镜像和USB设备
4. 点击”开始”创建启动USB
安装过程
启动安装环境
1. 将创建的启动介质插入计算机
2. 重启计算机并进入BIOS/UEFI设置
3. 设置从USB设备启动
4. 保存设置并重启
计算机将从Gentoo安装介质启动,您将看到引导菜单。选择默认选项启动安装环境。
网络配置
安装过程中需要互联网连接以下载源代码和软件包。Gentoo安装环境通常会自动尝试配置网络,但如果需要手动配置:
- # 查看网络接口
- ip a
- # 启用网络接口(例如eth0)
- dhcpcd eth0
- # 测试网络连接
- ping -c 3 www.gentoo.org
复制代码- # 扫描可用的无线网络
- iw dev wlan0 scan
- # 连接到无线网络
- wpa_supplicant -B -i wlan0 -c <(wpa_passphrase "SSID" "password")
- # 获取IP地址
- dhcpcd wlan0
复制代码
磁盘分区
Gentoo安装需要手动分区。以下是推荐的分区方案:
- # 启动 parted 进行分区
- parted /dev/sda
- # 创建GPT分区表(适用于UEFI系统)
- mklabel gpt
- # 创建引导分区(UEFI系统需要)
- mkpart ESP fat32 1MiB 512MiB
- set 1 boot on
- # 创建swap分区(建议大小为内存的1-2倍)
- mkpart swap linux-swap 512MiB 4.5GiB
- # 创建根分区
- mkpart root ext4 4.5GiB 100%
- # 退出parted
- quit
复制代码
格式化分区
- # 格式化EFI分区
- mkfs.fat -F 32 /dev/sda1
- # 格式化swap分区
- mkswap /dev/sda2
- swapon /dev/sda2
- # 格式化根分区
- mkfs.ext4 /dev/sda3
复制代码
挂载分区
- # 挂载根分区
- mount /dev/sda3 /mnt/gentoo
- # 创建EFI目录并挂载EFI分区
- mkdir /mnt/gentoo/boot
- mount /dev/sda1 /mnt/gentoo/boot
复制代码
安装Gentoo基础系统
- # 进入挂载点
- cd /mnt/gentoo
- # 下载stage3压缩包(根据您的系统架构选择)
- links https://www.gentoo.org/downloads/mirrors/
复制代码
在links浏览器中,选择一个镜像,然后进入releases/amd64/autobuilds/current-stage3-amd64/目录,下载stage3-amd64-*.tar.xz文件。
- # 验证下载的stage3压缩包
- wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-*.tar.xz.asc
- gpg --verify stage3-amd64-*.tar.xz.asc
- # 解压stage3压缩包
- tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
复制代码
配置编译选项
编辑/etc/portage/make.conf文件,设置编译选项:
- nano -w /mnt/gentoo/etc/portage/make.conf
复制代码
添加以下内容(根据您的硬件调整):
- # 设置通用编译选项
- COMMON_FLAGS="-O2 -pipe -march=native"
- # 设置C和C++编译器选项
- CFLAGS="${COMMON_FLAGS}"
- CXXFLAGS="${COMMON_FLAGS}"
- # 设置make的并行任务数(通常为CPU核心数+1)
- MAKEOPTS="-j5"
- # 设置USE标志(控制软件包的编译选项)
- USE="X gtk3 kde alsa pulseaudio bluetooth dvd unicode -systemd -gnome"
- # 设置视频卡驱动
- VIDEO_CARDS="nvidia intel"
- # 设置输入设备
- INPUT_DEVICES="libinput synaptics"
- # 设置语言环境
- L10N="en en-US zh zh-CN"
- LINGUAS="en zh"
复制代码
配置Gentoo镜像源
选择最快的Gentoo镜像源:
- mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
复制代码
复制DNS信息
- cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
复制代码
挂载必要的文件系统
- # 挂载proc文件系统
- mount -t proc /proc /mnt/gentoo/proc
- # 挂载sysfs文件系统
- mount --rbind /sys /mnt/gentoo/sys
- mount --make-rslave /mnt/gentoo/sys
- # 挂载devfs文件系统
- mount --rbind /dev /mnt/gentoo/dev
- mount --make-rslave /mnt/gentoo/dev
- # 挂载/run文件系统
- mount --bind /run /mnt/gentoo/run
- mount --make-slave /mnt/gentoo/run
复制代码
进入新的系统环境
- # 切换到新的系统环境
- chroot /mnt/gentoo /bin/bash
- # 加载bash配置
- source /etc/profile
- # 更新提示符
- export PS1="(chroot) ${PS1}"
复制代码
安装Portage快照
Portage是Gentoo的包管理系统,需要下载最新的Portage快照:
- # 创建Portage目录
- mkdir /usr/portage
- # 下载Portage快照
- emerge-webrsync
复制代码
配置系统
- # 查看可用时区
- ls /usr/share/zoneinfo
- # 设置时区(例如Asia/Shanghai)
- ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- # 设置硬件时钟为UTC
- hwclock --systohc
复制代码
编辑/etc/locale.gen文件:
取消注释以下行:
- en_US.UTF-8 UTF-8
- zh_CN.UTF-8 UTF-8
复制代码
生成语言环境:
设置系统语言环境:
- eselect locale set en_US.utf8
复制代码
更新环境变量:
- env-update
- source /etc/profile
复制代码- # 安装内核源代码
- emerge --ask sys-kernel/gentoo-sources
- # 查看已安装的内核源代码
- ls -l /usr/src/linux
复制代码
Gentoo提供了多种配置内核的方法。以下是使用genkernel自动配置的方法:
- # 安装genkernel
- emerge --ask sys-kernel/genkernel
- # 使用genkernel配置和编译内核
- genkernel all
复制代码
如果您想手动配置内核:
- # 进入内核源代码目录
- cd /usr/src/linux
- # 配置内核
- make menuconfig
- # 编译内核和模块
- make && make modules_install
- # 安装内核
- make install
复制代码- # 安装Linux固件
- emerge --ask sys-kernel/linux-firmware
复制代码
安装系统工具
- # 安装sysklogd(系统日志服务)
- emerge --ask app-admin/sysklogd
- # 启用sysklogd服务
- rc-update add sysklogd default
- # 安装logrotate(日志轮转工具)
- emerge --ask app-admin/logrotate
复制代码- # 安装cronie
- emerge --ask sys-process/cronie
- # 启用cronie服务
- rc-update add cronie default
复制代码- # 安装必要的文件系统工具
- emerge --ask sys-fs/e2fsprogs
- emerge --ask sys-fs/dosfstools
复制代码
配置引导程序
- # 安装GRUB2
- emerge --ask sys-boot/grub:2
- # 安装GRUB到硬盘
- grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Gentoo
- # 生成GRUB配置文件
- grub-mkconfig -o /boot/grub/grub.cfg
复制代码
编辑/etc/conf.d/net文件:
添加以下内容(根据您的网络配置调整):
- # 配置有线网络
- config_eth0="dhcp"
- # 配置无线网络(如果需要)
- config_wlan0="dhcp"
复制代码
启用网络服务:
- # 创建网络接口符号链接
- cd /etc/init.d
- ln -s net.lo net.eth0
- # 启用网络服务
- rc-update add net.eth0 default
复制代码- # 创建新用户(例如gentoo)
- useradd -m -G users,wheel,audio,video,usb,cdrom,portage -s /bin/bash gentoo
- # 设置用户密码
- passwd gentoo
复制代码
安装必要软件
- # 安装sudo
- emerge --ask app-admin/sudo
- # 配置sudo(允许wheel组成员使用sudo)
- echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/wheel
- chmod 0440 /etc/sudoers.d/wheel
- # 安装系统工具
- emerge --ask app-admin/sysklogd
- emerge --ask sys-process/cronie
- emerge --ask sys-apps/mlocate
- emerge --ask app-editors/nano
- emerge --ask app-editors/vim
复制代码
完成安装
- # 退出chroot环境
- exit
- # 卸载文件系统
- umount -l /mnt/gentoo/dev{/shm,/pts,}
- umount -R /mnt/gentoo
- # 重启系统
- reboot
复制代码
基础配置
网络配置
如果系统启动后网络未自动连接,可以手动配置:
- # 启用网络接口
- dhcpcd eth0
- # 测试网络连接
- ping -c 3 www.gentoo.org
复制代码- # 安装无线网络工具
- emerge --ask net-wireless/iw net-wireless/wpa_supplicant
- # 扫描无线网络
- iw dev wlan0 scan
- # 配置wpa_supplicant
- wpa_passphrase "SSID" "password" > /etc/wpa_supplicant/wpa_supplicant.conf
- # 启用wpa_supplicant
- wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
- # 获取IP地址
- dhcpcd wlan0
复制代码
系统更新
- # 同步Portage树
- emerge --sync
- # 更新系统
- emerge --ask --update --deep --newuse @world
复制代码
桌面环境安装
- # 安装Xorg服务器
- emerge --ask x11-base/xorg-server
- # 配置Xorg(可选)
- emerge --ask x11-apps/xrandr
复制代码
以下是安装KDE Plasma桌面的示例:
- # 安装KDE Plasma
- emerge --ask kde-plasma/plasma-meta
- # 启用显示管理器
- rc-update add sddm default
- # 启动显示管理器
- /etc/init.d/sddm start
复制代码
安装GNOME桌面环境的示例:
- # 安装GNOME
- emerge --ask gnome-base/gnome
- # 启用显示管理器
- rc-update add gdm default
- # 启动显示管理器
- /etc/init.d/gdm start
复制代码
声音配置
- # 安装ALSA工具
- emerge --ask media-sound/alsa-utils
- # 启用ALSA服务
- rc-update add alsasound default
- # 测试声音
- speaker-test -t wav -c 2
复制代码
系统优化
编译优化
编辑/etc/portage/make.conf文件,添加更具体的编译选项:
- nano -w /etc/portage/make.conf
复制代码
添加以下内容:
- # 设置通用编译选项
- COMMON_FLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
- # 设置链接时优化(LTO)
- LDFLAGS="${LDFLAGS} -Wl,-O1 -Wl,--as-needed"
- # 设置并行编译
- MAKEOPTS="-j$(nproc)"
- # 设置更激进的优化选项(可能导致不稳定)
- # CFLAGS="${COMMON_FLAGS} -O3 -flto"
- # CXXFLAGS="${COMMON_FLAGS} -O3 -flto"
- # 设置特定软件包的编译选项
- # 例如,为Firefox设置更激进的优化
- # package-specific-flags
复制代码
服务优化
- # 查看已启用的服务
- rc-update show
- # 禁用不必要的服务
- rc-update del service_name default
- # 启用必要的服务
- rc-update add service_name default
复制代码
内核优化
编辑/etc/sysctl.conf文件:
添加以下内容:
- # 增加文件描述符限制
- 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
- # 虚拟内存优化
- vm.swappiness = 10
- vm.vfs_cache_pressure = 50
复制代码
应用内核参数:
重新编译内核以移除不必要的驱动和功能:
- # 进入内核源代码目录
- cd /usr/src/linux
- # 复制当前配置
- cp /boot/config-$(uname -r) .config
- # 配置内核
- make menuconfig
- # 编译并安装内核
- make && make modules_install && make install
复制代码
启动优化
如果您更喜欢systemd而不是OpenRC:
- # 编辑make.conf,添加systemd USE标志
- echo "USE="systemd"" >> /etc/portage/make.conf
- # 重新构建系统
- emerge --ask --changed-use --deep @world
- # 配置GRUB以支持systemd
- echo 'GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"' >> /etc/default/grub
- grub-mkconfig -o /boot/grub/grub.cfg
- # 重启系统
- reboot
复制代码- # 分析启动时间
- systemd-analyze
- # 查看启动过程中的详细信息
- systemd-analyze blame
- # 禁用不必要的服务
- systemctl disable service_name
复制代码
文件系统优化
如果您在安装时选择了Btrfs文件系统,可以进行以下优化:
- # 安装Btrfs工具
- emerge --ask sys-fs/btrfs-progs
- # 创建子卷
- btrfs subvolume create /mnt/gentoo/@
- btrfs subvolume create /mnt/gentoo/@home
- btrfs subvolume create /mnt/gentoo/@var
- btrfs subvolume create /mnt/gentoo/@tmp
- # 挂载子卷
- mount -o noatime,compress=lzo,subvol=@ /dev/sda3 /mnt/gentoo
- mkdir /mnt/gentoo/{home,var,tmp}
- mount -o noatime,compress=lzo,subvol=@home /dev/sda3 /mnt/gentoo/home
- mount -o noatime,compress=lzo,subvol=@var /dev/sda3 /mnt/gentoo/var
- mount -o noatime,compress=lzo,subvol=@tmp /dev/sda3 /mnt/gentoo/tmp
复制代码
如果您使用SSD,可以进行以下优化:
- # 编辑fstab,添加noatime选项
- nano -w /etc/fstab
复制代码
修改挂载选项,添加noatime:
- /dev/sda3 / ext4 noatime 0 1
复制代码
启用TRIM支持:
- # 启用fstrim定时任务
- emerge --ask sys-apps/util-linux
- systemctl enable fstrim.timer
- systemctl start fstrim.timer
复制代码
常用软件安装与配置
浏览器安装
- # 安装Firefox
- emerge --ask www-client/firefox
- # 安装Flash插件(如果需要)
- emerge --ask www-plugins/adobe-flash
复制代码- # 安装Chromium
- emerge --ask www-client/chromium
复制代码
办公软件安装
- # 安装LibreOffice
- emerge --ask app-office/libreoffice
- # 安装中文语言包
- emerge --ask app-office/libreoffice-l10n
复制代码
多媒体软件安装
- # 安装VLC
- emerge --ask media-video/vlc
复制代码- # 安装GIMP
- emerge --ask media-gfx/gimp
复制代码
开发工具安装
- # 安装GCC
- emerge --ask sys-devel/gcc
- # 安装构建工具
- emerge --ask sys-devel/make sys-devel/automake sys-devel/autoconf
复制代码- # 安装Python
- emerge --ask dev-lang/python
- # 安装pip
- emerge --ask dev-python/pip
复制代码- # 安装Git
- emerge --ask dev-vcs/git
复制代码
故障排除与常见问题解决
系统无法启动
如果系统无法启动并显示GRUB错误:
- # 使用Live CD启动系统
- # 挂载根分区
- mount /dev/sda3 /mnt/gentoo
- # 挂载EFI分区
- mount /dev/sda1 /mnt/gentoo/boot
- # 进入chroot环境
- chroot /mnt/gentoo /bin/bash
- source /etc/profile
- # 重新安装GRUB
- grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Gentoo
- grub-mkconfig -o /boot/grub/grub.cfg
复制代码
如果内核无法启动:
- # 使用Live CD启动系统
- # 挂载根分区
- mount /dev/sda3 /mnt/gentoo
- # 挂载EFI分区
- mount /dev/sda1 /mnt/gentoo/boot
- # 进入chroot环境
- chroot /mnt/gentoo /bin/bash
- source /etc/profile
- # 进入内核源代码目录
- cd /usr/src/linux
- # 重新配置和编译内核
- make menuconfig
- make && make modules_install && make install
复制代码
软件安装问题
如果软件安装时出现依赖问题:
- # 尝试解决依赖问题
- emerge --ask --autounmask-write package_name
- # 更新配置文件
- etc-update
- # 重新尝试安装
- emerge --ask package_name
复制代码
如果软件编译失败:
- # 查看详细的错误日志
- emerge --ask --verbose package_name
- # 尝试使用较保守的编译选项
- CFLAGS="-O2 -pipe" CXXFLAGS="-O2 -pipe" emerge --ask package_name
- # 检查Gentoo Bugzilla(https://bugs.gentoo.org/)以获取解决方案
复制代码
网络问题
如果系统无法连接到网络:
- # 检查网络接口状态
- ip a
- # 启用网络接口
- dhcpcd eth0
- # 检查网络配置
- cat /etc/conf.d/net
- # 重启网络服务
- /etc/init.d/net.eth0 restart
复制代码
如果DNS解析有问题:
- # 检查/etc/resolv.conf文件
- cat /etc/resolv.conf
- # 添加DNS服务器(例如Google DNS)
- echo "nameserver 8.8.8.8" >> /etc/resolv.conf
- echo "nameserver 8.8.4.4" >> /etc/resolv.conf
- # 测试DNS解析
- nslookup www.gentoo.org
复制代码
总结与进阶学习资源
总结
本教程详细介绍了Gentoo Linux的安装、配置和优化过程。通过遵循这些步骤,您应该能够成功安装并运行一个高度优化的Gentoo系统。Gentoo的学习曲线可能比其他Linux发行版更陡峭,但它提供的灵活性和控制力是无可比拟的。
进阶学习资源
1. Gentoo官方文档:https://wiki.gentoo.org/Gentoo Handbook:详细的安装和配置指南Gentoo Wiki:涵盖各种主题的全面文档
2. Gentoo Handbook:详细的安装和配置指南
3. Gentoo Wiki:涵盖各种主题的全面文档
4. Gentoo论坛:https://forums.gentoo.org/活跃的社区支持丰富的讨论和解决方案
5. 活跃的社区支持
6. 丰富的讨论和解决方案
7. Gentoo邮件列表:https://www.gentoo.org/support/mailing-lists/开发者和用户的交流平台获取最新信息和帮助
8. 开发者和用户的交流平台
9. 获取最新信息和帮助
10. Gentoo Reddit:https://www.reddit.com/r/gentoo/社区讨论和分享问题和解决方案
11. 社区讨论和分享
12. 问题和解决方案
13. Gentoo Git仓库:https://gitweb.gentoo.org/查看源代码和开发进展了解Gentoo的内部工作原理
14. 查看源代码和开发进展
15. 了解Gentoo的内部工作原理
16. Gentoo Overlay:https://gpo.zugaina.org/社区维护的软件仓库扩展软件选择
17. 社区维护的软件仓库
18. 扩展软件选择
Gentoo官方文档:https://wiki.gentoo.org/
• Gentoo Handbook:详细的安装和配置指南
• Gentoo Wiki:涵盖各种主题的全面文档
Gentoo论坛:https://forums.gentoo.org/
• 活跃的社区支持
• 丰富的讨论和解决方案
Gentoo邮件列表:https://www.gentoo.org/support/mailing-lists/
• 开发者和用户的交流平台
• 获取最新信息和帮助
Gentoo Reddit:https://www.reddit.com/r/gentoo/
• 社区讨论和分享
• 问题和解决方案
Gentoo Git仓库:https://gitweb.gentoo.org/
• 查看源代码和开发进展
• 了解Gentoo的内部工作原理
Gentoo Overlay:https://gpo.zugaina.org/
• 社区维护的软件仓库
• 扩展软件选择
通过这些资源,您可以深入了解Gentoo Linux的各个方面,并掌握更高级的技巧和优化方法。祝您在Gentoo Linux的旅程中取得成功! |
|