首页 > 系统相关 >U盘安装Arch Linux

U盘安装Arch Linux

时间:2023-03-08 23:44:44浏览次数:60  
标签:U盘 启动 Arch 分区 UEFI Linux 安装 硬盘

此文大多数来自这篇文章,但是修改了里面一些错误的地方和优化了一些内容,以及增加了桌面安装部分和其他一些常用软件安装(wayland下的输入法/firefox等)

https://zhuanlan.zhihu.com/p/112541071

正文开始:

安装前的准备

在Windows还没有被消灭之前,先用它制作一个启动U盘,然后用这个U盘来安装Arch Linux。为完成这一操作,需要准备如下工具:

  1. Windows电脑开机(什么!你没有Windows?那你还要装什么Arch Linux?);
  2. 下载Arch Linux镜像文件——>清华大学开源软件镜像站
  3. 下载一个制作启动U盘的工具,这里我选择——>rufus;[这里注意,rufus写u盘镜像的时候,用u盘先转换为GPT格式[guid],可以用diskgenius来整盘转;然后rufus写镜像时分区类型选GPT)
  4. 一个容量2G以上的大U盘。

使用rufus制作启动U盘的步骤非常简单,选一下系统镜像文件,选一下自己的U盘(一般会软件自动选好的),点开始,安心等着就完事了。

来自rufus官方网站的截图

准备安装

把制作好的启动U盘插上电脑,开机,疯狂地按那个能够启动电脑BIOS的键。在BIOS中将U盘设为第一启动项,保存退出,就可以等着进入U盘里面的系统了。如果显示出如下界面,说明启动U盘制作成功了。选择第一个选项就可以开始安装系统了,如果进不去系统,说明启动U盘没有做好,可能需要重新制作一份。

等待进入启动U盘当中的Linux操作系统

等着系统自己启动一小会儿,当进入到如下界面以后,就可以开始安装系统了。

成功进入启动U盘当中的Linux系统

首先,我们需要确定自己的启动模式(UEFI/BIOS):

ls /sys/firmware/efi/efivars

如果提示不存在这个文件,那就说明我们的启动模式是BIOS,否则就是UEFI。下图是一个BIOS启动模式的示意图。

BIOS启动模式示意图

【UEFI启动模式】如果屏幕上出现一大把东西,那就说明电脑支持UEFI启动模式。UEFI启动模式需要在BIOS当中开启,如果老铁的硬件比较新,但又不是UEFI启动模式,可能需要去自己的BIOS当中去看看了。

UEFI启动模式示意图

然后,我们需要给电脑连上互联网。使用ip link查看电脑的所有网卡,然后用rfkill确保网卡能用。我的笔记本电脑使用无线网卡连接网络,对应网卡的名字是wlan0,这个名字在后面还会用到。

确定所有网卡的名字

使用命令行程序iwctl连接互联网。首先,键入iwctl进入该程序,可以发现终端窗口发生了一些微妙的变化。

进入iwctl程序后的界面示意图

输入help可以查看该程序的帮助文档,在这里我们主要使用几个以station开头的命令。

iwctl帮助文档当中值得注意的几个以station开头的命令

可以通过几个命令的素质四连可以很快乐地完成互联网的连接。分别是station list列出所有可用无线网卡的名字,然后用station <wlan> scan扫描当前可用的无线网(<wlan>需要换成自己的无线网卡名字),再然后使用station <wlan> get-networks展示扫描结果(在敲命令的过程中随时都可以使用TAB键进行命令补全),最后使用station <wlan> connect <name>去连接相应的无线网,需要输入无线网络的密码(显示为星号)。效果如下所示:

iwctl素质四连完成互联网连接

值得注意的是,中文名无线网络会被显示成方块块(就比如上面图片当中就有一个wifi的名字全是方块),所以把无线网名称设置为纯英文还是有必要的哈。完成无线网设置后,使用quit退出iwctl,回到熟悉的终端当中。

【有线连接】如果电脑插上了网线,那就应该能直接连上互联网了,无需任何设置。

使用ping -c 4 baidu.com测试一下是否成功地连上了互联网,如果输出和下图非常类似的话,那就是成功了。有时候可能不会立马就连上网,可以过十几秒再试试ping

测试是否成功地连接上了网络

正式开始安装系统了,首先更新一下系统时钟:

timedatectl set-ntp true 

什么输出都没有的话,就说明设置成功了。在Linux宇宙,啥输出都没有是最好的结果。可以用timedatectl status查看一下系统时钟状态,这里的时间应该是UTC时间。

设置系统时钟

现在开始做硬盘分区了,BIOS启动模式和UEFI启动模式的分区会有点不同,老铁们请移步查看archlinux wiki获取更多信息。输入cfdisk就会进入一个非常好看的文本用户界面。

