启用systemd的gentoo安装方法

本文提供了详细的Gentoo Linux安装步骤,包括准备安装介质、配置网络及硬盘分区、挂载系统、配置环境变量等,特别介绍了如何使用systemd替代openrc进行系统启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个也应该算是绝对的干货了吧。


记得06年曾经写过一份中文版的 gentoo 安装手册,过了这么久,其实 gentoo 的变化还是很大的,尤其是现在支持 systemd 启动,相对于以前的 openrc/shell 或者 openrc / c,5秒左右启动完成可以说是神速了!


心血来潮,就写一下吧。


以下正文和官方手册会略有出入,大家互相借鉴着看吧。


1. 谁是贱兔


首先简单介绍一下贱兔(gentoo)。


gentoo 是一种专门针对屌丝IT攻城狮们推出的 linux 操作系统发行版,其特点就是拥有极高的可定制能力,可以让用户对系统拥有极为强大的控制能力,同时 gentoo 的性能也极为优秀。


gentoo 拥有 linux 世界最强大的软件包管理系统……之一。精髓思想来自于 FreeBSD(MacOSX 的表兄)的 ports 系统,但是可以说青出于蓝而胜于蓝。特别适合有系统洁癖和更新强迫症的宅男们。


2. 前戏前的前戏


现在开始进入正题吧,哦不,在真的开始安装 gentoo 系统之前,我们还需要做一些事情。


首先,你要准备好一个 gentoo 的安装介质,一般是光盘。可以在搜狐和网易的开源镜像服务器上直接下载。一般叫做 mini install cd 啥的。个人推荐直接用 amd64 架构的,x86可以忽略之了。


然后需要下载 gentoo 的基本包,也就是 stage3,下面我们叫做 ${STAGE3}。


再然后,如果不想让系统一点点同步 portage 源码树,可以直接下载 portage snapshot,下面简称 ${SNAPSHOT}。


接下来,我们用安装介质启动系统,let's go!


3. 真正的前戏


假设我们用的是光盘启动,我一般会在 boot: 界面用 gentoo nokeymap 启动。


启动完成之后,首先设置一下网卡,dmesg | grep eth,看到网卡设备号,假设叫做 ${ETH},然后 net-setup ${ETH},接下来不会操作的人面壁弹JJ去。


网卡配置好,如果喜欢远程安装的,就可以 passwd 设置个密码,然后 /etc/init.d/sshd start,启动 ssh。


官网建议现在就配置 /etc/resolv.conf ,我觉得没必要,能 ping 8.8.8.8 就行了。


接下来需要配置硬盘了,比如是 cfdisk /dev/sda 吧。我一般 /boot 单独用个100MB,swap 用个 4GB 足够了,接下来怎么配置,大家自己把握,不会的去看官方手册。


假设我们的分区设置是:

/dev/sda1 /boot ext2

/dev/sda2 swap swap

/dev/sda3 /     ext4


/boot 一般建议用 ext2 来格式化,rootfs 可以用 ext4、reiserfs 都可以。不过比较蛋疼的是,安装光盘默认不提供 btrfs 和 f2fs 的工具,所以……大家认了吧。


接下来就要挂载系统了。


# mount /dev/sda3 /mnt/gentoo

# cd /mnt/gentoo

# tar xvjf ${STAGE3}

# tar xvjpf ${SNAPSHOT} -C /mnt/gentoo/usr

# mount /dev/sda1 /mnt/gentoo/boot

# mount -t proc proc /mnt/gentoo/proc

# mount --rbind /dev /mnt/gentoo/dev

# mount --rbind /sys /mnt/gentoo/sys


这里以前可以用 mount -o,现在是 --rbind,还有就是,如果大家下载的 snapshot 是 xz 格式的,就用 tar xvJpf 命令,注意,是大写 J。


4. 进入正题


好了,现在可以进入正题了。


# chroot /mnt/gentoo /bin/bash

# env-update && source /etc/profile


首先记得给自己设置个密码:


# passwd


然后做一些官方教程之前让我们做的事情:


# echo "nameserver 8.8.8.8" >> /etc/resolv.conf

# echo "Asia/Shanghai" >> /etc/timezone

# nano -w /etc/portage/make.conf


这里暂停一下,make.conf 还是挺重要的,所以有几个环境变量的建议。

