Win10 上 安装 ArchLinux(BIOS 引导)

2023-05-16

本文档记录了第一次在 win10 上折腾 arch linux 的过程

一、注意事项

  • 针对 BIOS 引导的磁盘

二、安装过程

1. 安装包

  • arch linux 版本:在 arch linux 官方 找到了清华大学开源软件镜像站, 我下载的版本为 archlinux-2018.04.01-x86_64.iso
  • 安装介质制作工具:usbwriter

2. 磁盘准备

  • 原来装的是 ubuntu 16.04 LTS,删了之后剩了 200G

3. U 盘安装

3.1 进入 Linux 系统

  • 重启找到自己电脑进入 BIOS 的快捷键(F2、F10、F12什么的乱七八糟按按试试,实在不行 google 一下)

  • 选择自己的 U 盘作为引导项

  • 选择 Boot Arch Linux (x86_64)

  • 如果一切正常的话会进入一个只有命令提示符的界面:

    Arch Linux 4.15.14-1-ARCH(tty1)
    
    archiso login: root (automatic login)
    root@archiso ~ # _

至此,已成功进入 arch linux

3.2 检查引导方式

root@archiso ~ # ls /sys/firmware/efi/efivars
ls: cannot access '/sys/firmware/efi/efivars': No such file or directory

上述输出表明以 BIOS 的方式引导,否则为 EFI

3.3 联网

  • 有线(我的笔记本没有网线接口只能无线= =)

  • 无线

    • 我采用了 wifi-menu ,直接在命令行输入即可,可以打开一个可视化界面,操作还是比较方便的

    • 如果想换 wifi,假设你当前连上的 wifi 存的名字这一项你输入的是 XWIFI(别给我说你忘了,默认会有一个= =),可以在 /etc/netctl 这个目录下找到,不想要就删了嘛对不对

    root@archiso ~ # rm -rf /etc/netctl/XWIFI
    • 网络状态检测:科学上网必备工具,如果说 google 是帮你搜索的,那么 baidu 就是帮你检测网络状态的
    root@archiso ~ # ping www.baidu.com

3.4 更新系统时间

root@archiso ~ # timedatectl set-ntp true

没有消息就是最好的消息

3.5 (FBI WARNING)分区与格式化

这部分操作一定要小心

  • 查看分区情况

    root@archiso ~ # fdisk -l
    Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
    ... ...
    Device            Boot    Start       End     Sectors     Size    Id  Type
    /dev/nvme0n1p1    *       4096    209965055   209960960   100.1G  7 HPFS/NTFS/exFAT
    /dev/nvme0n1p2        209965056   629395455   419430400   200G    7 HPFS/NTFS/exFAT

    /dev/nvme0n1p1 就是 win10 的 boot 分区, /dev/nvme0n1p2 它的 End 之后存在很大空间,这一块即为未分配空间,用于 arch linux

  • 创建引导分区

    BIOS 跳过

  • 创建根分区

    见图

    • 我的硬盘并非全新,所以如果你的硬盘是全新的一定要参考原文创建
    • 此外,需要注意的是,如果你的未分配空间在两个分区之间,在输入起始和结束扇区时一定要看好 Start 和 End,不是默认敲回车就好了!
    • 如果你在输入 w 之前有什么错误操作,完全可以输入 q 直接退出,这样错误操作不会被保存。但如果你已经输入了 w,那就自己想办法吧…
  • 格式化刚刚创建的分区

    自己的分区叫什么看清楚,别看见命令就敲…

    root@archiso ~ # mkfs.ext4 /dev/nvme0n1p3

    md出错了。。。具体什么原因我也没搞清楚,没事反正你现在什么也都还没有。回到 win10 重新把分区格式化了开始。这一次我选择把 /dev/nvme0n1p1/dev/nvme0n1p2 连在一起,不过按道理来说这个东西是没有影响的

3.6 挂载分区

自己的分区叫什么看清楚,别看见命令就敲…

这是 BIOS 引导方式的命令

root@archiso ~ # mount /dev//dev/nvme0n1p3

3.7 选择镜像源

镜像源的选择需要根据自己的地区来决定,相信看到这篇文章的大多都是 P.R. China 地区的,所以我们选择清华的源

root@archiso ~ # vim /etc/pacman.d/mirrorlist
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

:wq 保存并退出

3.8 安装基本包

这一步是安装最基本的 ArchLinux 包,需要联网

root@archiso ~ # pacstrap /mnt base base-devel

无错误输出即可

3.9 配置 fstab

生成自动挂载分区的 fastab 文件

root@archiso ~ # genfstab -L /mnt >> /mnt/etc/fstab

