当前位置: 首页 > 工具软件 > JFS for Linux > 使用案例 >

Gentoolinux安装教程

养枫涟
2023-12-01

Gentoolinux安装步骤(systemd)

1.基本文件的获取

  • 1.获取livecd
    livecd可以使用Gentoo官方提供的livecd或者其他linux distribution
  • 2.获取stage
    stage3分为两种,一种是以systemd作为init程序,一种是以openrc做为init程序(Gentoo官方是推荐openrc)

2.网络连接

#ethernet 
#配置ip地址
ip addr $ipaddress/netmask dev interface
#配置路由
ip route add default via ipaddress
#wifi

#扫描wifi
iwlist wlan0 scan

#连接wifi
wpa_passpharse SSID password > wifi.conf
wpa_supplicant -c wifi.conf -B -i wlan0#wlan为无线网卡名称,自行根据自己的网卡型号进行改动


#获取ip地址
dhcpcd wlan0

3.磁盘分区

这里使用fdisk工具对磁盘进行分区,同样的也可以使用cfdisk或者其他磁盘分区工具

fdisk /dev/sda

查看当前磁盘分区


Command (m for help):p

Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

创建一个gpt分区列表

Command (m for help):g

Created a new GPT disklabel (GUID: 87EA4497-2722-DF43-A954-368E46AE5C5F).

如果当前存在其他的分区,可以选择将分区删除

Command (m for help):d

Partition number (1-4): 1

创建一个efi分区,大小建议256MB

Command (m for help):n

Partition number (1-128, default 1): 1
First sector (2048-60549086, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549086, default 60549086): +256M
 
Created a new partition 1 of type 'Linux filesystem' and of size 256 MiB.
Command (m for help):t

Selected partition 1
Partition type (type L to list all types): 1
Changed type of partition 'Linux filesystem' to 'EFI System'.

创建一个swap分区

Command (m for help):n

Partition number (2-128, default 2): 
First sector (526336-60549086, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549086, default 60549086): +4G
 
Created a new partition 2 of type 'Linux filesystem' and of size 4 GiB.
Command (m for help):t

Partition number (1,2, default 2): 2
Partition type (type L to list all types): 19
 
Changed type of partition 'Linux filesystem' to 'Linux swap'.

创建主分区

Command (m for help):p

Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F
 
Device       Start      End  Sectors  Size Type
/dev/sda1     2048   526335   524288  256M EFI System
/dev/sda2   526336  8914943  8388608    4G Linux swap
/dev/sda3  8914944 60549086 51634143 24.6G Linux filesystem

将分区信息写入磁盘

Command (m for help):w

当前磁盘分区信息

分区详细信息
/dev/sda1启动分区
/dev/sda2swap分区
/dev/sda3根分区

4.创建文件系统

boot分区文件系统一般考虑兼容性使用fat文件系统

mkfs.vfat /dev/sda1

swap分区

mkswap /dev/sda2

根分区,可采用(ext3/4 xfs btrfs ntfs jfs…)使用非ext文件系统在后面编译linux内核的时候要启动linux内核对该文件系统的支持

这里采用btrfs文件系统

mkfs.btrfs /dev/sda3

5.分区挂载

#将/dev/sda3主磁盘分区挂载到/mnt/gentoo下面
mount /dev/sda3 /mnt/gentoo

6.安装stage3包

stage3包提供了最基本的portage包管理器编译工具链和一些最基本的链接库

#获取Gentoo stage3包
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220109T170538Z/stage3-amd64-systemd-20220109T170538Z.tar.xz
tar -Jxf stage3-amd64-systemd-20220109T170538Z.tar.xz -C /mnt/gentoo

#将之前格式化的boot磁盘挂载
mount /dev/sda1 /mnt/gentoo/boot

7.基本编译环境准备

