Gentoo Linux 安装教程
1.确认连接到互联网,使用net-setup工具配置网络
root# net-setup eth0
2.分区
推荐分区方案:
分区 | 描述 |
---|---|
/dev/sda1 | boot引导分区 |
/dev/sda2 | /根分区 |
/dev/sda3 | swap交换分区 |
Command (m for help):p Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/sda1 * 3 14 506520+ 83 Linux /dev/sda2 15 81 28690200 83 Linux /dev/sda3 82 3876 506520 82 Linux swap
3.格式化分区并挂载磁盘
root #mkfs.ext4 /dev/sda1
root #mkfs.ext4 /dev/sda2
root #mkswap /dev/sda3
root #swapon /dev/sda3
root #mount /dev/sda2 /mnt/gentoo
root #mkdir /mnt/gentoo/boot
root #mount /dev/sda1 /mnt/gentoo/boot
root #mkfs.ext4 /dev/sda1
root #mkfs.ext4 /dev/sda2
root #mkswap /dev/sda3
root #swapon /dev/sda3
root #mount /dev/sda2 /mnt/gentoo
root #mkdir /mnt/gentoo/boot
root #mount /dev/sda1 /mnt/gentoo/boot
4.设置时间
root #date 050814302016 //05表示月份08表示号数1430表示14点30分2016表示年份
root #date 050814302016 //05表示月份08表示号数1430表示14点30分2016表示年份
5.下载stage3,并解压tar包
stage3压缩包是一个包含有最小化Gentoo环境的文件
root #cd /mnt/gentoo
root #links https://www.gentoo.org/downloads/mirrors/
root #tar xvjpf stage3-*.tar.bz2 --xattrs
root #cd /mnt/gentoo
root #links https://www.gentoo.org/downloads/mirrors/
root #tar xvjpf stage3-*.tar.bz2 --xattrs
6.配置编译选项
root #nano -w /mnt/gentoo/etc/portage/make.conf
CFLAGS="-O2 -pipe" //-O2表示gcc优化级别,(已知O3会在全系统时有问题,所以推荐使用O2即可) -pipe表示使用管道而不是编译的各个阶段之间的通信的临时文件,这里我推荐大家就使用这两个标记即可,如果有需要可以查看GUN GCC的一些选项来自行设定
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j8" //根据你的CPU核心数来设置,表示编译安装包时并行执行的线程数
root #nano -w /mnt/gentoo/etc/portage/make.conf
CFLAGS="-O2 -pipe" //-O2表示gcc优化级别,(已知O3会在全系统时有问题,所以推荐使用O2即可) -pipe表示使用管道而不是编译的各个阶段之间的通信的临时文件,这里我推荐大家就使用这两个标记即可,如果有需要可以查看GUN GCC的一些选项来自行设定
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j8" //根据你的CPU核心数来设置,表示编译安装包时并行执行的线程数
7.配置镜像站点
root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
#选择一个你所在地理位置的镜像站点即可
root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
#选择一个你所在地理位置的镜像站点即可
8.创建主仓库
root #mkdir /mnt/gentoo/etc/portage/repos.conf
root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
root #mkdir /mnt/gentoo/etc/portage/repos.conf
root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
9.复制DNS信息
root #cp -L /etc/resolv.conf /mnt/gentoo/etc/
root #cp -L /etc/resolv.conf /mnt/gentoo/etc/
10.挂载必要的文件系统
root #mount -t proc proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys //如果你不打算安装systemd则可不必使用这句话
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev //如果你不打算安装systemd则可不必使用这句话
root #rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
root # chmod 1777 /dev/shm
root #mount -t proc proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys //如果你不打算安装systemd则可不必使用这句话
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev //如果你不打算安装systemd则可不必使用这句话
root #rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
root # chmod 1777 /dev/shm
11.进入新环境
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"
12.安装Portage快照
root #emerge-webrsync //emerge-webrsync命令将安装一个最近的Portage快照(通常是24小时以内)
root #emerge --sync //使用rsync协议来更新Portage树(之前通过emerge-webrsync获得的)到最新状态。
root #emerge-webrsync //emerge-webrsync命令将安装一个最近的Portage快照(通常是24小时以内)
root #emerge --sync //使用rsync协议来更新Portage树(之前通过emerge-webrsync获得的)到最新状态。
13.选择正确的配置文件
root #eselect profile list
root #eselect profile set [number]
root #eselect profile list
root #eselect profile list
root #eselect profile set [number]
root #eselect profile list
14.更新你的系统
root #emerge --ask --update --deep --newuse @world
root #emerge --ask --update --deep --newuse @world
15.配置USE变量
USE是Gentoo为用户提供的最具威力的变量之一。很多程序通过它可以选择编译或者不编译某些可选的支持。例如,一些程 序可以在编译时加入对gtk或是对qt的支持。其它的程序可以在编译时加入或不加入对于SLL的支持。有些程序甚至可以在编译时加入对 framebuffer的支持(svgalib)以取代X11(X服务器)。
大多数的发行版会使用尽可能多的支持特性编译它们的软件包,这既增加了软件的大小也减慢了启动时间,而这些还没有算上可能会涉及到的大量依赖性问题。Gentoo可以让你自己定义软件编译的选项,而这正是USE要做的事。
在USE变量里你可以定义关键字,它被用来对应相应的编译选项。例如,ssl将会把ssl支持编译到程序中以支持它。-X会移除其对于X服务器的支持(注意前面的减号)。gnome gtk -kde -qt4将会以支持GNOME(和GTK)但不支持KDE(和Qt)的方式编译软件,使系统为GNOME做完全调整(如果架构支持)。
默认的USE设置全放在了系统所使用的Gentoo配置文件的make.defaults文件中。Gentoo对它的配置文件们使用了一个(复杂的)继承系统,在这个阶段我们不去深入。最简单的检查当前活动的USE标记的办法是运行emerge --info并选择以USE开头的那一行:
root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
root #less /usr/portage/profiles/use.desc
root #less /usr/portage/profiles/use.desc
USE="-gnome -kde -qt4 -minimal gtk dvd alsa cdr dbus X udev session lock jpeg startup-notification thunar policykit udisks"
INPUT_DEVICES="evdev synaptics"
VIDEO_CARDS="nouveau" //N卡用户
VIDEO_CARDS="radeon" //Intel用户
CPU_FLAGS_X86="" //CPU指令集,为了帮助用户能正确使用标志,提供了一个Python脚本生成使用/proc内/cpuinfo正确的值。它可以在找到app-portage/cpuinfo2cpuflags
root #emerge --ask app-portage/cpuinfo2cpuflags
root #cpuinfo2cpuflags-x86 >> /etc/portage/make.conf
USE="-gnome -kde -qt4 -minimal gtk dvd alsa cdr dbus X udev session lock jpeg startup-notification thunar policykit udisks"
INPUT_DEVICES="evdev synaptics"
VIDEO_CARDS="nouveau" //N卡用户
VIDEO_CARDS="radeon" //Intel用户
CPU_FLAGS_X86="" //CPU指令集,为了帮助用户能正确使用标志,提供了一个Python脚本生成使用/proc内/cpuinfo正确的值。它可以在找到app-portage/cpuinfo2cpuflags
root #emerge --ask app-portage/cpuinfo2cpuflags
root #cpuinfo2cpuflags-x86 >> /etc/portage/make.conf
16.配置时区
为系统选择时区。在/usr/share/zoneinfo/中查找可用的时区,然后写进/etc/timezone文件。
root #ls /usr/share/zoneinfo
root #echo "Asia/Shanghai" > /etc/timezone
root #emerge --config sys-libs/timezone-data
root #ls /usr/share/zoneinfo
root #echo "Asia/Shanghai" > /etc/timezone
root #emerge --config sys-libs/timezone-data
17.配置地区
root #nano -w /etc/locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK
zh_CN GB18030
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
root #locale-gen
root #eselect locale list
root #eselect locale set [number]
root #env-update && source /etc/profile && export PS1="(chroot) $PS1"
root #nano -w /etc/locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK
zh_CN GB18030
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
root #locale-gen
root #eselect locale list
root #eselect locale set [number]
root #env-update && source /etc/profile && export PS1="(chroot) $PS1"
可选操作,配置Systemd代替OpenRC,这一步做了下面安装源代码就不用做了
- 编辑/etc/fstab文件来使包含有第二个值为/boot/的那条的第一个值指向到正确的设备。
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
- 安装Systemd
root #ln -sf /proc/self/mounts /etc/mtab
root #emerge --ask --unmerge sys-kernel/genkernel //如果以前安装过kernel那么卸载之
root #emerge --ask sys-kernel/dracut
root #nano -w /etc/dracut/dracut.conf
# Dracut modules to add to the default
add_dracutmodules+="usrmount"
root #emerge --ask sys-kernel/gentoo-sources
root #emerge --ask sys-kernel/genkernel-next
/etc/genkernel.conf
UDEV="yes"
root #genkernel --install all
root #genkernel --udev --lvm --mdadm initramfs
当使用LVM时,lvmetad守护进程需要被同时启动。否则,systemd将无法挂载LVM卷。 lvmetad可以在/ etc/ LVM启用
root #nano -w /etc/lvm/lvm.conflvm.conf
# Set use_lvmetad to ‘1‘ for systemd
use_lvmetad = 1
root #nano -w /etc/portage/profile/packages
# Remove OpenRC from the system profile when using systemd
-*sys-apps/openrc
root #root #emerge -avDN @world
root #emerge --deselect sys-fs/udev
root #ln -sf /proc/self/mounts /etc/mtab
root #emerge --ask --unmerge sys-kernel/genkernel //如果以前安装过kernel那么卸载之
root #emerge --ask sys-kernel/dracut
root #nano -w /etc/dracut/dracut.conf
# Dracut modules to add to the default
add_dracutmodules+="usrmount"
root #emerge --ask sys-kernel/gentoo-sources
root #emerge --ask sys-kernel/genkernel-next
/etc/genkernel.conf
UDEV="yes"
root #genkernel --install all
root #genkernel --udev --lvm --mdadm initramfs
当使用LVM时,lvmetad守护进程需要被同时启动。否则,systemd将无法挂载LVM卷。 lvmetad可以在/ etc/ LVM启用
root #nano -w /etc/lvm/lvm.conflvm.conf
# Set use_lvmetad to ‘1‘ for systemd
use_lvmetad = 1
root #nano -w /etc/portage/profile/packages
# Remove OpenRC from the system profile when using systemd
-*sys-apps/openrc
root #root #emerge -avDN @world
root #emerge --deselect sys-fs/udev
当grub2-mkconfig 被使用时, 增加 init 这一行 GRUB_CMDLINE_LINUX:
/etc/default/grub GRUB2 systemd 配置示例
当使用 genkernel-next‘s 引导时, 使用real_init 来替换init.
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
x
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
/boot/grub/grub.cfg GRUB2 配置示例片段
linux /vmlinuz-3.10.9 root=UUID=508868e4-54c6-4e6b-84b0-b3b28b1656b6 init=/usr/lib/systemd/systemd
x
linux /vmlinuz-3.10.9 root=UUID=508868e4-54c6-4e6b-84b0-b3b28b1656b6 init=/usr/lib/systemd/systemd
18.1.安装源代码(手动编译安装)
root #emerge --ask sys-kernel/gentoo-sources
x
root #emerge --ask sys-kernel/gentoo-sources
root #emerge --ask sys-apps/pciutils
x
root #emerge --ask sys-apps/pciutils
现在进入内核源码目录并执行make menuconfig。这将启动一个菜单驱动的配置屏幕。
root #cd /usr/src/linux
root #make menuconfig
root #make && make modules_install
root #make install
x
root #cd /usr/src/linux
root #make menuconfig
root #make && make modules_install
root #make install
可选:生成一个initramfs
在某些情况中需要建立一个initramfs——一个基于内存的初始化文件系统。最觉的原因是当重要的文件系统位置(如/usr/或/var/)在分离的分区。通过一个initramfs,这些分区可以使用initramfs里面的工具来完成挂载。
如果没有initramfs的,存在着巨大的风险,系统将无法正常开机,因为这是负责安装的文件系统工具需要驻留在这些文件系统的信息。 initramfs中的一个将在必要的文件拉进它的内核启动之后使用的档案,但控制被移交前转移到初始化工具。在initramfs的脚本,然后将确保分 区正确地安装在系统继续启动之前。
要安装一个initramfs,首先安装sys-kernel/genkernel,然后用它生成一个initramfs:
root #emerge --ask sys-kernel/genkernel
root #emerge genkernel
root #genkernel --lvm --mdadm --install initramfs
x
root #emerge --ask sys-kernel/genkernel
root #emerge genkernel
root #genkernel --lvm --mdadm --install initramfs
18.2.安装源代码(自动方式-推荐新手用)
如果手动配置看起来太恐怖,建议使用genkernel。它将自动配置并编译内核。
genkernel配置内核的工作原理几乎和安装CD配置的内核完全一致。也就是说当使用genkernel建立内核,系统通常将在引导时检测全部硬件,就像安装CD所做的。因为genkernel不需要任何手动内核配置,它对于那些不能轻松的编译他们自动内核的用户来说是一个理想的解决方案。
现在,我们来看看如何使用genkernel。
root #emerge --ask sys-kernel/gentoo-sources
root #emerge --ask sys-kernel/genkernel
x
root #emerge --ask sys-kernel/gentoo-sources
root #emerge --ask sys-kernel/genkernel
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
x
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
root #genkernel all
x
root #genkernel all
19.可选操作,配置模块,安装固件
在/etc/conf.d/modules中列出需要自动加载的模块。如果有必要,附加选项也可以添加到模块中。
要查看所有可用模块,运行下面的find命令。不要忘记替换“”为刚刚编译的内核版本:
root #find /lib/modules/<kernel version>/ -type f -iname ‘*.o‘ -or -iname ‘*.ko‘ | less
root #find /lib/modules/<kernel version>/ -type f -iname ‘*.o‘ -or -iname ‘*.ko‘ | less
root #nano -w /etc/conf.d/modules
modules="3c59x"
x
root #nano -w /etc/conf.d/modules
modules="3c59x"
root #emerge --ask sys-kernel/linux-firmware
root #emerge --ask sys-kernel/linux-firmware
20.配置fatab
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
/dev/sda2 / ext4 defaults 0 1
/dev/sda3 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
x
root #nano -w /etc/fstab
/dev/sda1 /boot ext4 defaults 0 2
/dev/sda2 / ext4 defaults 0 1
/dev/sda3 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
21.配置主机名
root #nano -w /etc/conf.d/hostname
root #nano -w /etc/conf.d/hostname
22.配置hosts文件
root #nano -w /etc/hosts
root #nano -w /etc/hosts
23.配置网络
root #emerge --ask --noreplace net-misc/netifrc
root #nano -w /etc/conf.d/net
#如果你要配置静态ip
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
#否则如果需要动态ip
config_eth0="dhcp"
x
root #emerge --ask --noreplace net-misc/netifrc
root #nano -w /etc/conf.d/net
#如果你要配置静态ip
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
#否则如果需要动态ip
config_eth0="dhcp"
24.配置网卡开机自动启动
root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default
#对于笔记本你的网卡可能是enp0s3之类的,那么就需要改成如下命令
root #ln -s net.lo net.enp0s3
root #rc-update add net.enp0s3 default
x
root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default
#对于笔记本你的网卡可能是enp0s3之类的,那么就需要改成如下命令
root #ln -s net.lo net.enp0s3
root #rc-update add net.enp0s3 default
25.安装dhcp客户端
root #emerge --ask net-misc/dhcpcd
root #emerge --ask net-misc/dhcpcd
26.修改密码
root #passwd
root #passwd
27.编辑UTC时间,修改为使用本地时间
root #nano -w /etc/conf.d/hwclock
root #nano -w /etc/conf.d/hwclock
28.安装日志管理软件
root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default
x
root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default
29.安装crontab任务计划软件
root #emerge --ask sys-process/cronie
root #rc-update add cronie default
root #crontab /etc/crontab
x
root #emerge --ask sys-process/cronie
root #rc-update add cronie default
root #crontab /etc/crontab
30.配置开机启动sshd
root #rc-update add sshd default
root #rc-update add sshd default
31.安装Grub2
root #emerge --ask sys-boot/grub:2
root #grub2-install /dev/sda
root #grub2-mkconfig -o /boot/grub/grub.cfg
x
root #emerge --ask sys-boot/grub:2
root #grub2-install /dev/sda
root #grub2-mkconfig -o /boot/grub/grub.cfg
32.重启系统
root #exit
root #cd ~
root #umount -l /mnt/gentoo/dev{/shm,/pts,}
root #umount /mnt/gentoo{/boot,/sys,/proc,}
root #reboot
x
root #exit
root #cd ~
root #umount -l /mnt/gentoo/dev{/shm,/pts,}
root #umount /mnt/gentoo{/boot,/sys,/proc,}
root #reboot
33.创建日常管理用户
root #useradd -m -G users,wheel,audio -s /bin/bash [username]
root #passwd [username]
x
root #useradd -m -G users,wheel,audio -s /bin/bash [username]
root #passwd [username]
34.清理tar包
root #rm /stage3-*.tar.bz2*
root #rm /stage3-*.tar.bz2*
到这里安装就结束了!!
可选操作:安装Xorg-x11图形化服务器
首先确保你的/etc/portage/make.conf USE中包含X标记
USE="-gnome -kde -qt4 -minimal gtk dvd alsa cdr dbus X udev session lock jpeg startup-notification thunar policykit udisks"
x
USE="-gnome -kde -qt4 -minimal gtk dvd alsa cdr dbus X udev session lock jpeg startup-notification thunar policykit udisks"
root #emerge --ask x11-base/xorg-x11
root #env-update && source /etc/profile
x
root #emerge --ask x11-base/xorg-x11
root #env-update && source /etc/profile
可选操作:安装Xfce4桌面环境
首先,确定你已经安装Xorg 如果没有的话那么本指南下面的步骤可能无法正常工作。
接着,请反复检查 /etc/portage/make.conf 文件里的 USE 标记;多数用户需要设置下面的 USE flags:
USE="-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X"
x
USE="-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X"
root #emerge --ask xfce-base/xfce4-meta
root #emerge --ask xfce-base/xfce4-meta
root #for x in cdrom cdrw usb ; do gpasswd -a username $x ; done
root #for x in cdrom cdrw usb ; do gpasswd -a username $x ; done
root #env-update && source /etc/profile
root #env-update && source /etc/profile
root #emerge --ask x11-terms/xfce4-terminal
root #emerge --ask x11-terms/xfce4-terminal
root #echo "exec startxfce4" > ~/.xinitrc
root #startx
x
root #echo "exec startxfce4" > ~/.xinitrc
root #startx
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">