公告

Gentoo交流群:87709706 欢迎您的加入

#1 2023-01-12 18:23:13

batsom
管理团队
注册时间: 2022-08-03
帖子: 602
个人网站

安装基本系统

强烈建议对照官方文档参考

    从gentoo官网下载iso,我这里下载的是amd64下的Minimal Installation CD

    如果要制作USB启动盘,可以使用Rufus

    光盘/U盘启动

    网络链接

      ping -c 1 www.baidu.com

    如果能ping通,直接进行安装,否则通过ifconfig查看网卡名字

        如果是有线网卡,网卡名称是enp3s0,执行

              ifconfig enp3s0 192.168.1.168 broadcast 192.168.1.255 netmask 255.255.255.0
              ip route add via 192.168.1.1 dev enp3s0
              echo "nameserver 114.114.114.114" > /etc/resolv.conf 

        如果是无线网卡,网卡名称是wlp3s0

            加密方式是wep

              iwlist wlp3s0 scanning                                      #查看附近的ESSID
              iw dev wlp3s0 info
              iw dev wlp3s0 link
              ip link set dev wlp3s0 up
              iw dev wlp3s0 connect -w ESSID                               #没有密码
              iw dev wlp3s0 connect -w ESSID key 0:d:1234123412341234abc   #密码是16进制
              iw dev wlp3s0 connect -w ESSID key 0:some-password           #密码是ASCII格式 
              dhcpcd wlp3s0                                                #获取ip
              iwconfig                                                     #查看是否连接指定的SSID 

            加密方式是wpa/wpa2,这个方法也支持wep加密
            在/etc/wpasupplicant/wpa_supplicant.conf里增加

                  network {
                      ssid="ESSID"
                      psk="密码"
                      priority=1
                  } 

            执行

                  wpa_supplicant -i wlp3s0 -c /etc/wpa_supplicant/wpa_supplicant.conf  #运行wpa_supplicant
                  dhcpcd wlp3s0                                                        #获取ip
                  iwconfig                                                             #查看是否连接指定的SSID

    我这里为了安装方便,通过ssh安装

        启动ssh服务

          /etc/init.d/sshd start 
          或 
          rc-service sshd start

        修改root密码

          passwd

    从其他电脑通过ssh连接过来

    使用parted进行GPT分区(UEFI必须是GPT分区格式,且用parted或gdisk)

        交互式操作

          parted -a optimal /dev/sda      #-a 优化分区对齐
          (parted) mklabel gpt            #设置GPT分区格式
          (parted) unit mib
          (parted) mkpart primary 1 3     #固定为2M的bios启动分区,GPT和GRUB2一起使用时必须要有这个,UEFI下不需要
          (parted) name 1 grub
          (parted) set 1 bios_grub on
          (parted) mkpart primary 3 131       #boot分区
          (parted) name 2 boot
          (parted) set 2 boot on              #当使用UEFI接口来引导系统时(取代BIOS),要将引导分区标识为EFI系统分区。当“boot”选项在这个分区被设置时,Parted可以自动完成此事。
          (parted) mkpart primary 131 643     #交换分区
          (parted) name 3 swap
          (parted) mkpart primary 643 -1      #简单起见,剩下的全部在/分区,实际中可以把home、var等分区独立出来
          (parted) name 4 rootfs
          (parted) quit

        非交互式操作,注释见上方

          yes | parted -a optimal /dev/sda mklabel gpt
          parted -a optimal /dev/sda unit mib
          parted -a optimal /dev/sda mkpart primary 1 3
          parted -a optimal /dev/sda name 1 grub
          parted -a optimal /dev/sda set 1 bios_grub on
          parted -a optimal /dev/sda mkpart primary 3 131
          parted -a optimal /dev/sda name 2 boot
          parted -a optimal /dev/sda set 2 boot on
          parted -a optimal /dev/sda mkpart primary 131 643
          parted -a optimal /dev/sda name 3 swap
          parted -a optimal -- /dev/sda mkpart primary 643 -1
          parted -a optimal /dev/sda name 4 rootfs
          parted -a optimal /dev/sda p

    格式化分区

      mkfs.ext2 /dev/sda2     #UEFI是mkfs.vfat -F 32 /dev/sda2
      mkfs.ext4 /dev/sda4
      mkswap /dev/sda3
      swapon /dev/sda3

    挂载分区

      mount /dev/sda4 /mnt/gentoo

    修改时间,注意参数要替换成具体数字(Month, Day, hour, minute and Year)

      date MMDDhhmmYYYY 
      或者(最好) 
      ntpd -q -g

    安装stage3

      cd /mnt/gentoo

    去gentoo官网下载对应的stage3包

      tar xpf stage3-*.tar.* --xattrs-include='*.*' --numeric-owner
      rm -rf stage3-*.tar.*

    配置make.conf里的编译选项 查看CPU类型

      cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    在/mnt/gentoo/etc/portage/make.conf里配置

      CFLAGS="-march=native -O2 -pipe"   #native表示使用当前系统体系结构,-pipe表示使用管道加快速度,如果内存不足,就去掉
      CXXFLAGS="${CFLAGS}"
      MAKEOPTS="-j3"          #cpu核数+1=3

    配置源

      #按空格选择
      mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf  #相当于再make.conf里增加GENTOO_MIRRORS="https://mirror.bjtu.edu.cn/gentoo/ http://mirrors.163.com/gentoo/ http://gentoo.aditsu.net:8000/ rsync://ftp.iij.ad.jp/pub/linux/gentoo/ http://ftp.iij.ad.jp/pub/linux/gentoo/ http://ftp.jaist.ac.jp/pub/Linux/Gentoo/ rsync://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
      mkdir -p /mnt/gentoo/etc/portage/repos.conf 
      cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf 

    拷贝DNS信息

      cp -L /etc/resolv.conf /mnt/gentoo/etc/

    chroot

      mount -t proc proc /mnt/gentoo/proc
      mount --rbind /sys /mnt/gentoo/sys
      mount --make-rslave /mnt/gentoo/sys  #安装systemd支持时所需要
      mount --rbind /dev /mnt/gentoo/dev
      mount --make-rslave /mnt/gentoo/dev  #安装systemd支持时所需要
      chroot /mnt/gentoo /bin/bash
      source /etc/profile
      export PS1="(chroot) $PS1"

    挂载boot分区

      mkdir /boot
      mount /dev/sda2 /boot

    安装portage最新快照(通常是24小时内)

      emerge-webrsync

    查看new,这个环节比较重要,我这里没有影响
    通过eselect news list和eselect news read 编号 查看news,以下都是news里的一些信息
    如果/和/usr在不同分区,内核必须使用initramfs

    更新portage数据库(通常是1小时内)

      emerge --sync

    选择合适的profile

      eselect profile list

      #如果是desktop
      eselect profile set 16
      或
      eselect profile set default/linux/amd64/17.0/desktop

      #如果是desktop+gnome
      eselect profile set 17
      或
      eselect profile set default/linux/amd64/17.0/desktop/gnome

      #如果是systemd
      #参考 https://wiki.gentoo.org/wiki/Systemd
      eselect profile set 25
      或
      eselect profile set default/linux/amd64/17.0/systemd

      #如果是desktop+systemd
      #参考 https://wiki.gentoo.org/wiki/Systemd/In … om_scratch
      eselect profile set 18
      或
      eselect profile set default/linux/amd64/17.0/desktop/gnome/systemd

    更新@world

      emerge -av -uDN @world

    根据提示

      eselect pinentry set pinentry-gnome3

    我习惯用vim

      emerge -av vim
      eselect vi set vim # eselect vi set 1
      eselect vi list
      eselect editor set /usr/bin/vi # eselect editor set 3
      eselect editor list
      . /etc/profile

    配置make.conf

        查看当前的USE设置

          emerge --info | grep ^USE

        查看cpu支持的指令集

          emerge -1v app-portage/cpuid2cpuflags
          cpuid2cpuflags        #记下执行结果,下一步用到

        修改/etc/portage/make.conf,显卡配置参考Xorg/Guide

          LINGUAS="zh_CN en"      #安装软件包的时候,如果有中文语言包,就顺便装上
          L10N="zh-CN"            #安装thunderbird(bin版本中文显示有问题)、libreoffice-l10n的时候,安装中文包
          VIDEO_CARDS="intel i965"     #请根据自己的显卡类型填入,virtualbox虚拟机里是virtualbox
          INPUT_DEVICES="libinput evdev keyboard mouse synaptics"     #synaptics是触摸板,libinput已经包含evdev
          USE="python pulseaudio git subversion mercurial sync-plugin-portage gnome-keyring bash-completion vim-syntax tk icu" #icu是安装chromium需要
          CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 ssse3"   #上一步看到的指令集
          ABI_X86="32 64"     #安装32位和64位,如果存在循环依赖,可以先注释掉
          #UEFI
          #GRUB_PLATFORMS="efi-32 efi-64 pc"
          GRUB_PLATFORMS="efi-64"

    设置时区

      echo "Asia/Shanghai" > /etc/timezone
      emerge --config sys-libs/timezone-data  #时间可能不对,查看下是否需要设置

    设置字符集

        在/etc/locale.gen里增加

          en_US ISO-8859-1
          en_US.UTF-8 UTF-8
          zh_CN.UTF-8 UTF-8
          zh_CN.GB2312 GB2312
          zh_CN.GBK GBK
          zh_CN GB18030

        更新

          locale-gen
          eselect locale list
          eselect locale set zh_CN.utf8 # eselect locale set 10
          . /etc/profile

        继续
        在/etc/env.d/02locale里增加

          LC_COLLATE="C"
          env-update && source /etc/profile && export PS1="(chroot) $PS1"

    分区挂载设置(使用genkernel需要先设置好boot挂载)
    编辑/etc/fstab,注意,如果是UEFI,则boot分区挂载为vfat(非ext2)

      /dev/sda2     /boot        ext2     defaults,noatime     0 2
      /dev/sda3     none           swap      sw                0 0
      /dev/sda4     /            ext4     noatime              0 1
      /dev/cdrom    /mnt/cdrom   auto     noauto,user          0 0

    安装内核和常用工具,注意,systemd下是genkernel-next

      emerge -av gentoo-sources pciutils genkernel app-portage/eix mcelog gentoolkit #iproute2已安装
      cd /usr/src/linux
      #如果使用systemd
      ln -sf /proc/self/mounts /etc/mtab

    配置参考Configuring the Linux kernel
    蓝牙、打印机等配置参考Gentoo_Kernel_Configuration_Guide
    显卡配置参考Xorg/Guide
    无线网卡参考Wifi
    声卡配置参考ALSA 蓝牙配置参考Bluetooth 电源管理配置参考Power management/Guide USB管理配置参考USB/Guide ipv6配置参考IPv6_router_guide
    systemd配置参考systemd和systemd/Installing Gnome3 from scratch 照参考进行配置,CPU类型需要按照实际选择
    设置CONFIG_SND_HDA_PREALLOC_SIZE为2048,HD-Audio Driver的配置 设置CONFIG_PPP_BSDCOMP,ppp用到

      emerge -av sys-kernel/linux-firmware   #这个是无线网卡的驱动,参考https://wiki.gentoo.org/wiki/Wifi,一般已在上一步自动安装了
      #如果需要支持lvm或raid,增加参数--lvm --mdadm
      genkernel --menuconfig all     #如果不设置,可以直接genkernel all

    网络设置,enp3s0是网卡名字,请替换为自己的网卡名字

        编辑/etc/conf.d/hostname

          hostname="home"

        编辑/etc/hosts,增加主机名到127.0.0.1后面

        安装netifrc

          emerge --noreplace netifrc

        设置网络,编辑/etc/conf.d/net,修改如下 前三行是固定ip,第四行是动态ip,选择一个就可以了

          config_enp3s0="192.168.1.173 netmask 255.255.255.0 brd 192.168.1.255"
          routes_enp3s0="default via 192.168.1.1"
          dns_servers="114.114.114.114 223.5.5.5 192.168.1.1"
          config_enp3s0="dhcp"

        如果是多ip,第一行改成

          config_enp3s0="192.168.1.173 netmask 255.255.255.0 brd 192.168.1.255 
          192.168.1.174 netmask 255.255.255.0 brd 192.168.1.255 
          192.168.1.175 netmask 255.255.255.0 brd 192.168.1.255"

        设置自启动

          cd /etc/init.d
          ln -s net.lo net.enp3s0
          rc-update add net.enp3s0 default

    设置新系统的root密码,一定要做,否则重启后无法登陆

      passwd

    安装一些必要的系统工具

      emerge -av syslog-ng cronie mlocate net-misc/dhcpcd logrotate sudo
      #如果是pppoe
      emerge -av ppp
      #如果是无线网络
      emerge -av wpa_supplicant
      rc-update add syslog-ng default
      rc-update add cronie default
      rc-update add sshd default
      rc-update add dhcpcd default

    这里普通用户用crontab -l报'/var/spool/cron/crontabs' is not a directory, bailing out.(现在已经不需要了)

      chmod o+rx /var/spool/cron

    安装引导,os-prober是多系统的时候有用

      emerge -av sys-boot/grub os-prober

    grub的默认配置在/etc/default/grub,比如可以把超时时间改成3秒
    /dev/sda是启动分区所在

      #如果是BIOS
      grub-install /dev/sda

      #如果是UEFI
      grub-install --target=x86_64-efi --efi-directory=/boot
      #如果报错:Could not prepare Boot variable: Read-only file system,先执行下面命令再执行install
      mount -o remount,rw /sys/firmware/efi/efivars
      #如果重启没有出现grub界面,参考https://www.linuxidc.com/Linux/2017-10/147754.htm
      #注意引导命令是\EFI\gentoo\grubx64.efi
      #进入后执行grub-install --target=x86_64-efi --efi-directory=/boot --removable会自动生成
      #/boot/EFI/BOOT/BOOTX64.EFI文件,然后就可以重启成功了

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

    安装完成,重启,建议在shutdown后才把光盘取出,否则可能会报io错误

      exit
      cd
      umount -l /mnt/gentoo/dev{/shm,/pts,}
      umount -R /mnt/gentoo{/boot,/proc,}
      shutdown -h now

离线

#2 2023-01-20 18:59:20

matebest
会员
注册时间: 2023-01-20
帖子: 8

Re: 安装基本系统

谢谢,谢谢,非常详细,可惜才找到这个网站。

离线

页脚

Powered by FluxBB

本站由XREA提供空间支持