【多硬盘情形】直接输入cfdisk默认处理的是/dev/sda,如果老铁有很多硬盘,可以先用fdisk -l查看所有硬盘名称,然后用cfdisk /dev/XXX处理相应硬盘。

如果是BIOS启动模式,首先删掉所有现有分区,然后新建两个分区,一个至少512M的swap分区,一个用掉所有剩余空间的分区。用type设定各个分区的格式,swap分区设定为82 Linux swap / Solaris,另一个分区取默认值83 Linux

【UEFI启动模式】如果是UEFI启动模式,同样删掉所有现有分区,然后新建三个分区,一个超过260M的boot分区,一个至少512M的swap分区,最后一个分区用掉所有剩余空间。用type设定各个分区的格式,swap分区设为82 Linux swap / Solarisboot分区设为EFI System,剩下的分区设为Linux root x86_64

选择write写入分区表,在出现的对话框中用yes确认写入后退出cfdisk。分区完成以后就要格式化一下硬盘,那个略大于512M的分区格式化为swap,命令如下

mkswap /dev/sdXY
swapon /dev/sdXY

这里面的sdXY要按照自己的实际情况来填,在我的例子当中我只有一个硬盘,同时swap分区是放在sda2分区的,这里我的参数就是/dev/sda2。然后再格式化我的/dev/sda1,相应的命令是mkfs.ext4 /dev/sda1。如果分了更多的区,那就要依次进行格式化。这个格式化操作会比较慢一些,略微等一下就好。如果不记得自己的分区表了,可以用cfdiskfdisk -l检查一下自己的分区表,可以从容量和类型等属性来判断具体某个分区是干什么用的。

【UEFI启动模式】如果是UEFI启动模式,boot分区要格式化为FAT32分区。

mkfs.cvfat -F32 /dev/XXX
格式化硬盘

格式化完成以后就要挂载硬盘,因为这个时候的系统是运行在U盘里的,而你要对电脑的硬盘进行操作,显然需要挂载一下,相当于把硬盘当成大号U盘插到小u盘上面。命令当中的/dev/sdXY需要根据实际情况设置为自己的根目录,也就是那个比较大,占掉所有剩余空间的硬盘分区。

mount /dev/sdXY /mnt

【UEFI启动模式】如果是UEFI启动模式,需要在/mnt下新建一个boot文件夹,然后把boot分区挂载到该文件夹下。如果有更多硬盘,也可以在这个时候用同样的方法挂载上来。

mkdir /mnt/boot
mount /dev/XXX /mnt/boot

正式安装

选择合适的镜像源,使用vim打开/etc/pacman.d/mirrorlist,找一个感觉速度比较快的镜像源用dd切掉,gg到首行按p粘贴一下,然后:wq存储并退出。这样在安装软件的时候,网速就会比较快了。当然也可以直接使用清华镜像源,请参考如下帮助文档。

archlinux | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror​ mirrors.tuna.tsinghua.edu.cn/help/archlinux/

调整完镜像源以后,可以刷新一下软件包缓存:

pacman -Syy

现在可以正式开始安装系统了,安装系统使用pacstrap,输入如下命令安装一些基础包:

pacstrap /mnt base linux linux-firmware base-devel

除了这些包以外,我们还可以安装许多其他的包,比较重要的是一定要安装一个网络管理器和一个文本编辑器,否则新系统启动后连不上网或者是改不了配置文件就傻了。

pacstrap /mnt networkmanager dhcpcd vim

networkmanager提供nmcli(命令行工具)和nmtui(文本界面工具)用来联网,dhcpcd用来动态获取ip地址,vim用来编辑配置文件。只要能连上网,别的软件都可以晚点装,目前装这么多东西就足够开机了。需要等待安装过程完成以后,再执行后续的操作,现在可以出去上个厕所先。

生成分区表:

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

如果挂载了其他的硬盘,那么这一步会把他们的相关信息写入配置文件,开机启动后会自动完成硬盘挂载。如果在前面的操作当中没有挂载其他硬盘,系统便不会把相关信息写入配置文件,系统启动后如果想要使用其他硬盘,还需要手动挂载。

进入新系统:

arch-chroot /mnt

设置时区(当然了,如果不在国内肯定就不设置上海的时区了哈):

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置硬件时间

hwclock --systohc

本地化设置,使用vim打开/etc/locale.gen,把en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8取消注释,保存退出。运行下面两条命令:

locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf

注意到这里设置的是en_US.UTF-8,这是因为中文在终端中可能会被显示为方块块。

设置网络(这里的myhostname取一个自己喜欢的名字):

echo myhostname >> /etc/hostname

使用vim打开/etc/hosts,在里面输入下面三行内容(myhostname换成上面自己取的名字,localdomain随便取一个自己喜欢的组织名):

127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname

设置root用户的密码(连输两遍,输入时无显示):

