当前位置: 首页 > news >正文

Archlinux个人安装流程

操作环境:

时间:2023-02-17

电脑型号:联想拯救者R720

cpu:Intel Core i5-7300HQ @ 4x 3.5GHz

gpu:NVIDIA GeForce GTX 1050 Ti

安装系统:

1.下载镜像: 请访问https://archlinux.org/查找镜像站下载最新的安装镜像

2.烧录镜像: 准备一个2G以上的U盘,Windows用户推荐使用Ventoy、Rufus、balenaEtcher刻录;Linux用户推荐使用Ventoy、balenaEtcher或者dd命令刻录

3.安装前准备: 由于archlinux不支持安全启动,请进入bios设置中禁用安全启动或快速启动

4.安装: 将U盘插入电脑,在开机时按下boot menu按键进入boot menu,选择U盘引导并回车(也可以在bios中将U盘启动调整至第一位,保存配置后开机启动)

5.测试网络连通性: 通过u盘启动会被引导至一个使用root身份登陆的虚拟控制台,默认的shell是zsh,可以使用以下命令配置网络,之后使用ping命令测试网络连通性

ip link    #查看网卡名称
ip add    #查看IP地址
推荐使用网线连接电脑,正常情况下此时就可以直接上网,如果使用无线请使用以下命令:
wpa_supplicant -D wext -B -i wlp3s0(设备名) -c <(wpa_passphrase wifi-name wifi-password)
#注释:
-D wext    #使用 wext 驱动网卡
-B    #后台运行
-i    #是指定设备
-c    #是指定配置文件

6.校对时间: 由于下载软件的服务器会验证系统时间,如果时间不正确,可能出现下载失败的情况

timedatectl set-timezone Asia/Shanghai    #设置时区为上海
timedatectl status    #验证及查看时间
date    #查看时间

7.创建硬盘分区: 分区创建可以使用fdisk或cfdisk,其中cfdisk是图形化操作,较为简单。操作前请检查要格式化的硬盘,数据无价

fdisk -l    #查看硬盘分区
cfdisk /dev/nvme0n1    #使用cfdisk管理硬盘
fdisk /dev/nvme0n1    #使用fdisk管理硬盘
我个人的分区方案:/dev/nvme0n1p1    #EFI分区,300MB,类型:EFI系统
/dev/nvme0n1p2    #swap分区,4GB,类型:Linux swap
/dev/nvme0n1p3    #根分区,剩下所有空间,类型:Linux LVM
格式化分区:mkfs.fat -F 32 /dev/nvme0n1p1    #格式化EFI分区
mkswap /dev/nvme0n1p2    #格式化交换分区
mkfs.ext4 /dev/nvme0n1p3    #格式化系统分区
挂载分区:swapon /dev/nvme0n1p2    #启动交换分区
mount /dev/nvme0n1p3 /mnt    #挂载系统分区
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi    #挂载EFI分区df -hT    #检查分区挂载情况
free -h    #检查内存情况

8.配置镜像源: 由于archlinux官方网站在国外,国内访问偏慢,建议通过镜像站下载软件包

vim /etc/pacman.d/mirrorlist    #编辑配置文件
#以下列出部分镜像源地址,添加一个即可,建议添加至镜像源列表首位
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch    #清华大学开源软件镜像站
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch    #中国科学技术大学开源镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch    #华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch    #兰州大学开源镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch    #阿里云镜像站pacman -Syy    #更新软件包

9.安装基本操作系统及工具:

pacstrap /mnt base base-devel linux linux-headers linux-firmware
pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware    #lts为稳定版
#base base-devel linux linux-firmware是系统中最基本的四个包,base-devel在AUR包安装过程中是必须用到的,linux是内核软件包,linux-firmware包括部分驱动

10.创建fstab文件: fstab用来定义磁盘分区,主要用于系统启动时自动挂载分区,是linux重要文件之一。使用genfstab自动根据当前挂载情况生成并写入fstab文件

