linux-arch

Arch Linux

安装教程;

安装指南 - Arch Linux 中文维基 (archlinuxcn.org)

1. 什么是 Arch Linux ?

Arch Linux 是一个基于 x86-64 架构的轻量级、滚动更新的 Linux 发行版。它以极简主义设计和高用户可定制性著称,适合那些希望对操作系统有完全控制的用户。Arch Linux 提供的是一个最小化的基础系统,用户需要根据自己的需求手动安装和配置软件包。

Arch Linux 的几个关键特点:

  1. 滚动更新(Rolling Release):与许多其他 Linux 发行版不同,Arch Linux 不需要大版本升级,而是通过持续更新的方式来保持系统最新。这意味着你不需要每隔一段时间进行系统的全新安装来获取最新的功能和安全修复。
  2. KISS 原则(Keep It Simple, Stupid):Arch Linux 采用 KISS 原则,追求简单直接。简单并不意味着它易于使用,而是指系统没有过多的自动化和封装,用户有更多的掌控权。
  3. Pacman 包管理器:Pacman 是 Arch Linux 的官方包管理器,用户可以使用它来安装、更新、删除软件包。Pacman 是 Arch 的核心工具之一,帮助管理官方软件仓库中的软件。
  4. AUR(Arch User Repository):AUR 是 Arch 社区用户维护的软件库,提供了大量官方仓库中没有的软件包。它为用户提供了更丰富的软件选择。
  5. 滚动式发布模型:Arch Linux 没有固定的版本,每当有新软件发布时,用户可以通过更新系统立即获得最新版本。

由于 Arch Linux 需要用户手动配置,学习曲线相对较高,但这也是它吸引那些希望深入理解和控制系统的高级用户的原因之一。

2. 为什么使用 Arch Linux ?

当你玩惯了傻瓜式的 Ubuntu系统,让我们来玩玩arch linux吧,来让我们学习 手动安装Linux系统,学习各种配置命令,了解 Linux 命令 和 相关工具的使用。

arch 可以自定义各个模块,比如桌面环境 并且完全的由用户控制

3. 如何安装 Arch Liunx ?

参考博客:

archlinux 基础安装 | archlinux 简明指南 (icekylin.online)

Hyper-V:

【工具】Hyper-V 虚拟机环境安装 ArchLinux - 知乎 (zhihu.com)

官方:

https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

Arch Linux 安装过程

  1. 准备工作
  2. 分区与格式化
  3. 挂载
  4. 安装系统

前期准备工作

使用ping检擦网络连接

ping archlinux.org

分区[以SATA为例]

工具选择

  • fdisk Linux自带的命令行分区工具
  • 复杂但功能齐全
  • cfdisk 使用 ncurses 库编写的具有伪图形界面 TUI的命令行分区工具。
  • 新手推荐
lsblk # 显示当前分区情况
cfidsk /dev/sda # 对安装 archlinux 的磁盘分区

分区模式

  • UEFI + GPT模式

    • image-20240906195759428
  • BIOS + MBR

    • image-20240906195815127

传统ext4文件系统

使用工具 fdisk进入

fdisk  /dev/sda

将磁盘分区设置为 GPT格式

g

创建四个初始盘符并分配大小

  • sda1 EFI /boot 文件 512MB

  • sda2

  • sda3

  • sda4

  • sda
  • sda1 /boot EFI文件 512MB
  • sda2 /home Linux 20G
  • sda3 SWAP 8G
  • sda4 / 剩余空间

分区说明:

分区 - Arch Linux 中文维基 (archlinuxcn.org)

Btrfs文件系统

格式化

挂载

下载必要工具

完成安装

查看系统信息

fastefetch 

image-20240904203806791

安装桌面环境

参考博客:

桌面环境与常用应用安装 | archlinux 简明指南 (icekylin.online)

显卡虚拟化

参考博客:

为 Hyper-V 上的 Linux VM 配置 3D 加速_hyperv xp 3d加速-CSDN博客

问题挺大的

关闭自动检测点

概念介绍

BIOS和UEFI

UEFI(Unified Extensible Firmware Interface)和 BIOS(Basic Input/Output System)是两种不同的系统固件,它们用于在计算机启动时初始化硬件并引导操作系统。它们的区别体现在功能、性能、设计等多个方面。以下是它们的主要区别:

1.1 架构和设计

  • BIOS:是一种较旧的固件接口,最早出现在20世纪80年代。BIOS使用的是16位处理模式,拥有1MB的寻址空间,限制了它能执行的功能和处理复杂硬件任务的能力。
  • UEFI:是 BIOS 的现代替代品,设计之初就考虑了现代计算机的性能需求。UEFI 使用32位或64位模式,拥有更大的寻址空间(最多可寻址9.4 ZB的存储空间),可以处理更加复杂的任务并支持更大的存储设备。

2. 启动模式

  • BIOS:使用传统的主引导记录(MBR)分区表。MBR 仅支持最多 2TB 的硬盘和最多4个主分区,这对于现代存储需求来说已经过时。
  • UEFI:使用GUID分区表(GPT),可以支持超过2TB的硬盘,并且允许创建多个主分区(通常是128个)。GPT 的架构更适合现代大容量存储设备。

3. 用户界面

  • BIOS:通常是一个简单的文本界面,用户通过键盘操作来更改设置,功能较为基础。
  • UEFI:通常支持图形化用户界面(GUI),并且支持鼠标操作,这使得用户在进行系统配置时更加直观和方便。

4. 启动速度

  • BIOS:启动过程较慢,因为 BIOS 初始化硬件时采用串行处理方式,尤其在处理复杂硬件时会显得效率较低。
  • UEFI:UEFI 采用并行处理技术来初始化硬件,可以加快启动速度,尤其是在现代硬件中,UEFI 可以显著缩短启动时间。

5. 安全性

  • BIOS:安全功能有限,缺乏现代化的安全机制,例如防止恶意软件篡改引导过程的措施。
  • UEFI:提供了 Secure Boot 功能,能够确保只有经过签名和认证的操作系统才能启动,防止恶意软件或未经授权的操作系统加载。这一功能显著提高了系统的安全性。

6. 可扩展性

  • BIOS:BIOS 的扩展能力有限,支持的硬件类型相对较少,而且每次增加新的硬件支持都需要进行固件更新。
  • UEFI:UEFI 支持更广泛的硬件设备,拥有更多的可扩展性。此外,UEFI 可以通过网络或存储设备加载额外的驱动程序和应用程序,使其更具灵活性。

7. 兼容性

  • BIOS:与老旧操作系统(如 MS-DOS 和早期的 Windows 版本)有较好的兼容性,但对于新操作系统的支持有限。
  • UEFI:原生支持较新的操作系统(如 Windows 8 及以后版本、macOS、Linux 等),同时提供兼容性支持,可以模拟传统 BIOS 的功能(称为 CSM,兼容性支持模块),以便支持较旧的操作系统。

8. 存储设备支持

  • BIOS:使用 MBR 分区表,最大支持 2TB 容量的硬盘。
  • UEFI:使用 GPT 分区表,支持 2TB 以上的硬盘容量,并且可以管理更多的分区。

9. 固件升级

  • BIOS:传统 BIOS 的升级过程相对繁琐,通常需要用户手动下载并安装更新,且可能存在风险(如断电导致 BIOS 损坏)。
  • UEFI:提供了更灵活的固件更新方式,某些系统甚至可以在操作系统中进行固件升级(通过 EFI Shell 或操作系统中的管理工具)。

总结:

  • BIOS:是一种旧式的系统启动固件,功能和性能上较为有限,适合较早期的计算机硬件和操作系统。
  • UEFI:是 BIOS 的现代替代方案,提供了更多的功能、更好的安全性、更快的启动速度和对大容量存储设备的支持,适用于现代计算机系统。

现代计算机大多使用 UEFI 作为默认的启动固件,但大部分系统仍然支持 BIOS 兼容模式以确保与旧设备和操作系统的兼容性。

GPT和MBR磁盘分区系统

GPT(GUID Partition Table,全球唯一标识分区表)是现代磁盘分区系统的一种标准,相较于传统的 MBR(主引导记录,Master Boot Record)分区表,它提供了更多的功能和扩展性,尤其是在支持大容量硬盘和更多分区方面。