passwd

intel的CPU安装intel-ucodeamd的CPU安装amd-ucode。如果不太确定自己的cpu型号,可以安装一个neofetch,然后使用neofetch查看。

# 可选项
pacman -S neofetch
neofetch # 查看cpu和显卡信息

# 必选项
# 但是需要根据实际情况安装其中某一个就可以了 
pacman -S intel-ucode
pacman -S amd-ucode 

对于BIOS启动模式,安装grub用来启动系统,注意sdX后面没有数字:

pacman -S grub
grub-install --target=i386-pc /dev/sdX
grub-mkconfig -o /boot/grub/grub.cfg

【UEFI启动模式】对于UEFI启动模式,需要同时安装grubefibootmgr

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB 
grub-mkconfig -o /boot/grub/grub.cfg

退出系统,准备关机了:

exit

卸载刚刚挂载上来的硬盘(卸载失败也无所谓,不强求):

umount /mnt

重启电脑(黑屏的时候记得拔掉U盘,或者是在启动前重新进BIOS设置启动顺序):

reboot

进入系统

开机后显示这样的画面,就说明我们已经成功地安装好Arch Linux系统了。

等待登录

登录的时候输入root作为用户名,密码自然是自己在安装系统的时候设置好的密码。

登录成功

安装完成后

在使用NetworkManager联网之前,先启动必要的后台服务,然后用nmclinmtui(推荐)联网就可以了。

systemctl start  NetworkManager
systemctl enable NetworkManager
systemctl start  dhcpcd
systamctl enable dhcpcd

连接上互联网以后,我们需要创建一个普通用户账号,一直使用root不太好。username可以改成自己喜欢的用户名,-m表示创建用户的家目录~-G表示把用户放进wheel这个组。

useradd -m -G wheel username

创建完用户以后,设置一下该用户的密码:

passwd username

为了让新创建普通用户能够获得管理员权限,安装sudo包:

pacman -S sudo

安装完毕以后,使用vim打开/etc/sudoers,找到%wheel ALL=(ALL) ALL这一行取消注释,然后使用:wq!强制改写该文件,使得wheel这个组内的用户都可以使用sudo

使用exit退出root帐号,用普通用户登录系统后就可以正式开始使用archlinux系统了。

标签:U盘,启动,Arch,分区,UEFI,Linux,安装,硬盘
From: https://www.cnblogs.com/silentdoer/p/17196737.html

相关文章

  • Linux运维DAY08
    上周内容: 1.VmwareWorkStition(快照、克隆、网络) 2.Linux目录结构 (每个目录存放是什么类型的文件) 3.Linux路径定位/etc/hostname路径就是对文件定位的一种方......
  • binary-search
    二分查找分为3个流程:一开始,范围覆盖整个数组。将数组的中间项与T进行比较,如果T比数组的中间项要小,则到数组的前半部分继续查找,反之,则到数组的后半部分继续查找。如此,每......
  • 如何在 Linux 终端中有效地搜索文件【2】- 高级篇
    在本文中,让我们探索find命令的高级使用技巧。如果您是第一次学习 ​​find​​ 命令,我在之前的教程[1]中介绍了文件搜索的基础知识,并探讨了一些使用Linux快速搜索文件......
  • Rocky Linux 9 安装 Node.js
    一、概要1.环境(1)RockyLinux9.1(2)Node.js16.0二、安装1.准备(1)更新仓库sudodnfupdate-y(2)安装NPM依赖的构建工具sudoyumgroupinstall'Deve......
  • Linux安装Docker
    Linux安装Docker1.CentOS安装DockerDocker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月)EE即企业版,强调安全,付费使用,支持周期24个月。DockerCE分为s......
  • LeetCode:Search Algorithm
    LeetCode:SearchAlgorithm1\FirstuniquecharAlgorithmDesign利用字符数量的有限性,通过数组来映射(避免Hash_map的高复杂度)注意数组声明为intA[26]而不是ch......
  • 如何在 Linux 中启用 Shell 脚本的调试模式
    脚本是存储在一个文件的一系列命令。在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令。......
  • 常见 Linux 提权
    CommonLinuxPrivesc记录常见Linux提权的提权方式:水平提权,垂直提权。水平提权:这是您通过接管与您处于相同权限级别的不同用户来扩大您对受感染系统的影响的地方。......
  • linux修改系统时间为北京时间
    方法一:1.删除本地时间rm-rf/etc/localtime2.设置时区为上海ln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtime3.利用date查看时间修改成功方法二:在centos7中设置......
  • linux系列8.0系统升级openssl导致的连锁问题
    linux发行版8.0在升级openssl后,可能导致不能ssh以及su切换异常以及网络不通问题,控制台登录输入用户名后出现Login incorrect    在升级openssl后,异常状态如下:......