CFLAGS 的设置,在 gcc 4.4 以后可以直接用 -march=native 了,自动识别本机处理器,然后 -pipe -fomit-pointer -O3 之类的大家自己看着办。


ACCEPT_KEYWORDS 我是用 ~amd


LINGUAS="zh_CN" 也是必须的,我们是中国用户哦。


SYNC="rsync.asia.gentoo.org/gentoo-portage" 也还可以接受。


GENTOO_MIRRORS="http://mirrors.163.com/gentoo http://mirrors.sohu.com/gentoo ftp://gg3.net/pub/linux/gentoo" 应该也是够用的了。


接下来我们要在USE标签里面加入关键的东西,因为我们要用 systemd 取代 openrc,所以 USE 里面加入 systemd gudev networkmanager 。


用 networkmanager 是因为 openrc 配置网卡的那套不好使了,嘿嘿。


接下来首先更新一下 gcc,因为这玩意最重要:


# emerge gcc

# gcc-config 2

# emerge -c gcc


最后一个命令是删除旧版本。


然后轮到 glibc:


# nano -w /etc/locale.gen

# emerge glibc


我一般的 locale 设置是:


en_US ISO-8859-1

en_US.UTF-8 UTF-8

zh_CN UTF-8

zh_CN.GBK GBK

zh_CN.GB2312 GB2312

zh_CN.GB18030 GB18030


接下来处理一下工具链,我习惯先更新完 system 再考虑 world。


# emerge @preserved-rebuild

# emerge system -uDN


这里要注意两个问题(*很关键*)


第一个是可能会遇到 dbus 和 systemd 互相依赖的问题,解决办法是先 USE="-systemd" emerge dbus,在安装完 systemd 之后,再重新 emerge dbus。


第二个问题是经典的2B guile-1.8.8 编译失败。原因是 texinfo 5.2 和最新 guile 一个配合上的BUG。解决也简单:


# mkdir -p /etc/portage/package.mask

# echo ">=sys-apps/texinfo-5" >> /etc/portage/package.mask/texinfo

# emerge texinfo -1


然后大家记得 emerge networkmanager,我一般会 USE="-nss -modemmanager"。


懒人推荐先 emerge dhcpcd,原因你懂的。


然后编译内核:


# emerge gentoo-sources

# cd /usr/src/linux

# make && make modules_install && make install


当然,懒人可以:


# emerge genkernel

# cd /usr/src/linux

# genkernel --menuconfig all


使用 systemd 需要做一些内核设置,可以参见 gentoo systemd wiki,传送门:http://wiki.gentoo.org/wiki/Systemd


怎么配置内核的问题,俺恕不解答。不过俺是一次配置成功了。


对了,如果选择了 systemd 支持,openrc 的那个可以去掉了。


5. 调戏,不,调整


到了这里,就是一些基本的调整了,比如 fstab、比如 hostname。不过如果使用了 systemd,在 chroot 环境下可能设置不了 hostname,没关系,这事以后再说。


接下来安装引导工具,我只提 grub2。


grub2 有个很蛋疼的问题,经常会在 ~amd64 下面编译不了最新版的 2.02beta2,不过 2.00 稳定版是没问题的,所以大家可以 emerge =sys-boot/grub-2.00_p5107-r2


然后安装 grub:


# grub-install /dev/sda


这个时候还不到生成引导菜单的时候,因为我们要启用 systemd,所以:


# nano -w /etc/default/grub


修改 GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"


然后再:


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


官网手册到这里还有很多事情干,不过俺们用了高大上的 systemd,其实都可以略去,所以我们重整旗鼓,接下来……


6. 我要,还要


终于可以装软件和服务了。


首先做一件我们差点忘记的事情:


# emerge world -uDN


然后清理垃圾


# emerge portage-utils gentoolkit

# revdev-rebuild

# emerge -c


可以安装一些我们需要的软件了,我一般安装 syslog-ng、cronie(以前的vixie-cron)、reiserfsprogs、btrfs-progs、f2fs(如果要用固态硬盘)、zfs等等……


然后把基本的服务器启用:


# systemctl enable {NetworkManager syslog-ng cronie sshd ... }


大家自己看着办吧。


7. 再来一次


接下来就是收尾和启动了。


# eselect news read all

# eselect news purge all

# etc-update

# exit