以下是 GPT 磁盘分区系统的关键特性和功能:

1. 支持更大容量的磁盘

  • MBR:传统的 MBR 分区表只能支持最大 2TB 容量的磁盘,这对于现代大容量存储设备已经不够用。
  • GPT:可以支持多达 18 EB(艾字节,1EB = 1024PB)的磁盘容量,远远超过了 MBR 的限制,因此非常适合现代大容量硬盘。

2. 支持更多的分区

  • MBR:最多只能创建 4 个主分区。如果需要更多的分区,必须通过创建一个扩展分区,再在扩展分区内创建多个逻辑分区,但这比较复杂且有局限性。
  • GPT:可以支持最多 128 个主分区(具体数量可能根据操作系统有所不同),不需要像 MBR 那样区分主分区和扩展分区,简化了分区管理。

3. 更强的可靠性

  • MBR:MBR 将分区表信息存储在磁盘的开头区域,如果这个区域损坏,整个分区表将无法使用,容易导致数据丢失。
  • GPT:GPT 在磁盘的头部和尾部分别保存了一份分区表的副本,即使其中一个分区表被损坏,另一份备份分区表也可以恢复磁盘的分区信息,提高了数据的安全性。

4. 分区的唯一标识

  • GPT:为每个分区提供了一个全局唯一标识符(GUID),每个分区都有一个独特的 ID,这使得不同磁盘之间的分区不容易混淆,从而在多磁盘环境中有更好的识别能力。

5. 校验和机制

  • GPT:使用 CRC32(循环冗余校验)来检测分区表的数据完整性。如果分区表数据损坏,GPT 可以通过检查和校验发现错误,并尝试从备份中恢复数据。

6. 支持 UEFI 引导

  • MBR:传统 BIOS 使用 MBR 作为启动盘的分区表,但它不支持 UEFI 启动。
  • GPT:GPT 是 UEFI(统一可扩展固件接口)所支持的分区表标准,且现代计算机通常采用 UEFI 和 GPT 配合来引导操作系统。很多新的操作系统(如 Windows、Linux)在 UEFI 模式下默认使用 GPT 分区表。

7. 向后兼容性

  • MBR 和 GPT 兼容性:GPT 的分区表包含一个“保护性的 MBR”,它的作用是在支持 GPT 的磁盘上创建一个标记,使得不支持 GPT 的老式工具能够识别这个磁盘为不可修改的,这样可以防止它们误将磁盘重新格式化为 MBR。

8. 更多元数据

  • GPT:GPT 分区表允许每个分区拥有名称、类型以及 GUID 标识符,使得系统在管理分区时更加清晰和直观,且可以方便区分不同类型的分区(如数据分区、引导分区等)。

GPT 磁盘的优势总结:

  • 支持更大的硬盘和更多分区:不再受 2TB 硬盘容量和 4 个主分区的限制。
  • 可靠性更高:通过备份分区表和校验机制来保障分区数据的安全性。
  • 现代化引导机制:与 UEFI 固件配合使用,是现代计算机的标准分区系统。
  • 扩展性和兼容性更好:可以处理更加复杂和多样的分区需求,适用于现代大容量存储设备和复杂硬盘配置。

总的来说,GPT 是目前最先进、最灵活的磁盘分区系统,适合大容量磁盘和需要更多分区的用户,也是现代操作系统(如 Windows 10、Linux、macOS)默认支持的分区表类型。

Pacman是什么

Pacman 是 Arch Linux 的包管理器,它是 Arch Linux 系统中非常重要的工具,用来安装、更新和卸载软件包。Pacman 的设计目标是提供一个简单、高效且功能强大的软件包管理工具。它既可以从 Arch Linux 的官方仓库安装软件包,也可以从用户维护的 Arch User Repository (AUR) 安装软件包。

作为 arch linux 的包管理工具,类似于Ubuntu的apt工具

1. Pacman 的主要功能:

  1. 安装软件包:从官方仓库安装软件包,处理依赖关系,确保所有相关的软件库都安装齐全。
  2. 更新软件包:自动从官方仓库获取软件包的更新,确保系统中的软件保持最新版本。
  3. 卸载软件包:可以安全地卸载软件包,同时卸载它们的依赖项,保持系统的整洁。
  4. 管理软件源:可以通过编辑 /etc/pacman.conf 文件添加、删除或修改软件源,灵活控制系统软件源。