genfsfab -U /mnt >> /mnt/etc/fstab    # efi+gpt使用此命令
-U    #使用uuid
-L    #使用卷标
genfstab -p /mnt >> /mnt/etc/fstab    # bios+mbr使用此命令

11.对系统进行配置: 到此基本系统安装已经完成,接下来是对系统进行更进一步的配置

arch-chroot /mnt    #切换根目录
安装软件
pacman -S networkmanager openssh vim git grub efibootmgr intel-ucode man-db man-pages ntfs-3g bash bash-completions sudo net-tools
#注释
networkmanager    #网络管理,建议安装
grub efibootmgr    #grub2引导管理,必装;efi+gpt引导的安装grub、efibootmgr;bios+mbr引导的安装grub、efivar
os-prober    #双系统必装;os-prober 可以检查其他硬盘上的其他系统引导,如果不安装并启用,可能无法识别其他系统
intel-ucode    #cpu微码,必装;intel安装intel-ucode,amd安装amd-ucode
bash bash-completions    #终端,必装;如果喜欢使用zsh,可更换为zsh zsh-completions
sudo    #提权用,必装systemctl enable NetworkManager设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc    #同步硬件时钟本地化
vim /etc/locale.gen
去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号
#使用命令修改
# sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
# sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.genlocale-gen    #更新locale信息创建locale.conf文件,并编辑设定LANG变量
vim /etc/locale.conf
LANG=en_US.UTF-8
#不建议在这里将 en_US.UTF-8 改为 zh_CN.UTF-8 ,这样会导致终端乱码编辑主机名
vim /etc/hostname设置root密码
passwd root创建新用户
useradd -m xiaoyu(用户名)
passwd xiaoyu新用户提权
vim /etc/sudoers
xiaoyu ALL=(ALL:ALL) ALL创建引导
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB    #使用efi+gpt引导
# --target=x86_64-efi 目标架构x86架构64位,efi启动方式
# --efi-directory=/boot 是硬盘挂载的/boot位置,将grubx64.efi安装到之前的指定位置(EFI分区)
# --bootloader-id=name 其中name可以更改为自己想要的名称,建议简短明确;可忽略不写
grub-install --target=i386-pc /dev/nvme0n1    #使用bios+mbr引导#grub2默认禁用了os-prober,如果你是双系统或多系统安装,需要手动开启该选项
vim /etc/default/grub
GRUB_DISABLE_OS_PROBER=falsegrub-mkconfig -o /boot/grub/grub.cfg    #生成引导配置文件退出重启进入系统
exit
reboot

12.进入系统后的配置(可在上一步的环境中继续操作)

使用xiaoyu账号登陆,不建议使用root
配置中文源
sudo vim /etc/pacman.conf
[multilib]    #开启32位仓库
Include = /etc/pacman.d/mirrorlist
[archlinuxcn]    #配置中文仓库
Server = https://repo.archlinuxcn.org/$archsudo pacman -Syu haveged
systemctl start haveged
sudo systemctl start haveged
sudo systemctl enable haveged配置密钥环
ls /etc/pacman.d/gnupg/
sudo pacman -S archlinuxcn-keyring archlinux-keyring
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn安装声卡驱动
sudo pacman -Syu
sudo pacman -S alsa-utils pulseaudio pulseaudio-alsa安装蓝牙驱动
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth
sudo systemctl start bluetooth安装触摸板驱动
sudo pacman -S xf86-input-synaptics安装paru和yay
sudo pacman -S paru
sudo pacman -S yay安装kde桌面
sudo pacman -S xorg xorg-xrandr xorg-server xorg-apps xorg-xinit xorg-xclock xterm
sudo pacman -S plasma kde-applications-mete
sudo pacman -S sddm sddm-kcm
sudo systemctl enable sddmkde桌面中文化
vim .xprofile
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8安装字体
sudo pacman -S ttf-dejavu wqy-microhei wqy-microhei-lite noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra adobe-source-han-serif-cn-fonts adobe-source-han-sans-cn-fonts wqy-zenhei wqy-bitmapfont ttf-arphic-ukai
yay -S ttf-fira-code安装及配置中文输入法
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color
yay -S fcitx5-input-support
词库
sudo pacman -S fcitx5-pinyin-zhwiki fcitx5-pinyin-moegirl fcitx5-pinyin-moegirl-rime rime-pinyin-zhwiki配置中文输入法
sudo vim /etc/environment
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus安装显卡驱动
sudo pacman -S xf86-video-intel
yay -s nvidia-dkms禁用nouveau
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1 modprobe.blacklist=nouveau"
sudo grub-mkconfig -o /boot/grub/grub.cfg
#测试nvidia显卡是否运行
nvidia-smi安装dock栏
sudo pacman -S latte-dock装screenfetch
sudo pacman -S screenfetch
sudo vim .bashrc
screenfetch
#screenfetch中文环境1801行报错问题解决
sudo free -b | awk 'NR==2{print $1"-"$6}' | sed 's/内存://g'
sudo vim /usr/bin/screenfetch
#1801行
mem=$(free -b | awk 'NR==2{print $1"-"$6}' | sed 's/内存://g')

