• Archlinux安装配置以及遇到的问题


    一、准备

    1.下载镜像

    这里下载最新的iso镜像文件,使用poweriso或者dd刻录到U盘。可以用lsblk看一下U盘的设备名,把sdx改成对应的。刻录之前确保U盘没有挂载,要是Ubuntu插上会自动挂载,用umount /dev/sdx取消挂载就好。

    # dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
    

    安装完成之后,想要清除U盘里的镜像需要把重建分区信息并且格式化,先用

    // 清除iso的filesystem
    # wipefs --all /dev/sdx
     //进去分区工具,用d命令删除,用n新建一个分区,新建的时候按回车下一步选默认就好,用w写入并退出, 后面分区的部分有介绍其他命令
    # gdisk /dev/sdx
    # mkfs.vfat /dev/sdx
    

    ## 2.从U盘启动

    启动后选择从U盘启动,可能需要到BIOS里关闭Secure Boot
    确认启动方式是否为efi

    # ls /sys/firmwre/efi/efivars
    


    二、安装

    1.连接网络(wlan)

    如果是有线网的话,连接之后打开dhcp应该就可以了

    # systemctl start dhcpd
    

    接口激活: ip

    • 使用rfkill list查看wlan是否被锁,如果被锁使用rfkill unblock解锁。
    • 使用ip link查看wlan的接口名称,类似wlp9s0,下面用<wlan>表示
    • 激活wlan接口,使用ip link set <wlan> up激活接口,激活后使用ip link可以看到wlan接口的状态显示为类似<BROADCAST,MULTICASR,UP,LOWER_UP>(包含UP说明接口打开)

    无线连接: iw

    • 使用iw dev <wlan> scan | less可以查看扫描到的接入点
    • 使用iw <wlan> connect连接 参考wiki
    设接入点SSID为<SSID>
    
    无加密:
    # iw dev <wlan> connect <SSID>
    
    WEP加密
    使用十六进制或 ASCII 密码(格式是自动识别出来的,因为 WEP 密码长度是固定的):
    # iw dev <wlan> connect <SSID> key 0:<KEY>
    使用十六进制或 ASCII 密码,第三个是默认 (从0计数,共四个)
    # iw dev wlan0 connect your_essid key d:2:your_key
    
    WPA/WPA2加密
    WPA/WPA2
    # wpa_supplicant -i <wlan> -c <(wpa_passphrase <SSID> <KEY>)
    

    获取ip: dhcp

    # dhcpcd <wlan>
    

    2.分区: gdisk, mkfs

    建立分区

    使用gdisk /dev/sdx可以选择指定硬盘进行分区,下面是gdisk中常用的命令:

    • ? 打印可用的命令
    • p 打印分区表
    • o 新建GPT分区表
    • n 新建分区
    • d 删除分区
    • q 不更改分区表,直接退出
    • w 将更改实际写到硬盘上

    一般至少需要新建/所在的分区(类型代码8300),还可以将home或者var目录挂载到单独的分区。如果需要还可以建立swap分区(类型代码8200),如果是空白的硬盘,还需要建立EFI分区(类型代码ef00)

    格式化分区

    # mkfs.vfat -F32 /dev/sda1
    # mkfs.ext4 /dev/sda2
    // swap分区可以不用了, 想要swap可以用[swap文件](https://wiki.archlinux.org/index.php/Swap#Swap_file)
    # mkswap /dev/sda3 
    # swapon /dev/sda3
    

    挂载分区: mount

    # mount /dev/sda2 /mnt 
    # mkdir -p /mnt/home /mnt/boot/efi 
    # mount /dev/sda1 /mnt/boot/efi
    

    3.安装基本系统

    选择软件源

    编辑/etc/pacman.d/mirrorlist,添加使用的源。如

    Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
    

    然后刷新

    # pacman -Sy
    

    基本系统

    base-devel也可以不选

    # pacstrap /mnt base base-devel
    

    生成fstab

    # genfstab -U /mnt >> /mnt/etc/fstab
    

    生成完了之后最好用cat查看一下

    4.配置

    chroot到新系统

    # arch-chroot /mnt /bin/bash
    

    语言地区

    编辑/etc/locale.gen,去掉一下几行的注释

    en_US.UTF-8 UTF-8 
    zh_CN.GB18030 GB18030 
    zh_CN.GBK GBK 
    zh_CN.UTF-8 UTF-8 
    zh_CN GB2312
    

    然后运行

    # locale-gen
    

    最后编辑/etc/locale.conf

    LANG=en.UTF-8
    

    终端字体(可选)

    编辑 /etc/vconsole.conf

    KEYMAP=us
    FONT=Lat2-Terminus16
    

    时区

    /etc/localtime 软链接到 /usr/share/zoneinfo/Zone/SubZone 。其中 ZoneSubzone 替换为所在时区,例如:

    # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    主机名(可选)

    # echo myhostname > /etc/hostname
    

    设置 Root 密码、添加用户

    除了设置 Root 密码外,添加一个管理员组的帐户做平时使用:

    # passwd
    # useradd -G wheel -d /home/user -m user
    # passwd user
    

    安装和配置 Bootloader

    // 想检测别的系统可以再装上os-prober
    # pacman -S grub efibootmgr
    # grub-install --target=x86_64-efi --bootloader-id=Arch --recheck
    # grub-mkconfig -o /boot/grub/grub.cfg
    

    X窗口管理器和一些驱动

    X窗口管理器

    #  pacman -S xorg-server xorg-xinit
    

    通用显卡驱动

    # pacman -S xf86-video-vesa
    

    有独立的显卡(NVIDIA)的话需要注意一下,下面装桌面环境的时候,最好把nvidia独立显卡驱动装上,之前遇到到不装驱动,登录之后很快就卡住的情况,应该跟nouveau没关系,因为在grub的命令里面加了nouveau.blacklist=1把nouveau禁用了。把NVIDIA驱动装上之后就没有出现进了桌面很快就freeze的情况。

    声卡驱动

    # pacman -S alsa-utils
    

    输入设备驱动

    装一下输入设备驱动libinput

    # pacman -S xf86-input-libinput
    //最好把配置工具xinput也装一下
    # pacman -S xorg-xinput
    

    带synaptics触摸板的可以安装synaptics驱动, elan的触摸板最好还是不要装了,遇到过tap to click 打不开的情况:

    # pacman -S xf86-input-synaptics
    

    虚拟机

    如果是在 VMware 中安装,安装一些专门用于虚拟机的驱动程序(这些我没有试,把Arch装虚拟机里感觉并不是正确的打开方式):

    # pacman -S xf86-input-vmmouse xf86-video-vmware svga-dri
    

    安装 VMware Tools,在 VMware 中选择“安装 VMware Tools”,然后:

    # pacman -S linux-headers
    # for x in {0..6}; do mkdir -pv /etc/init.d/rc$x.d; done
    # mount /dev/cdrom /mnt
    # cd /root
    # tar zxf /mnt/VMwareTools*.tar.gz
    # cd vmware-tools-distrib
    # ./vmware-install.pl
    

    安装字体

    安装一些常用的中英文字体:

    # pacman -S ttf-dejavu wqy-zenhei wqy-microhei
    

    连接网络

    gnome自带了networkmanager,如果安装deepin可能需要单独安装下,不然开机之后连不了网。

    # pacman -S networkmanager
    # systemctl disable dhcpcd.service//dhcpcd和NetworkManager冲突
    # systemctl enable NetworkManager.service
    

    安装桌面环境(deepin)

    装之前先把NVIDIA显卡装上

    # pacman -S nvidia opencl-nvidia
    

    也可以不选extra

    # pacman -S deepin deepin-extra
    

    配置lightdm登录管理器

    # vi /etc/lightdm/lightdm.conf
    

    找到

    /etc/lightdm/lightdm.conf
    [Seat:*]
    ...
    #greeter-session=example-gtk-gnome
    

    去掉注释,并改为:

    greeter-session=lightdm-deepin-greeter
    

    启动lightdm服务

    # systemctl enable lightdm.servicce
    

    重启即可



    三、SSD优化

    开启TRIM

    TRIM的介绍参考Archwiki-TRIM的介绍,这里使用修改/etc/fstab的方法启用TRIM。

    UUID=xxx	/         	ext4      	rw,discard,noatime,nodiratime	0 1
    
    • discard参数启动TRIM可以提升性能和使用持久性。
    • noatime和nodiratime告诉文件系统不要记录文件和目录的最后访问时间

    减少SWAP读写频率

    减少对SWAP的操作

    $ sudo vim /etc/sysctl.d/99-sysctl.conf
    vm.swappiness = 1
    vm.vfs_cache_pressure = 50
    

    重启后生效

    更换低延迟的IO-Scheduler

    默认的IO调度器CFQ(Copletely Fair Queuing)是针对HDD的优化,对多个读操作进行分组队列。但是SSD的读取效率非常高,完全不必要分组排队,使用一个队列就可以了。建议更换为:

    • NOOP(当系统只有SSD的情况下非常建议)
    • Deadline模式
      编辑文件/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT=参数里面加入elevator=noop

    把一些经常写的目录挂载到内存

    更改/etc/fstab,在最后加入

    tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0
    tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
    tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
    

    如果需要保留日志就不要把/var/log挂载到硬盘


    四 常用软件

    安装一些常用的软件

    • Anki
    • BoostNote
    • Chrome
    • Crossover (wechat office2007 thunder-speed)
    • deepin-baidu-pan
    • deepin.com.qq.office
    • Foxit Reader
    • k-vim
    • GoldenDict
    • Oh my zsh
    • RedNotebook
    • Netease Cloud Music
    • Nutstore
    • Skype
    • Stacer
    • TeamViewer
    • TexStudio
    • Visual Studio Code
    • VLC
    • Vmware Workstation
    • Wireshark
    • WPS
    • Zotero

    五、存在的问题

    装了之后现在还是有些问题,记录一下,如果找到解决办法也记录下来方便以后查看。这些我自己机器(技嘉AERO 15)上遇到的问题,别的电脑可能就没有了,如果有的话也可以尝试一下提到的解决办法,欢迎交流。
    先说一下已经解决的

    蓝牙不识别

    # pacman -S install bluez bluez-utils
    # systemctl enable bluetooth.service
    

    Deepin的grub2-daemon的问题

    如果自己更改/etc/default/grub的话,会被Deepin的grub2-daemon覆盖掉,具体是下面几个文件

    /usr/share/dbus-1/system-services/com.deepin.daemon.Grub2.service
    /usr/share/dbus-1/system.d/com.deepin.daemon.Grub2.conf
    /usr/share/polkit-1/actions/com.deepin.daemon.Grub2.policy
    /usr/lib/deepin-daemon/grub2
    

    可以运行下面这个文件更新grub来防止被覆盖

    //disable_daemon_grub2.sh
    #!/bin/sh
    set -x
    sudo update-grub2
    scriptMD5sum=$(md5sum /boot/grub/grub.cfg|awk '{print $1}')
    logfile=/var/cache/deepin/grub2.log
    sudo sed -i "s#scriptMD5sum=.*#scriptMD5sum=$scriptMD5sum#" $logfile
    

    HDMI 接口的外接显示器检测不到

    参考hdmi 检测不到,现在有了一个能work的解决办法。新建/usr/share/X11/xorg.conf.d/20-intel.conf

    Section "Device"
        Identifier "intelgpu0"
        Driver "intel"
        Option "VirtualHeads" "2"
    EndSection
    

    修改/etc/bumblebee/xorg.conf.nvidia

    Section "ServerLayout"
        Identifier  "Layout0"
        Option      "AutoAddDevices" "true"
        Option      "AutoAddGPU" "false"
    EndSection
    
    Section "Device"
        Identifier  "DiscreteNvidia"
        Driver      "nvidia"
        VendorName  "NVIDIA Corporation"
        Option "ProbeAllGpus" "false"
    
        Option "NoLogo" "true"
        Option "UseEDID" "false"
        Option "AllowEmptyInitialConfiguration"
    #    Option "UseDisplayDevice" "none"
    EndSection
    
    Section "Screen"
        Identifier "Screen0"
        Device "DiscreteNvidia"
    EndSection
    

    修改/etc/default/grub里的参数

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.blacklist=1 i915.modeset=1 acpi_backlight=vendor acpi_osi=! acpi_osi="Windows 2009""
    

    更新grub之后重启,运行sudo intel-virtual-output -f

    没法用tee /proc/acpi/bbswitch <<< ON打开独立显卡

    Refused to change power state, currently in D3
    

    在tlp的配置文件/etc/default/tlp中的RUNTIME_PM_BLACKLIST里面加入独立显卡的pci地址01:00.0(用lspci命令可以查看),关闭无线网卡的电源管理
    修改/etc/default/grub里的参数

    //加入acpi_osi=! acpi_osi="Windows 2009"
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.blacklist=1 i915.modeset=1 acpi_backlight=vendor acpi_osi=! acpi_osi="Windows 2009""
    

    无线网卡的问题

    无线网卡suspend之后再resume会出现不能扫描出网络的问题,查看dmesg可以看到错误信息

    Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Could not load the [0] uCode section
    Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to run INIT ucode: -5
    Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to start INIT ucode: -5
    Aug 30 09:15:40 AERO15 kernel: iwlwifi 0000:03:00.0: Failed to start RT ucode: -5
    

    尝试关闭Wake On Lan(参加后面的参考),问题没解决
    在tlp的配置文件/etc/default/tlp中的RUNTIME_PM_BLACKLIST里面加入无线网卡的pci地址03:00.0(用lspci命令可以查看),RUNTIME_PM_DRIVER_BLACKLIST里面加入iwlwifi,关闭无线网卡的电源管理

    登录界面的tap to click没有打开

    使用xf86-input-libinput驱动Elan的触摸板,不管是使用lightdm还是gdm,在登录界面都不能用轻触触摸板产生点击,而必须按压触摸板,原因是tab to click默认没有打开。登录之后使用设置可以配置打开,但是并不影响登录界面的设置。
    解决办法如下,编辑/etc/X11/xorg.conf.d/40-touchpad.conf

    Section "InputClass"
        Identifier "touchpad"
        Driver "libinput"
        MatchIsTouchpad "on"
        Option "Tapping" "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "30"
        Option "FingerHigh" "50"
        Option "MaxTapTime" "125"
    EndSection
    

    参见Archwiki Touchpad

    没解决的

    • 蓝牙发送文件会失败
    • 无线网卡有时会用着用着不能扫描网络了,看dmesg有一大堆错误,最先出现的是这两句
    kernel: iwlwifi 0000:03:00.0: Error sending STATISTICS_CMD: time out after 2000ms.
    kernel: iwlwifi 0000:03:00.0: Current CMD queue read_ptr 16 write_ptr 17
    
    

    用tlp关闭关闭无线网卡的电源管理之后也出现过,/etc/NetworkManager/conf.d/新建一个文件default-wifi-powersave.conf

    [connection]
    wifi.powersave = 2
    

    现在不确定是不是解决了



    参考:

    更改日志:

    • 2018.01.07 创建
    • 2018.08.30 增加五、存在的问题,更改输入设备驱动一部分
    • 2018.08.31 增加HDMI的问题
    • 2018.09.24 增加登录界面启用tab to click的部分 补齐软件和ssd优化部分
  • 相关阅读:
    进程与线程
    HDOJ搜索专题之Catch That Cow
    HDOJ搜索专题之Red and Black
    COJ1026(过河卒)
    HDOJ搜索专题之Prime Ring Problem
    COJ1113(Emperor And His Knight)
    HDOJ搜索专题之胜利大逃亡
    HDOJ搜索专题之翻纸牌游戏
    HDOJ搜索专题之Counting Sheep
    HDOJ搜索专题之Robot Motion
  • 原文地址:https://www.cnblogs.com/tonyc/p/8232368.html
Copyright © 2020-2023  润新知