2. Pacman 的常用命令:

  1. 同步软件仓库数据库并更新系统

    sudo pacman -Syu
    

该命令会同步仓库数据库,并更新所有已安装的软件包到最新版本。

  1. 安装软件包

    sudo pacman -S 软件包名
    

    这会从 Arch 官方仓库中安装指定的软件包。

  2. 卸载软件包

    sudo pacman -R 软件包名
    

    这会卸载指定的软件包,但不会删除它的依赖项。

  3. 卸载软件包及其依赖项

    sudo pacman -Rs 软件包名
    

    卸载软件包及其不再被其他程序使用的依赖项。

  4. 搜索软件包

    pacman -Ss 关键词
    

    该命令会在软件仓库中搜索符合关键词的软件包。

  5. 查看已安装的软件包

    pacman -Q
    

    列出系统中所有已安装的软件包。

  6. 显示特定软件包的详细信息

    pacman -Qi 软件包名
    

    查看某个已安装的软件包的详细信息,包括版本号、安装日期、依赖关系等。

  7. 清理未使用的软件包缓存

    sudo pacman -Sc
    

    清理本地存储的旧版或不再需要的软件包缓存,以节省硬盘空间。

3. Pacman 的优势:

  • 高效的依赖管理:Pacman 能够自动解决软件包之间的依赖关系,确保系统中软件包安装和更新时不会出现冲突。
  • 滚动更新支持:与 Arch Linux 的滚动更新模式配合,Pacman 可以使系统保持最新状态,无需手动处理版本升级。
  • 速度和简洁性:Pacman 是轻量级的包管理工具,操作简洁且执行速度快,非常适合 Arch Linux 追求极简、高效的理念。

总之,Pacman 是 Arch Linux 生态中不可或缺的工具,它为用户提供了简洁而强大的软件包管理体验,确保用户能够轻松地安装、更新和管理系统中的软件。

DNS

DNS(Domain Name System,域名系统)是互联网的重要组成部分,它将用户输入的域名(例如 www.google.com)转换为计算机可理解的 IP 地址(例如 172.217.6.46)。这种转换是因为人们更容易记住域名,而计算机之间通过 IP 地址进行通信。

DNS 的基本功能:

  1. 域名到 IP 地址的解析:当用户在浏览器中输入一个域名时,DNS 负责将这个域名解析为相应的 IP 地址,帮助浏览器找到目标服务器,建立连接。
  2. 反向解析:除了域名到 IP 地址的解析,DNS 还可以进行反向解析,即通过 IP 地址找到对应的域名。

DNS 的工作流程:

DNS 的工作可以分为多个步骤,以帮助用户找到所需的 IP 地址:

  1. 查询本地缓存:当用户请求一个域名时,操作系统会首先检查本地缓存中是否有该域名对应的 IP 地址。如果有,直接返回 IP 地址;如果没有,则继续下一步。
  2. 递归查询:如果本地缓存中没有结果,操作系统会将请求发送给配置好的 DNS 服务器(通常是互联网服务提供商提供的 DNS 服务器)。
  3. 递归解析服务器查询
    • DNS 服务器会先查询根域名服务器(Root DNS),根服务器会指向相应顶级域名服务器(如 .com.org)。
    • 顶级域名服务器再指向特定域名的权威 DNS 服务器。
    • 权威 DNS 服务器会提供该域名的最终 IP 地址。
  4. 返回结果:DNS 服务器将查询到的 IP 地址返回给用户的计算机,用户的计算机再将该 IP 地址用于建立与目标服务器的连接。

DNS 的主要类型:

  1. 递归 DNS 服务器:通常由互联网服务提供商(ISP)或第三方 DNS 服务商(如 Google DNS、Cloudflare)提供。它负责接收用户请求并进行多级查询,直到获取域名对应的 IP 地址。
  2. 权威 DNS 服务器:负责存储特定域名的实际 IP 地址记录。当递归 DNS 服务器查询到它时,权威 DNS 服务器会返回最终的解析结果。
  3. 根域名服务器:位于 DNS 体系结构的最顶层,它并不直接存储域名的 IP 地址,而是告诉递归 DNS 服务器去哪个顶级域名服务器(TLD)查询。