相关文章:

Archlinux个人安装流程

操作环境&#xff1a; 时间&#xff1a;2023-02-17 电脑型号&#xff1a;联想拯救者R720 cpu&#xff1a;Intel Core i5-7300HQ 4x 3.5GHz gpu&#xff1a;NVIDIA GeForce GTX 1050 Ti 安装系统&#xff1a; 1.下载镜像&#xff1a; 请访问https://archlinux.org/查找镜…...

【Autoware】2小时安装Autoware1.13(保姆级教程)

前言&#xff1a;ROS的出现使得机器人软件开发更加快速和模块化&#xff0c;在此基础上&#xff0c;Autoware.ai开源项目可以让我们很容易地将一套完整的自动驾驶软件部署到我们的测试车辆上&#xff0c;并见证它跑起来&#xff01; 文章目录1.Autoware简介2.电脑软硬件配置要求…...

JVM 堆内存模型

方法区和永久代的关系 方法区与 Java 堆一样&#xff0c;是各个线程共享的内存区域&#xff0c;它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分&#xff0c;但是它却有一个别名叫做 N…...

linux-中断下半部

引用preempt宋宝华&#xff1a; 是谁关闭了Linux抢占&#xff0c;而抢占又关闭了谁&#xff1f;Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十&#xff09;内核抢占实现(preempt)Linux中的preempt_count - 知乎 (zhihu.com)linux 中断子系统…...

SpringMVC源码:HandlerMapping加载1

参考资料&#xff1a; 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头&#xff1a;本文为个人学习笔记&#xff0c;内容比较随意&#xff0c;夹杂个人理解&#xff0c;如有错误&#xff0c;欢迎指正。 前文&#xff1a; 《SpringMVC源码&a…...

【ArcGIS】12 投影

问题描述 在处理地理数据时,可能会遇到以下关于投影的问题: DEM缺少投影,提取流域会报错图层只有地理坐标系,没有投影坐标系,无法测量距离、计算面积等要素图层投影偏移量错误,与实际位置有偏差总之,投影对各种地理操作影响很大,有必要深入理解。 投影说明 在ArcGIS…...

【微信小程序-原生开发+TDesign】通用功能页封装——地点搜索(含腾讯地图开发key 的申请方法)

效果预览 核心技能点 调用腾讯地图官方的关键字地点搜索功能&#xff0c;详见官方文档 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodGetsuggestion 完整代码实现 地点输入框 <t-input value"{{placeInfo.title}}" bindtap"searchPlace" dis…...

h5: 打开手机上的某个app

1、android端&#xff1a;直接通过URL Scheme方式打开。2、ios端&#xff08;2种&#xff09;&#xff1a;&#xff08;1&#xff09;使用URL Scheme方式打开。&#xff08;2&#xff09;使用Universal link方式打开。3、Universal link方式使用注意事项&#xff1a;&#xff0…...