控制台无输出,需要检查输出生成的文件是否正确:

root@archiso ~ # cat /mnt/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/nvme0n1p3 UUID=...
# /dev/nvme0n1p3    /   ext4    rw,relatime,data=ordered    0 1

注意检查你的新分区是否挂载到了根分区

3.10 Chroot(Change root)

root@archiso ~ # arch-chroot /mnt

这一步将操纵权交给新安装的 Linux 系统,以后的操作都会在这个系统中进行。此外,如果以后系统出了问题,只需要重新插入 U 盘启动,将系统的根分区挂载到 /mnt,输入这条命令就可以进入系统修复了。

执行之后会发现终端变为这个样子:

[root@archiso /]#

3.11 设置时区

[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@archiso /]# hwclock --systohc

3.12 按照一些必备软件包

ArchLinux 下有个非常强大的包管理工具 pacman,安装命令格式为 pacman -S package_name

[root@archiso /]# pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager

按道理来说一路确认就可以了

3.13 设置语言选项

[root@archiso /]# vim /etc/locale.gen

将文件中以下四个语言前面的 # 去掉:

  • en_US.UTF-8 UTF-8
  • zh_CN.UTF-8 UTF-8
  • zh_HK.UTF-8 UTF-8
  • zh_TW.UTF-8 UTF-8

保存并退出,并使其生效:

[root@archiso /]# locale-gen
Generating locales...
  en_US.UTF-8 UTF-8... done
  zh_CN.UTF-8 UTF-8... done
  zh_HK.UTF-8 UTF-8... done
  zh_TW.UTF-8 UTF-8... done

配置默认语言:

[root@archiso /]# vim /etc/locale.conf
1: LANG=en_US.UTF-8

保存并退出

3.14 设置主机名

[root@archiso /]# vim /etc/hostname
1: jasonchan

第一行输入自己想设定的主机名,保存并退出。然后编辑 /etc/hosts

[root@archiso /]# vim /etc/hosts
127.0.0.1   localhost.localdomain   localhost
::1         localhost.localdomain   localhost
127.0.1.1   jasonchan.localdomain   jasonchan

保存并退出

3.15 设置 root 密码

[root@archiso /]# passwd

这个自己设置就好了,注意终端里 # 开头表示以 root 身份执行命令,普通用户身份是 $

3.16 安装 Intel-ucode(针对 Intel CPU)

[root@archiso /]# pacman -S intel-ucode

3.17 安装 Bootloader(针对 BIOS 引导)