常见的 DNS 记录类型:

  1. A 记录(Address Record):将域名映射到 IPv4 地址。
  2. AAAA 记录:将域名映射到 IPv6 地址。
  3. CNAME 记录(Canonical Name Record):将一个域名指向另一个域名,用于域名别名解析。
  4. MX 记录(Mail Exchange Record):指定电子邮件服务器的地址,用于电子邮件的路由。
  5. NS 记录(Name Server Record):指定管理该域名的 DNS 服务器。
  6. TXT 记录:存储任意的文本信息,通常用于身份验证和安全(如 SPF 记录,用于防止邮件伪造)。

DNS 的优势:

  1. 用户友好:通过 DNS,用户可以记住易读的域名,而不必记住难记的 IP 地址。
  2. 分布式架构:DNS 是一个分布式数据库系统,避免了单点故障的发生。全球范围内有多个 DNS 服务器,确保查询高效和可靠。
  3. 缓存机制:DNS 的查询结果会被缓存,可以显著减少查询时间,提高网络响应速度。

DNS 的安全问题:

  1. DNS 劫持:恶意行为者通过篡改 DNS 查询结果,将用户引导至伪造的网站。
  2. DNS 缓存中毒:攻击者向 DNS 服务器注入虚假数据,导致用户访问错误的网站。
  3. DNSSEC(DNS Security Extensions):DNS 安全扩展,它通过数字签名验证 DNS 数据的完整性,防止 DNS 缓存中毒和劫持。

总之,DNS 是互联网的基础设施之一,它在幕后帮助我们顺利访问各种网站和服务,而不需要记住复杂的 IP 地址。

Btrfs 与 Ext4

Ext4 和 Btrfs 是两种常见的 Linux 文件系统。虽然它们都用于存储和管理数据,但在设计目标、功能和使用场景上有很大的差异。下面是它们的详细对比:

1. 基本概述

  • Ext4(Fourth Extended File System):

    • Ext4 是 Ext 系列文件系统的第四代,是目前大多数 Linux 发行版的默认文件系统。它是 Ext3 的改进版,专注于稳定性和性能。
    • Ext4 被广泛使用,因其稳定、成熟、可靠,适合桌面和服务器环境,尤其是在不需要高级功能的场合。
  • Btrfs(B-tree File System):

    • Btrfs 是一个更现代的文件系统,设计之初就考虑了更多的功能,例如快照、子卷、内置 RAID、透明压缩和数据校验等。它旨在替代 Ext 系列,成为下一代的默认 Linux 文件系统。
    • Btrfs 更适合复杂存储环境,尤其是在需要高级存储功能的服务器、虚拟化或容器化应用中。

2. 数据完整性与校验

  • Ext4:Ext4 文件系统没有内置的数据完整性校验功能,无法主动检测和修复数据损坏。如果磁盘或文件系统出现故障,数据可能会遭到破坏而不会被立即发现。

  • Btrfs:Btrfs 具有内置的数据完整性校验功能,它为所有数据和元数据计算并存储校验和。当读取数据时,Btrfs 会验证数据的完整性,如果发现错误,并且系统配置了冗余机制(如 RAID 1),Btrfs 可以自动修复损坏的数据。

3. 快照与备份

  • Ext4:Ext4 没有原生支持快照功能。如果需要快照功能,通常需要借助 LVM(逻辑卷管理器)等外部工具来创建卷级快照。

  • Btrfs:Btrfs 原生支持快照功能,用户可以快速创建只读或可写的快照。快照是高效的备份方式,因为它不会复制整个文件系统,而是通过写时复制(COW)技术仅在数据发生更改时才占用额外的存储空间。

4. 子卷管理

  • Ext4:Ext4 不支持子卷功能,它的分区和卷管理相对简单,每个分区独立管理,没有子卷的概念。

  • Btrfs:Btrfs 支持子卷,子卷类似于独立的文件系统,但它们共享同一存储空间。子卷可以单独挂载、备份和管理,适合复杂的多用途系统或分区需求。