Hot Chocolate 构建 GraphQL .Net Core 服务

Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任何服务或数据源&#xff0c;并创建一个有凝聚力的服务&#xff0c;为您的消费者提供统一的 API。 我会在 .NET 应用中使用…...

linux shell 入门学习笔记16 流程控制开发

shell的流程控制一般包括if、for、while、case/esac、until、break、continue语句构成。 if语句开发 单分支if //方式1 if <条件表达式> then 代码。。。 fi //方式2 if <条件表达式>;then 代码。。。 fi 双分支if if <条件表达式> then 代码1 if <条件表…...

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测

机器学习&#xff1a;基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者&#xff1a;AOAIYI 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;AOAIYI首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞…...

给VivoBook扩容重装系统

现在笔记本重装系统都这么复杂吗&#xff1f;原谅我还是10年前的装机水平&#xff0c;折腾了一天终于把系统重新安装好了。 笔记本&#xff1a; ASUS VivoBook 安装系统&#xff1a; Win10 1、扩容 电脑配的512G硬盘满了要换个大的&#xff0c;后盖严丝合缝&#xff0c;不…...

vue 依赖注入使用教程

vue 中的依赖注入&#xff0c;官网文档已经非常详细&#xff0c;笔者在这里总结一份 目录 1、背景介绍 2、代码实现 2.1、依赖注入固定值 2.2、 依赖注入响应式数据 3、注入别名 4、注入默认值 5、应用层 Provide 6、使用 Symbol 作注入名 1、背景介绍 为什么会出现依…...

【再临数据结构】Day1. 稀疏数组

前言 这不单单是稀疏数组的开始&#xff0c;也是我重学数据结构的开始。因此&#xff0c;在开始说稀疏数组的具体内容之前&#xff0c;我想先说一下作为一个有着十余年“学龄”的学生&#xff0c;所一直沿用的一个学习方法&#xff1a;3W法。我认为&#xff0c;只有掌握了正确的…...

二十四、MongoDB 聚合运算( aggregate )

MongoDB 聚合( aggregate ) 用于处理数据&#xff0c;比如统计平均值,求和等。然后返回计算后的数据结果 MongoDB 聚合有点类似 SQL 语句中的 COUNT( * ) aggregate() 方法 MongoDB aggregate() 为 MongoDB 数据库提供了聚合运算 语法 aggregate() 方法的语法如下 > d…...

【C++】6.模板初阶

交换两个数 任何一个类型交换还要重新写一个函数 如何解决&#xff1f; 模板->写跟类型无关的函数 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 如何写一个函数适用所有类型的交换? #include &…...

Docker部署Airbyte

Linux环境部署前置要求机器配置2c4g(最低)&#xff0c;4c8g&#xff08;推荐&#xff09;dockerdocker-compose &#xff08;要求新版本的docker-compose&#xff09;安装airbyte,打开终端&#xff0c;进入你想安装airbyte的目录。#Clone代码 git clone https://github.com/air…...

2023王道考研数据结构笔记第一章绪论

第一章 绪论 1.1 数据结构的基本概念 1.数据&#xff1a;数据是信息的载体&#xff0c;是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。 2.数据元素&#xff1a;数据元素是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理…...

告别空指针让代码变优雅,Optional使用图文例子源码解读

一、前言 我们在开发中最常见的异常就是NullPointerException&#xff0c;防不胜防啊&#xff0c;相信大家肯定被坑过&#xff01; 这种基本出现在获取数据库信息中、三方接口&#xff0c;获取的对象为空&#xff0c;再去get出现&#xff01; 解决方案当然简单&#xff0c;只…...

【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

文章目录一、unordered系列关联式容器二、哈希概念三、哈希冲突四、哈希函数五、解决哈希冲突1.闭散列——开放定址法2.代码实现3.开散列——开链法4.代码实现六、结语一、unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...