退回到 livecd 的环境,记得:


# cd /

# umount -l /mnt/gentoo/*


然后可以 reboot 了



8. 吸支烟吧


好像事情都干完了,我们是不是可以吸一支烟了?


可以的,不过还有点小事要解决,比如 hostname:


# hostnamectl set-hostname windows8

转载于:https://my.oschina.net/klauszl/blog/223752

<think>好的,我现在需要帮助用户解决如何选择和安装合适的Linux发行版的问题。首先,我得回顾用户提供的引用内容,看看里面有什么有用的信息。 根据引用[2],用户提到选择发行版要考虑使用场景、硬件配置、用户基础和社区支持。比如,新手适合Ubuntu,开发者可能用Fedora,服务器可能选CentOS或Debian。另外,引用[1]里提到了Arch Linux、Fedora和openSUSE作为Ubuntu的替代品,各有特点。用户还提到安装方法,引用[3]里讲了VMware Tools的安装和文件共享,这可能和虚拟机安装相关。 接下来,我需要整理出一个结构清晰的回答,分步骤说明选择和安装的要点。首先,选择发行版的步骤,包括确定用途、硬件、用户经验、社区支持和软件生态。然后,安装方法部分要包括准备安装介质、备份数据、启动安装程序、分区配置、用户设置和完成安装后的配置。可能还需要提到虚拟机安装和双系统安装的区别。 还要注意用户可能关心的问题,比如不同发行版的优缺点,安装过程中可能遇到的难点,比如分区设置或驱动安装。需要确保回答覆盖这些点,并且语言简洁易懂,适合新手。同时,根据用户提供的引用,要适当整合信息,比如提到Arch Linux适合高级用户,Fedora适合开发者,这些来自引用[1]和[2]的内容。 最后,生成相关问题时要围绕用户可能进一步询问的方向,比如具体发行版的选择、安装后的配置、常见问题解决等。确保问题有针对性,能够引导用户深入学习。</think>### Linux发行版选型与安装指南 #### 一、发行版选择方法 1. **明确使用场景** - 桌面办公:推荐$Ubuntu$或$Linux Mint$(界面友好,软件生态完善)[^2] - 开发环境:$Fedora$(前沿技术支持)或$openSUSE$(企业级工具链)[^1] - 服务器部署:$CentOS Stream$或$Debian$(长期稳定支持) - 学习定制:$Arch Linux$(滚动更新,高度可定制)[^1] 2. **硬件适配性** $$ \text{系统资源占用} \propto \frac{1}{\text{发行版轻量级程度}} $$ 老旧设备建议选择$Lubuntu$(LXQt桌面)或$Xubuntu$(XFCE桌面) 3. **用户经验评估** - 新手:图形化安装的$Ubuntu$(含驱动自动检测) - 进阶用户:支持自定义分区的$Manjaro$ - 专家级:需要手动配置的$Gentoo$ #### 二、安装流程详解 1. **准备阶段** ```bash # 使用dd命令创建启动盘(示例) dd if=linux.iso of=/dev/sdX bs=4M status=progress && sync ``` - 推荐工具:Ventoy(多镜像启动盘制作)[^3] - 必须备份数据(特别是双系统安装) 2. **安装方式对比表 | 方式 | 优点 | 缺点 | |-------------|-----------------------|---------------------| | 虚拟机 | 零硬件风险[^3] | 性能损耗约15%-20% | | 双系统 | 原生性能 | 分区操作风险较高 | | 单系统 | 最佳资源利用率 | 需完全迁移数据 | 3. **关键配置步骤 - 分区方案建议: $$ \text{根分区}(\geq 30GB) + \text{交换分区}(1.5\times RAM) + \text{Home分区}(剩余空间) $$ - 文件系统选择:EXT4(通用)/Btrfs(快照功能)/XFS(大文件处理) 4. **后期配置 ```bash # 安装基础开发工具(以Fedora为例) sudo dnf groupinstall "Development Tools" # 启用第三方仓库 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc ``` #### 三、推荐学习路径 1. 第一阶段:通过$VirtualBox$实践安装[^3] 2. 第二阶段:掌握包管理系统(apt/yum/dnf/pacman) 3. 第三阶段:学习systemd服务管理 $$ \text{服务状态检查} \rightarrow systemctl status \ servicename $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值