采用 grub2

  • 安装 os-prober,用于配合 grub 检测已经存在的系统和自动设置启动选项

    [root@archiso /]# pacman -S os-prober
  • 安装 grub

    [root@archiso /]# pacman -S grub
  • 部署 grub

    注意最后一项是磁盘的名字,而不是刚才划出来的分区名

    [root@archiso /]# grub-install --target=i386-pc /dev/nvme0n1
    Installing for i386-pc platform.
    Installation finished. No error reported.
  • 生成配置文件

    [root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
    grub-probe: error: cannot find a GRUB drive for /dev/sda1. Check your device.map.
    Found Windows 10 on /dev/nvme0n1p1

    报了上述错误,据说重启再输入一遍这条命令即可,对我来说确实是这样,但是重启后一定要把 U 盘拔掉,报的错误是 /dev/sda1 ,这个分区在 U 盘上。

  • 检测是否安装成功

    [root@archiso /]# vim /boot/grub/grub.cfg

    文件尾部能够找到 win10 所在的分区

    如果还有其他错误参考这里

3.18 重启

[root@archiso /]# exit
[root@archiso /]# reboot

三、配置 ArchLinux

1. 必要配置

1.1 连接网络

注意你现在的系统还没有那么流弊,每次开机之后都要手动联网,甚至密码都要重新输入

  • 有线

    [root@archiso /]# dhcpcd
  • 无线

    [root@archiso /]# wifi-menu

1.2 创建交换文件

交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。之前我们通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。

[root@archiso /]# fallocate -l 512M /swapfile(分配交换空间)
[root@archiso /]# chmod 600 /swapfile(更改权限)
[root@archiso /]# mkswap /swapfile(设置交换文件)
Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
no label, UUID=...
[root@archiso /]# swapon /swapfile(启用交换文件)
[root@archiso /]# vim /etc/fstab(为交换文件设置入口)

最后新加一行输入 /swapfile none swap defaults 0 0

1.3 新建用户

[root@archiso /]# useradd -m -G wheel jasonchan
  • -m:在创建时同时在/home目录下创建一个与用户名同名的文件夹,具有以下优点:
    • 只要家目录不变,重装系统后只需要重新安装一下软件包(它们一般不存放在家目录),然后所有的配置都会从家目录中读取。
    • 可以在家目录不变的情况下更换发行版而不用重新配置环境。
    • 切换用户后所有的设置会从新的用户的家目录中读取,将不同用户的资料与软件设置等完全隔离。
    • 有些著名的配置文件比如vim的配置文件~/.vimrc,只要根据自己的使用习惯配置一次, 在另一个Linux系统下(例如你的服务器)把这个文件复制到家目录下,就可以完全恢复配置。
  • -G:把用户加入一个组
  • wheel:组名,后面介绍为什么加入这个组
[root@archiso /]# passwd jasonchan

1.4 安装和配置 sudo

  • 安装 sudo

    [root@archiso /]# pacman -S sudo
  • 配置 sudo

    [root@archiso /]# visudo

    专门用于编辑 sudo 的配置文件,能够帮助检查文件的格式,找到 # %wheel ALL=(ALL)ALL 去掉 # 注释,保存并退出。

    这一步将 wheel 这个组的所有用户都分配了 sudo 权限

2. 图形化界面

2.1 安装显卡驱动

大多数电脑是 Intel 的集显(不是集显也推荐按照集显安装驱动),NVIDIA 的独显驱动并非必需品。如果集显驱动装不上可以试一试独显的

[root@archiso /]# sudo pacman -S xf86-video-intel

2.2 安装图形服务

桌面环境需要图形服务的支持,这里选择开源图形服务 xorg, 安装其所有组件即可

[root@archiso /]# sudo pacman -S xorg

2.3 安装桌面环境

如果想自己选择,可以参考这里。本文仅对 xfceKDE(Plasma) 进行介绍

  1. xfce

    [root@archiso /]# sudo pacman -S xfce4 xfce4-goodies
  2. KDE(Plasma)

    [root@archiso /]# sudo pacman -S plasma kde-applications kde-l10n-zh_cn

以上两个任选其一即可,也可以都安装,默认是 KDE。安装完之后需要安装桌面管理器,这里采用 sddm,它可以帮助我们登录以及选择桌面环境

[root@archiso /]# sudo pacman -S sddm
[root@archiso /]# sudo systemctl enable sddm(开机自动启动)

2.4 配置网络

最好在安装完重启前执行

在没有图形化界面时我们采用的网络配置服务是 netctl,有了桌面环境之后可以使用 NetworkManager

[root@archiso /]# sudo systemctl disable netctl(禁用 netctl)
[root@archiso /]# sudo systemctl enable NetworkManager(启用 NetworkManager)
[root@archiso /]# sudo pacman -S network-manager-applet

至此,重启电脑就可以选择图形化界面和用户登陆了

四、自定义安装软件包

# TODO

Ref

  • 以官方Wiki的方式安装ArchLinux
  • ArchLinux安装后的必须配置与图形界面安装教程
  • ArchLinux你可能需要知道的操作与软件包推荐「持续更新」
  • Wireless network configuration
  • Arch Linux命令行配置WiFi网络连接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win10 上 安装 ArchLinux(BIOS 引导) 的相关文章

  • 问题:your cpu does not support kvm extensions

    问题 我的BIOS开启了CPU虚拟化 但是虚拟机仍然显示your cpu does not support kvm extensions 解决 1 关闭虚拟机 2 虚拟机上单击右键 设置 3 选择下图选项 4 重启虚拟机 问题解决
  • (一)win10安装hadoop 2.8.5(详细步骤)

    目录 1 JDK 2 Hadoop 2 1 下载 2 2 配置环境变量 2 3 配置文件 2 4 格式化hdfs 已解决 格式化总是报错 The markup in the document following the root eleme
  • 【win10】 设置应用开机自启动

    步骤如下 1 按Win r键 输入 shell startup 2 确定后会出现一个文件夹 把要开机启动的应用快捷方式放到里面 3 在任务管理器的启动里面进行设置 可以在状态字段选择启用或者禁用 放在文件夹里只是让它可以在任务管理器的启动里
  • INT 10, 13h 如何与属性一起使用?

    嘿 我试图理解 INT 10h 13h 19 它用 BIOS 中断 10 和 13h 写入字符串 我找到了下面有关放入不同寄存器的不同标志的信息 我仍然不明白的一件事是 BL 中应该包含什么 如果我只是想用这个函数编写一个字符串 BL 中应
  • 是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

    我正在尝试编写一个程序 该程序将成为 BIOS 选项 开机自检后 我希望应用程序有一个漂亮的 GUI 而不是基于文本 这有多种原因 本地化就是其中之一 我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制 是否可以使用MASM32
  • 引导加载程序如何读取 DVD(cd)?

    我有一个用汇编语言编写的第一阶段引导加载程序 我需要它从 DVD 或 CD 加载第二阶段引导加载程序 我只找到了从软盘或硬盘读取的示例 那里使用的中断是13h 在中断描述中它说它可以读取软盘和硬盘 我尝试使用 13h 来读取 CD 就好像它
  • Archlinux pip 和 setuptools 未升级

    终端命令 python V output Python 3 5 2 我想pip and setuptools更新于pycharm但发生了这个错误 错误 找不到 python 打包工具 pip 建议的解决方案 尝试从系统终端运行此命令 确保您
  • arch linux 上的 asp.net core 2.1 无法运行

    我已经在 Arch Linux 上使用 pacman 安装了最新版本的 net core sudo pacman S dotnet sdk Running dotnet info显示正确的版本 Host useful for support
  • 如何设置定时器

    有什么办法可以将计时器设置为 60 秒xor ah ah Enter Again xor ah ah I should put 60 seconds here int 16h The user should press S before 6
  • linux Wayland 显示多用户

    我使用摇摆合成器 当我在控制台中更改用户时 我无法显示 wayland 图形界面 它与 X 应用程序一起使用 su otherUser myApplicationWayland error XDG RUNTIME DIR not set i
  • 如何以编程方式启用 LAN 唤醒

    有没有办法以编程方式进入 BIOS 并为支持 LAN 唤醒功能的计算机打开该功能 理想情况下 解决方案应该是跨 BIOS 的 但使用单独的解决方案来打击每个主要供应商也是可以的 BIOS 配置是操作系统有意限制的内容 以避免病毒问题 以前有
  • 在 Archlinux 上无法找到或加载 Qt 平台插件“xcb”(Write!AppImage)

    正在尝试安装写入 Arch Linux 上安装了 qt5 freetype2 2 9 1 和 fontconfig 2 2 13 1 12 g5f5ec56 1 的 AppImage levi astize Write write This
  • 如何在 Archlinux 中使用 gcc 7.2 编译 gcc 6.4.0

    我正在尝试在 Archlinux 中与 gcc 7 2 独立编译 gcc 6 4 0 配置如下 configure prefix INSTALL PREFIX enable languages c c fortran enable thre
  • 找出 x86 引导加载程序中引导了哪个驱动器

    我正在为 x86 编写游戏引导加载程序 在启动早期的某一时刻 我需要将启动驱动器中的一些扇区加载到内存中 我使用中断 0x13 ah 02 来执行此操作 当我在虚拟机中尝试它时 它就像一个魅力 然而 当我将映像刻录到 USB 驱动器时 机器
  • 如何使用java获取BIOS信息?

    请告诉我是否可以使用 java 程序获取 BIOS 设置信息 我使用 Windows 7 作为操作系统 这取决于您要阅读的信息 Java 无法读取 BIOS 但 java 可以查询 WMI google for jWMI 这可能会获取您需要
  • 使用 int 13h 读取的扇区数量多于磁道上的扇区数量

    顺序是什么int 13h with ah 02h会读19部门起始于 C H S 0 0 1 提供了 2 个磁头 每磁道 18 个扇区 每面 80 个磁道的 软盘 磁盘几何结构 或者 更一般地说 当它到达磁道 0 的末尾 磁头 0 时会发生什
  • Arch Linux 中没有 OpenGL 3 标头

    我正在尝试使用 FreeGLUT 编译一个非常简单的 Hello world OpenGL 3 3 程序 在我找到的所有教程中 它们都包含标题 gl3 h 问题是我没有这样的头文件 ls l usr include GL total 216
  • 在linux中找不到syscall_table_32.S文件

    我正在使用linux headers 2 6 32 21虚拟机上的包 我要编写一个新的系统调用 我找到了其他文件来写入系统调用的缩写 但我找不到这个syscall table 32 S in arch x86 kernel 目录 请帮助我如
  • 使用 ruby​​-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误

    我在 Archlinux 上使用 ruby install 构建旧版本的 Ruby 时遇到了一些问题 我怀疑 ruby build 也会发生同样的情况 尝试安装 Ruby 2 1 5 2 1 6 2 3 0 2 3 1 2 3 4 后 我看
  • 生成唯一硬件 ID 的可靠方法

    问题 我必须为每个联网客户端提供唯一的 ID 例如 一旦客户端软件安装在目标计算机上 它 ID 应该持续存在 并且如果在同一台计算机和相同的操作系统安装上重新安装软件 它应该继续存在 如果以大多数方式修改硬件配置 除了更改主板 它不应该改变

随机推荐