1.配置编译portage编译软件的参数
nano /mnt/gentoo/etc/portage/make.conf

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O3 -pipe -fstack-protector-strong" #设置编译参数(-march=native可以根据cpu指令集进行优化,-O3优化级别)
CFLAGS="${COMMON_FLAGS}"    #C编译参数
CXXFLAGS="${COMMON_FLAGS}"  #C++编译参数
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
ACCEPT_KEYWORDS="amd64"  #可接受的软件包等级(稳定与不稳定)(这里为全局keyworkds,若想为特定软件包指定特定的Keyworkds(可以在/etc/protage/portage.accpet_keywords
ACCEPT_LICENSE="*"      #可接受的软件包许可证
MAKEOPTS="-j8 -l7.2"    #根据cpu核心数来配置(一般配置为cpu核心数+1),如果机器配置不够尽量将线程数调低一些,方式内存爆.

CHOST="x86_64-pc-linux-gnu"
#--keep-going表示portage在编译软件出错的时候继续进行编译--with-bdeps表示在碰上依赖的时候一起安装上依赖
EMERGE_DEFAULT_OPTS="--jobs=8 --load-average=7.2 --ask --keep-going --with-bdeps=y"
GRUB_PLATFORMS="efi-64" #配置GRUB架构平台
CPU_FLAGS_X86=""#使用cpuflags查看cpu参数
#设置语言
L10N="en-US en"
LINGUAS="en-US en"

#镜像源
NETEASE="https://mirrors.163.com/gentoo/"
NEUSOFT="https://mirrors.neusoft.edu.cn/gentoo/"
TSINGHUA="https://mirrors.tuna.tsinghua.edu.cn/gentoo/"
CDS="http://mirrors.yun-idc.com/gentoo/"
ALI="https://mirrors.aliyun.com/gentoo/"
BIT="https://mirror.bit.edu.cn/gentoo/"
USTC="https://mirrors.ustc.edu.cn/gentoo/"


AUTO_CLEAN="yes"
#设置自动清理
VIDEO_CARDS="intel nvidia"#配置显卡驱动
INPUT_DEVICES="libinput"            #配置输入设备的基本库
#将microcode直接编译进内核
MICROCODE_SIGNATURES="-S"
LC_MESSAGES=C


PORTDIR="/var/db/repos/gentoo"      #软件包的ebuild文件存储目录
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"         #软件包的存储目录
#设置软件包缓存目录
PORTAGE_TMPDIR="/tmp"               #portage的编译目录
#设置portage构建软件包目录(如果内存较大,建议设置在内存里面)
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
GENTOO_MIRRORS="${USTC}"            #配置Gentoo镜像源(软件镜像源)
#全局USE
USE="-X -qt5 "
2.配置gentoo软件仓库
#创建存放gentoo仓库配置文件的目录
mkdir --parents /mnt/gentoo/etc/portage/repos.conf

#将gentoo软件仓库配置模板拷贝至上述创建的目录下
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

配置仓库镜像源(获取ebuild的镜像源)

nano /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

将镜像源换成国内的中科大gentoo源

[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://mirrors.ustc.edu.cn/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
3.挂载必要的文件系统
#配置dns解析文件
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

mount --types 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
#假如用的不是gentoo的livecd,需要加入以下
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
4.进入到新的系统进行基本系统配置
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot)${PS1}"

8.开始整个系统的编译

8.1.获取ebuild快照
emerge-webrsync
8.2.获取系统的配置文件
root #eselect profile list

Available profile symlink targets:
  [1]   default/linux/amd64/17.1 *
  [2]   default/linux/amd64/17.1/desktop
  [3]   default/linux/amd64/17.1/desktop/gnome
  [4]   default/linux/amd64/17.1/desktop/kde