5. 性能

  • Ext4:在普通桌面和服务器环境中,Ext4 通常表现出良好的性能,特别是在处理小文件和元数据操作时。它经过多年优化,非常适合传统文件系统的使用场景。

  • Btrfs:Btrfs 在处理大文件和复杂存储需求时表现较好,尤其是使用快照、子卷和压缩功能时。但在某些情况下(例如对元数据频繁进行小规模读写操作),Btrfs 的性能可能不如 Ext4 稳定。

6. 压缩支持

  • Ext4:Ext4 不支持文件系统级别的透明压缩。如果需要压缩功能,必须使用外部工具(如 gzipbzip2)对文件进行压缩处理。

  • Btrfs:Btrfs 支持透明压缩功能,用户可以通过启用 Btrfs 的压缩选项来自动压缩文件数据。支持的压缩算法包括 zlib、LZO 和 ZSTD,能够节省存储空间并在一定程度上提升 I/O 性能。

7. RAID 支持

  • Ext4:Ext4 不直接支持 RAID 功能。如果需要 RAID,通常使用软件 RAID(如 mdadm)或硬件 RAID 来实现。

  • Btrfs:Btrfs 原生支持 RAID 功能,支持 RAID 0、RAID 1、RAID 5、RAID 6 和 RAID 10。用户可以直接在 Btrfs 中配置 RAID,无需借助外部工具。这使得 Btrfs 能够更轻松地在多磁盘环境中提供数据冗余和性能提升。

8. 文件系统扩展与收缩

  • Ext4:Ext4 支持在线扩展文件系统大小,可以在文件系统挂载的情况下扩展其大小。但要收缩文件系统,必须在卸载分区后操作。

  • Btrfs:Btrfs 支持在线扩展和收缩文件系统大小,无需卸载文件系统即可调整存储空间。这使得 Btrfs 更加灵活,适合动态调整存储需求的环境。

9. 最大文件和分区大小

  • Ext4

    • 最大单个文件大小:16TB
    • 最大分区大小:1EB(通常实际限制为 16TB)
  • Btrfs

    • 最大单个文件大小:16EB
    • 最大分区大小:16EB
    • Btrfs 支持的最大文件和分区大小远超 Ext4,适合大规模存储场景。

10. 稳定性

  • Ext4:经过多年的使用和优化,Ext4 是一个非常稳定的文件系统,适用于生产环境,特别是桌面和服务器场景。Ext4 因其成熟性和可靠性,被认为是 Linux 中最稳定的文件系统之一。

  • Btrfs:Btrfs 作为较新的文件系统,虽然具有很多强大的功能,但其某些功能(如 RAID 5 和 RAID 6)在某些情况下还存在稳定性问题。尽管如此,Btrfs 在一般应用场景中已经足够稳定,许多 Linux 发行版(如 openSUSE 和 Fedora)已经将其作为默认文件系统使用。

11. 社区支持和应用场景

  • Ext4:由于其成熟性,Ext4 在桌面和服务器中被广泛使用,几乎所有 Linux 发行版都支持它。它是传统工作负载(如文件存储、简单服务器应用等)的首选文件系统。

  • Btrfs:Btrfs 社区仍在积极开发中,虽然它在一些生产环境中被使用,但更多的是应用在需要高级功能(如快照、子卷、压缩、RAID 支持)的场景下。适合虚拟化、容器化环境以及数据中心等需要灵活存储管理的场景。

总结:

  • Ext4 是一个成熟、稳定、高效的文件系统,适合大多数传统桌面和服务器环境。它简单易用,并且性能在常规工作负载下表现优异。
  • Btrfs 提供了更强大的功能,如快照、子卷、内置 RAID、透明压缩和数据校验等,非常适合复杂的存储需求和多磁盘环境。虽然 Btrfs 仍然存在一些稳定性问题(特别是在 RAID 5/6 上),但在需要高级数据管理和灵活存储的场景中,Btrfs 是一个有力的选择。

选择 Ext4 还是 Btrfs 取决于用户的具体需求。如果您需要简单、稳定的文件系统,Ext4 是不错的选择;如果您需要快照、压缩和 RAID 等高级功能,Btrfs 可能更适合。

github