技术标签: 笔记 archlinux linux 系统安装 操作系统
本配置教程根据个人安装经验整合编写,用来帮助想要入门Arch Linux的用户快速上手Arch Linux的配置过程并尽快的掌握一些可能算是必须的相关知识点以及技能并了解部分的操作系统运行原理,包含从 arch linux 安装,KDE 桌面环境安装,到 Linux 显卡驱动,常用软件,日常维护以及部分Linux相关知识,部分内容存在个人主观观点,此外,此文档参考并引用了部分网络上的现有教程代码以及当前的Arch Wiki内容(更新于2021年5月12日),完整版github更新地址(暂时使用此地址):https://stvsl.github.io
原windows用户推荐使用rufus软件进行Arch镜像的烧录,官网:https://rufus.ie/zh_CN.html
注:当前最新版不会提醒你是否使用dd模式写入镜像,但较老的版本可能存在这种情况,若出现该类提示时选择以dd模式写入,否则烧录完的镜像无法正 常使用!
原Linux用户可使用Balena Etcher进行Arch镜像的烧录,亦可使用指令进行烧录操作,操作指令为
sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
命令解释:
提权指令 调用dd命令 设置文件输入输出块大小为4M 指定镜像目录 指定烧录设备地址 输出刻录过程总的信息 保证数据真正写入了U盘
虚拟机用户请忽略
ventory使用了一种显得十分高端大气上档次的方法实现镜像的功能,在windows上,你可以下载ventory并使用它,然后将arch的镜像拖进U盘的文件夹内即可,linux同理,具体使用方式省略(如果你原来都用linux的话这个应该能够应付的过来吧)
以下内容虚拟机用户请忽略
3.1.1在BIOS中关闭Secure Boot功能
Secure Boot用来限制主板的启动,它会禁止主板从未经认证的操作系统或硬件驱动程序的加载,以此来防止恶意软件的入侵,但因为这种特性,导致了操作系统的垄断(即若想启动一个系统则该主板上必须要有对应的公钥),如果想要启动非Windows系统则很可能需要关闭主板上的该功能
3.1.2调整启动方式为UEFI
在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 boot 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为UEFI,而非 legacy/CSM
3.1.3关闭windows的快速启动功能
快速启动是 Windows 8 (及更新的版本) 中的一项功能,通过休眠来提高启动速度.但是如果你休眠 Windows 然后进入另一个系统修改文件,可能会造成数据丢失.即使你不打算在双系统中共享文件,这也容易损坏 EFI 系统分区.因此你应该在安装前禁用快速启动
3.3.4 确定硬盘分配(想双系统的用户注意!!!)
由于安装需要使用一部分磁盘空间(整个分区),因此,你需要查看你的设备分区状态,准备好一整块的分区便于以后使用(当前部分电脑是单C盘使用,因此需要考虑拆分分区的操作,一般情况下借助windows自带的计算机管理中的磁盘管理就可以轻松的执行该步骤)
3.3.5 windows to go原用户
由于windows to go的特殊性,你只需要执行3.1.1,3.1.2两个部分,随后就可以按照linux的方案走了,但要注意,安装时,建议将windows to go硬盘拔掉,以防止后面发生错误格式化等不期望的的事情发生
如果是的话应该可以直接跳过该环节了~~
想要从U盘启动的方式主要有两种,从启动选项菜单中选择(临时)或直接修改BIOS的设置(永久),部分电脑为默认优先从U盘启动
虚拟机用户请忽略。。。
此时你应该进入了arch的安装环境了,选择第一项或第二项均可(第二项会在环境准备就绪时说一段话),请注意,在一些场合下,你可以使用TAB键实现命令的自动补全,以此来减少打字次数节省时间并降低错误率,此外,安装环境默认的文本编辑器为VIM,需掌握VIM的基本操作,以下为需要掌握的VIM的操作示例:
功能 | 操作方式 |
---|---|
剪切 | 非编辑模式下连续输入2次d |
粘贴 | 非编辑模式下输入1次p |
进入编辑模式 | 输入i |
退出编辑模式 | 按下ESC键 |
顺向查找 | 非编辑模式下输入 / 后加上需要查找的文本内容后回车 |
反向查找 | 非编辑模式下输入 ? 后加上需要查找的文本内容后回车 |
保存并退出 | 输入:wq后回车 |
不保存直接退出 | 输入:q!后回车 |
回到第一行 | 非编辑模式下连按2次g |
跳转到文末 | 非编辑模式下按下shift和g |
然后让我们开始安装流程
ls /sys/firmware/efi/efivars
若执行后有输出内容即当前为UEFI模式,若没有该输出请尝试重新执行3.1.2的内容
若你是使用有线连接网络,你可以跳过该步骤,进行4.3的内容,若你是无线连接,请利用以下指令进行网络连接
iwctl #进入交互式命令行
device list #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan #扫描网络
station wlan0 get-networks #列出网络 比如想连接CMCC-5AQ7这个无线
station wlan0 connect wlanNAME #进行连接 输入密码即可
exit #成功后exit退出
#一般情况下,你可以直接执行iwctl和station wlan0 connect wlanNAME即可连接,输入exit退出即可
直接使用ping命令用于测试即可,
ping www.bilibili.com
有返回类似64 比特,来自 ecs-119-3-234-165.compute.hwclouds-dns.com (119.3.234.165): icmp_seq=4 ttl=42 时间=24.6 毫秒
的内容即代表网络连接正常,按下Ctrl + c 终止ping命令即可,如果无法连接,使用 ip link set xxx up
命令确认你已经激活了对应的网卡,再重新执行ping命令,若有类似Operation not possible due to RF-kill的报错,继续尝试rfkill unblock wifi
来解锁无线网卡
reflector 服务用于自动更新 mirrorlist,但在特定情况下,它可能会误删源信息,导致在国内无法访问软件源,这将强迫你再次手动修改源配置文件
systemctl stop reflector.service
timedatectl set-ntp true #将系统时间与网络时间进行同步
timedatectl status #检查服务状态
若有类似以下返回即代表时间服务正常
Local time: 二 2021-03-23 22:22:41 CST
Universal time: 二 2021-03-23 14:22:41 UTC
RTC time: 二 2021-03-23 14:22:41
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
vim /etc/pacman.d/mirrorlist
执行完毕后你会进入VIM编辑器,在里面利用查找功能快速定位到china部分,选择你想使用的源将其剪切粘贴到所有的镜像源的最前面(此文件中的链接是世界各地的源,pacman会按照该源内的顺序从上而下的尝试直到该源可用,更多相关信息可以自行阅读该文件内的注释部分)
因为分区需求每个人都可能不同,因此给出以下下部分Linux目录表以便于你自行定义
目录 | 说明 | 是否推荐独立分区 | 推荐大小 | 标签 | 备注(独立分区的好处是能在系统崩溃时保证某一部分的正常,缺点是ext4格式无法后期修改大小,而若不使用ext4格式可能会出现兼容问题) |
---|---|---|---|---|---|
EFI | 开机引导目录 | 推荐 | 800MB | EFI System | 请将该分区作为第一个分区,以防不兼容的问题发生, |
/ | 根目录 | 没得选,必须是 | 100G | linux file system | 防治所以文件的地方,是最底层的目录,若你不打算将home独立分区,那么跟目录就是越大越好 |
swap | 交换分区,将部分内存数据保存到硬盘上 | 是 | 4~8G | linux swap | swap为可有可无的分区,推荐开启,否则可能在运行部分软件时出现异常或因内存不足出现异常,或无法使用系统休眠功能 |
home | 家目录 | 是 | 越大越好 | linux home | 存放你的个人数据的地方,独立分区可以保证以后系统崩溃时不会损坏你的个人文件 |
opt | 第三方软件安装目录 | 否 | 80G | linux file system | 大小取决于你想要安装的软件的大小,可视情况而定,若你将此独立分区,你就可以将/的大小适当减小 |
tmp | 存放临时文件目录 | 否 | 8G | linux file system | 部分软件因为会产生大量的垃圾文件可能会导致占用大量根目录空间,若此类情况发生可考虑将其独立分区 |
usr | 应用程序放置目录 | 否 | 80G | linux /usr x86-64 | 大小取决于你想要安装的软件的大小,可视情况而定,若你将此独立分区,你就可以将/的大小适当减小 |
linux的部分设备命名规则
在linux系统中,你的所有设备都将以文件的形式放在/dev文件夹中,在不同的场景下通过挂载相应设备来使用它们,以硬盘为例,你的硬盘会以adx或nvmexnx的文件形式存在,下表为命名规则(以下内容均会使用sdax来演示)
adx类 | nvmexnx类 | |
---|---|---|
硬盘命名规则 | SCSI/SATA/U盘会以adx的形式存在,x表示从a到p的字母,通过排序表示设备,如一个U盘的文件为sdb | nvme设备会以nvmexnx的形式存储,第一个x表示插槽命名空间,第二个x表示位置,如某个硬盘为nvme0n1 |
分区命名规则 | adx的分区命名规则为在后面加一个数字,如某设备的第一个分区为sda1 | nvmexnx的分区命名规则为在后面添加px(x为数字),如某设备的第一个分区为nvme0n1p1 |
在执行lsblk时,你将会看到类似如下的返回信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 547.9M 1 loop /var/xdroid/common/rootfs sda 8:0 0 111.8G 0 disk └─sda1 8:1 0 111.8G 0 part /run/timeshift/backup nvme1n1 259:0 0 476.9G 0 disk ├─nvme1n1p1 259:2 0 260M 0 part ├─nvme1n1p2 259:3 0 16M 0 part ├─nvme1n1p3 259:4 0 457.9G 0 part /run/media/stvsl/OS ├─nvme1n1p4 259:5 0 1.3G 0 part └─nvme1n1p5 259:6 0 17.5G 0 part nvme0n1 259:1 0 465.8G 0 disk ├─nvme0n1p1 259:7 0 800M 0 part ├─nvme0n1p2 259:8 0 8G 0 part [SWAP] └─nvme0n1p3 259:9 0 457G 0 part /
原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!
原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!
原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!
重要的事情说三遍!!!
此外,你可能需要额外另建一个EFI分区(尽管原来已经有了)用来引导双系统
虚拟机请随意,与4.7.1基本一致
(以cfdisk为例,当然,你也可以使用fdisk,gdisk等工具)
lsblk #显示分区情况,这会显示你当前的硬盘设备的基本信息,你可以根据size的大小大致判断是你的哪一块硬盘
parted /dev/sdx #执行parted,进行磁盘类型变更
(parted)mktable
New disk label type? gpt #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
quit #最后quit退出parted命令行交互
cfdisk /dev/sdx #执行分区操作,分配各个分区大小,类型
#请注意,该步骤需要选择Linux分区类型标签(type),标签按照对应分区类型选择
fdisk -l #复查磁盘情况
以下仅为部分命令,其它分区命令与之类似
#磁盘原来若有数据会返回 'proceed any way?' 输入y回车即可
mkfs.ext4 /dev/sdax #格式化根目录,home目录等分区,当然,你也可以使用其他的分区格式,但这可能导致未知异常的发生!!!
mkfs.vfat /dev/sdax #格式化efi分区
mkswap -f /dev/sdax #格式化swap分区
swapon /dev/sdax #打开swap分区
注意:双系统用户仅需要格式化新的几个分区,其它的原有分区不要操作!!!
注意!!!挂载时为保证目录树正常,请从根目录/mnt
开始挂载
#挂载根目录
mount /dev/sdax /mnt
#挂载efi文件目录
mkdir /mnt/efi
mount /dev/sdax /mnt/efi
#挂载其它目录(以home目录为例,其它目录亦同)
mkdir /mnt/home
mount /dev/sdax /mnt/home
pacstrap /mnt base linux linux-firmware
若你想要使用AUR或使用系统的一些基础工具的话请额外安装 base-devel
!!!即 pacstrap /mnt base base-devel linux linux-firmware
,不安装可能会极大的降低你的使用体验!!!
pacstrap /mnt dhcpcd iwd vim sudo bash-completion
#dhcped用于获取动态IP地址 iwd用于无线网络连接 vim为文本编辑器 sudo为必备提权工具 bash-completion是命令补全工具,若你不喜欢vim,换成nano也可以
fstab是用于存放文件系统的静态信息,位于/etc/目录下,当系统启动的时候,系统会从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录,以下为自动生成命令
genfstab -U /mnt >> /mnt/etc/fstab
复查fstab以防有误
cat /mnt/etc/fstab
若异常你可以尝试再次执行生成命令,或手动修改fstab
文章浏览阅读565次。本文主要介绍如何使用C#通过OPC方式连接PLC,并提供了相应的程序和学习资料,以便读者学习和使用。OPC服务器是一种软件,可以将PLC的数据转换为标准的OPC格式,允许其他软件通过标准接口读取或控制PLC的数据。此外,本文还提供了一些学习资料,包括OPC和PLC的基础知识,C#编程语言的教程和实例代码。这些资料可以帮助读者更好地理解和应用本文介绍的程序。1.该程序是通讯方式是CSharp通过OPC方式连接PLC,用这种方式连PLC不用考虑什么种类PLC,只要OPC服务器里有的PLC都可以连。_c#opc通信
文章浏览阅读1.6w次,点赞3次,收藏10次。实践环境物理机:Windows10教育版,操作系统版本 17763.914虚拟机:Ubuntu18.04.3桌面版在Hyper-V中的刚安装好Ubuntu虚拟机之后,会发现鼠标滑动很不顺畅,也不能向虚拟机中拖拽文件或者复制内容。在VMware中,可以通过安装VMware tools来使物理机和虚拟机之间达到更好的交互。在Hyper-V中,也有这样的工具。这款工具可以完成更好的鼠标交互,我的..._win10 hyper-v ubuntu18.04 文件拷贝
文章浏览阅读156次。前言互联网时代,瞬息万变。一个小小的走错,就有可能落后于别人。我们没办法去预测任何行业、任何职业未来十年会怎么样,因为未来谁都不能确定。只能说只要有互联网存在,程序员依然是个高薪热门行业。只要跟随着时代的脚步,学习新的知识。程序员是不可能会消失的,或者说不可能会没钱赚的。我们经常可以听到很多人说,程序员是一个吃青春饭的行当。因为大多数人认为这是一个需要高强度脑力劳动的工种,而30岁、40岁,甚至50岁的程序员身体机能逐渐弱化,家庭琐事缠身,已经不能再进行这样高强度的工作了。那么,这样的说法是对的么?_类初始化一个静态属性 为线程池
文章浏览阅读1w次,点赞13次,收藏43次。说来也是惭愧,一直以来,在装环境的时候都会从官网下载Maven。然后再在idea里配置Maven。以为从官网下载的Maven是必须的步骤,直到今天才得知,idea有捆绑的 Maven 我们只需要搞一个配置文件就行了无需再官网下载Maven包以后再在新电脑装环境的时候,只需要下载idea ,网上找一个Maven的配置文件 放到 默认的 包下面就可以了!也省得每次创建项目都要重新配一次Maven了。如果不想每次新建项目都要重新配置Maven,一种方法就是使用默认的配置,另一种方法就是配置 .._安装idea后是不是不需要安装maven了?
文章浏览阅读45次。家是我们一生中最重要的地方,小时候,我们在这里哭、在这里笑、在这里学习走路,在这里有我们最真实的时光,用相机把它记下吧。 很多家庭在拍摄孩子时有一个看法,认为儿童摄影团购必须是在风景秀丽的户外,即便是室内那也是像大酒店一样...
文章浏览阅读429次。Dockerfile介绍Dockerfile是构建镜像的指令文件,由一组指令组成,文件中每条指令对应linux中一条命令,在执行构建Docker镜像时,将读取Dockerfile中的指令,根据指令来操作生成指定Docker镜像。Dockerfile结构:主要由基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。每行支持一条指令,每条指令可以携带多个参数。注释可以使用#开头。指令说明FROM 镜像 : 指定新的镜像所基于的镜像MAINTAINER 名字 : 说明新镜像的维护(制作)人,留下_rocker/r-base镜像
文章浏览阅读223次。该系统将提供便捷的信息发布、物业报修、社区互动等功能,为小区居民提供更加便利、高效的服务。引言: 随着城市化进程的加速,小区管理成为一个日益重要的任务。因此,设计一个基于微信小程序的小区管理系统成为了一项具有挑战性和重要性的毕设课题。本文将介绍该小区管理系统的设计思路和功能,以期为小区提供更便捷、高效的管理手段。四、总结与展望: 通过本次毕设项目,我们实现了一个基于微信小程序的小区管理系统,为小区居民提供了更加便捷、高效的服务。通过该系统的设计与实现,能够提高小区管理水平,提供更好的居住环境和服务。_ssm基于微信小程序的公寓生活管理系统
文章浏览阅读635次。文章来源i春秋入坑Ubuntu半年多了记得一开始学的时候基本一星期重装三四次=-= 尴尬了 觉得自己差不多可以的时候 就吧Windows10干掉了 c盘装Ubuntu 专心学习. 这里主要来说一下使用Ubuntu的正确姿势Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于DebianGNU/Linux,支..._ubuntu安装攻击工具包
文章浏览阅读335次。需求:C++中将BYTE型数组传递给Java中,考虑到内存释放问题,未采用通过返回值进行数据传递。public class demoClass{public native boolean getData(byte[] tempData);}JNIEXPORT jboolean JNICALL Java_com_core_getData(JNIEnv *env, jobject thisObj, jbyteArray tempData){ //resultsize为s..._jni引用byte[]
文章浏览阅读2.1k次,点赞5次,收藏30次。本教程代码开源:GitHub 欢迎star文章目录一、平面模型分割1. 代码2. 说明3. 运行二、圆柱模型分割1. 代码2. 说明3. 运行三、欧几里得聚类提取1. 代码2. 说明3. 运行四、区域生长分割1. 代码2. 说明3. 运行五、基于最小切割的分割1. 代码2. 说明3. 运行六、使用 ProgressiveMorphologicalFilter 分割地面1. 代码2. 说明3. 运行一、平面模型分割在本教程中,我们将学习如何对一组点进行简单的平面分割,即找到支持平面模型的点云中的所有._pclpy.pcl.pointcloud.pointxyzi转为numpy
文章浏览阅读141次。一 其实在 skyeye 上移植 arm-linux 并非难事,网上也有不少资料, 只是大都遗漏细节, 以致细微之处卡壳,所以本文力求详实清析, 希望能对大家有点用处。本文旨在将 arm-linux 在 skyeye 上搭建起来,并在 arm-linux 上能成功 mount NFS 为目标, 最终我们能在 arm-linux 里运行我们自己的应用程序. 二 安装 Sky..._nfs启动 arm
文章浏览阅读598次,点赞2次,收藏5次。00为了形成一个体系,想将前面学过的一些东西都拉来放在一起总结总结,方便学习,方便记忆。攻防世界 Pwn 新手攻防世界 Pwn 进阶 第一页01 4-ReeHY-main-100超详细的wp1超详细的wp203 format2栈迁移的两种作用之一:栈溢出太小,进行栈迁移从而能够写入更多shellcode,进行更多操作。栈迁移一篇搞定有个陌生的函数。C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 _pwn snprintf