8.3.安装一些常用的软件
emerge --ask app-portage/cpuid2cpuflags#用于查看cpu参数,可以将参数配置到portage配置文件中使得可以针对cpu参数进行优化
8.4.配置USE(/etc/portage/package.use/*特定软件包,/etc/portage/make.conf全局USE)

这里按自己的实际需求自行配置

sys-devel/gcc cet pgo go lto nptl -objc -objc++ -objc-gc -fixed-point -d
sys-devel/gdb cet lzma multitarget python server source-highlight xml xxhash
sys-devel/clang static-analyzer
dev-lang/python -bluetooth -wininst
net-analyze/nmap nse nping ncat libssh2
app-containers/docker btrfs cli apparmor aufs container-init device-mapper overlay
app-editors/vim cscope racket -X -crypt  -terminal
net-misc/wget cookie-check
net-wireless/wpa_supplicant ap -broadcom-sta -crda eap-sim -eapol-test -mesh -p2p
8.5.设置时间和地区

配置时间

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime		#将时间配置到上海时区
hwclock --systohc											#同步时间

配置语言和地区

#/etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
locale-gen

#列出所有可用的locale
root #eselect locale list

Available targets for the LANG variable:
  [1]  C
  [2]  C.utf8
  [3]  en_US
  [4]  en_US.iso88591
  [5]  en_US.utf8
  [6]  de_DE
  [7]  de_DE.iso88591
  [8]  de_DE.iso885915
  [9]  de_DE.utf8
  [10] POSIX
  [ ]  (free form)

#设置locale
root #eselect locale set 9

配置主机名

hostnamectl set-hostname Gentoo

配置hosts文件

/etc/hosts
# This defines the current system and must be set
127.0.0.1     tux.homenetwork tux localhost
  
# Optional definition of extra systems on the network
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny
8.6.安装linux-firmware和microcode
emerge --ask --verbose sys-kernel/linux-firmware sys-firmware/intel-microcode
#sys-kernel/linux-firmware      包含了一些常用的驱动
#sys-firmware/intel-microcode   用于更新microcode,以保持系统的稳定性
8.7.编译内核
#获取内核源码
emerge --ask sys-kernel/gentoo-sources sys-kernel/dracut sys-apps/pciutils

#sys-kernel/gentoo-sources 为内核源码
#sys-kernel/dracut用与生成initramfs
#sys-apps/pciutils软件包用于收集硬件信息(一些pci设备)

#列出当前可用内核
eselect kernel list

#设置使用那个内核
eselect kernel set

#编译内核
#进入内核目录
cd /usr/src/linux

#开始编译

#配置编译选项
make menuconfig

#开始编译
make -j8 && make modules_install -j8

#安装内核
make install 

#生成一个initramfs
dracut --kver=4.9.16-gentoo
#记得打开frame_buffer(大坑)。
8.8.系统基本使用的软件
emerge --ask --verbose net-wireless/iw net-wireless/wpa_supplicant  net-misc/dhcp net-dns/dnsmasq sys-boot/grub:2 app-editors/vim sys-boot/efibootmgr
#net-wireeless/iw               一个网络管理工具
#net-wireless/wpa-supplicant    wifi连接工具
#net-misc/networkmanager        网络管理工具
#net-misc/dhcp                  dhcp客户端
#net-misc/dnsmasq               dns服务器以及dhcp服务器
#app-admin/sysklogd             日志分析工具
#sys-boot/grub:2                grub(一种bootloader)
#app-editors/vim 				vim编辑器
#sys-boot/efibootmgr			uefi系统引导必要的		
8.9.更新系统
emerge --ask --verbose --deep --newuse --update @world

9.配置系统引导

生成fstab文件

#生成fstab文件
blkid
#如果使用的archlinux的livecd,可以使用archlinux的genfstab自动生成fstab文件
#genfstab /mnt/gentoo > /mnt/gentoo/etc/fstab

#建议使用uuid
blkid >> /etc/fstab
修改/etc/fstab文件
UUID="203C-2BDD"        /boot   vfat    defaults 0 1
UUID="5afdfbc9-0c66-4a13-8f29-da00199af5de" /   ext4 defaults defaults,noatime,discard 0 2

这里默认使用的引导是grub2,也可以使用其他的系统引导如lilo uboot等

生成grub配置文件

mkdir /boot/grub
grub-mkconfig -o /boot/grub/grub.cfg

安装系统引导

grub-install --taget=x86_64-efi --efi-directory=/boot --bootloader-id=Gentoo

10.完成安装

#设置root用户的密码
passwd root
 类似资料: