安装 ArchLinux 到U盘(四)安装Archlinux

创建时间 2018-01-14
更新时间 2021-03-14

再次重申:安装过程会格式化U盘,内有资料,请先备份,如有遗失,概不负责!!!

启动虚拟机

点击 Power on this virtual machine 启动 Installer 虚拟机

1

点击 Enter 启动Archlinux安装镜像

2

等待启动完毕,输入命令

lsblk

应该显示下面的内容

3


连接U盘到虚拟机

这时候U盘还没有连接至虚拟机,点击菜单VM > Removable Devices > USB Device > Connect(Disconnect from Host),将U盘连接至虚拟机,其中 USB Device 是U盘的名称,U盘不同名称应该也是不同的。

4

然后输入命令

lsblk

应该显示下面的内容,可以看到已经有 sdb 这个磁盘了

5


温馨提示(非必要)

如果觉得 Vmware 输入命令无法粘贴,特别无聊,如果Windows主机有 ssh 客户端的话,可以如下操作。否则可直接跳过。不过亦然建议使用该方法防止命令敲错的可能发生。


输入命令

systemctl start sshd

启动 ssh 服务

add_01

输入命令

passwd

修改镜像系统 root 密码,然后输入密码两次,分别回车,注意输入密码时屏幕没有回显。

add_02

输入命令

ifconfig

找到 192.168.xxx.xxx 的那个IP地址,这里是 192.168.111.135,然后记住IP地址,以备在 SSH 客户端中使用。

add_03

然后在主机打开控制台,输入命令

ssh root@192.168.111.135

add_04

然后输入 yes,然后输入刚才设置的密码,就能登录了

add_05

然后就能在 ssh 客户端中输入命令了,这时候就可以随意的复制粘贴了,不过复制粘贴的过程中注意命令和自身系统的适用性,可能不同系统中的网卡名称、磁盘名称并不一样。


U盘分区

以下的内容基于Archlinux官网的wiki,如果有不明白的地方可以参考官方Wiki

这里我们选择分三个区:

  • EFI分区,用于UEFI启动,必选,否则系统可能会在最新的计算机中无法启动
  • 根分区,用于安装Archlinux
  • U盘分区,可当作U盘使用,便于在Windows系统中安全的移除U盘

输入命令

fdisk /dev/sdb

进入分区程序

6

输入 o 开始分区

7

输入 n 新建EFI分区

8

点击 Enter 选择默认分区序号

9

点击 Enter 选择默认起始扇区

10

输入 +128M 新建EFI分区大小为128M

11

输入 n 新建根分区

12

点击 Enter 选择默认分区序号

13

点击 Enter 选择默认起始扇区

14

输入 +20G 新建根分区大小为20G,该分区容量可根据U盘容量自行决定,不一定非得是20G

15

输入 n 新建根分区

16

点击 Enter 选择默认分区序号

17

点击 Enter 选择默认起始扇区

18

点击 Enter 选择默认容量,剩余全部未分配分区

19

输入 p 查看分区信息

20

输入 w 写入分区信息

21

输入 lsblk 可以看到已经有 sdb 磁盘,下面有 sdb1sdb2sdb3 三个分区

22


格式化分区

输入如下命令,格式化 sdb1 为FAT32格式

mkfs.fat -F 32 /dev/sdb1

23

格式化 sdb3 为FAT32格式

mkfs.fat -F 32 /dev/sdb3

24

格式化 sdb2 为ext4格式,如果出现 Proceed anyway?,输入y继续格式化

mkfs.ext4 /dev/sdb2

25


挂载分区

挂载 sdb2/mnt

mount /dev/sdb2 /mnt

26

创建 /mnt/boot/efi 目录

mkdir -p /mnt/boot/efi

27

挂载 sdb1/mnt/boot/efi

mount /dev/sdb1 /mnt/boot/efi

28

sdb3 U盘分区无需挂载


关于文件编辑器:文章中所有的编辑器一律采用 nano 作为编辑器,主要是 nano 编辑器足够简单,防止一些人可能不是特别会使用其他的编辑器,例如 vim

选择镜像

这步非必选,可以直接跳转至下一步进行安装,如果发现下载速度不是很快,可以再回到这里编辑镜像,然后再试。

选择目录

cd /etc/pacman.d

29

将 mirrorlist 拷贝到 mirrorlist.bk

cp mirrorlist mirrorlist.bk

30

将所有中国的镜像写入 mirrorlist


这里的命令可以根据实际情况执行,因为 mirrorlist 中组织结构可能会发生变化2021-03-10

cat mirrorlist.bk | grep China -A 1 | grep -v '-' > mirrorlist

31

编辑镜像列表

nano mirrorlist

32

经测试,清华和163的镜像是最快的,这里可以根据实际测试来决定选择哪一个。可以在 Server 前面写入 # 来注释掉该镜像。

33

编辑完成之后 点击 CTRL + X 退出编辑

点击 y

34

点击 Enter,保存文件

35


安装系统 2019-12-16 更新

温馨提示:安装过程中如有异常发生,还请评论或邮件告知。如不能及时回复,以下为官方安装指导 https://wiki.archlinux.org/index.php/Installation_guide

经某位北京理工大学的同学邮件提醒,安装过程出现了异常,现已修正,特此感谢!2019-12-16

输入命令,安装系统,然后点击 Enter

pacstrap -i /mnt base base-devel linux linux-firmware

36

点击 Enter

37

点击 Enter

38

然后静静地等待安装完成。

39


配置系统

基本配置

生成文件系统表

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

40

进入新系统

arch-chroot /mnt

41

选择文字编码

nano /etc/locale.gen

42

将 zh_CN 开头的行全部取消注释,再找到 en_US.UTF-8 UTF-8也取消注释。 编辑完成之后保存。nano 的使用方法不再赘述

输入命令

locale-gen

43

在文件 /etc/locale.conf 中写入 LANG=en_US.UTF-8 保存

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

删除原 UTC 时区

rm -f /etc/localtime

45

设置计算机系统时区为上海

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

46

设置硬件时间为本地时间

hwclock --systohc --localtime

47

将主机名配置成 steven,这个名称可以自行更改

echo steven > /etc/hostname

48

输入 nano /etc/mkinitcpio.conf 找到下面这行

49

block 写到 udev 之后,然后保存,这样做就是为了让usb在启动的之后首先加载

50

生成启动镜像

mkinitcpio -p linux

51

设置 root 用户的密码,注意输入密码时没有回显

passwd

52

安装 ntfs 文件系统,以便访问 Windows 磁盘

pacman -S ntfs-3g

add_07

配置网络

安装网络工具

pacman -S iw wpa_supplicant wireless_tools net-tools

54

安装终端对话框

pacman -S dialog

55

其他配置

可以根据 安装 ArchLinux 到U盘(五)配置系统 来进行配置,这样可以省去一些工作,比如:

  • NetworkManager:自动配置网络,省去了一些复杂的操作
  • openssh: 支持 ssh 可以远程操作 Archlinux
  • 添加用户: ssh 默认不支持 root 登录,所以有必要新加一个普通用户
  • sudo: 普通用户可能需要以 root 用户的身份执行命令,所以这个必不可少

配置引导

配置BIOS(legacy)引导

安装引导程序

pacman -S grub

56

安装 BIOS 引导

grub-install --target=i386-pc /dev/sdb

57

输入 blkid , 将 sdb2 的 UUID 记下来

58

这里 UUID 是 97b5e415-46ab-4e35-a804-6ddaez5793ac,每个分区的UUID应该都是不同的,下面具体根据自己的UUID来做修改,这是为了用 UUID 做标识来启动操作系统,否则换了电脑硬盘标签变化就不能启动了

如果没有文件 /boot/grub/grub.cfg 可以使用如下命令生成该文件:

grub-mkconfig -o /boot/grub/grub.cfg

输入 nano /boot/grub/grub.cfg , 修改grub配置文件

59

将所有出现的UUID全部改成 sdb2 的UUID,过程略复杂,谨慎修改,然后保存

60

测试BIOS(legacy)引导

退出新系统

exit

61

关闭 Installer 虚拟机

shutdown -h now

62

新建测试虚拟机

参考新建虚拟机

选择安装源时,选 I will install the operating system later.

63

名称写成 Boot,或者可以自定义

64

选择磁盘时,选择 Use a physical disk(for advanced users)

65

然后选择 PhysicalDrive1,选择Use individual partitions

66

勾选前两个分区

67

如果发现分区信息不对,可以返回上一步,重新选择另一个PhysicalDrive,然后再试

点击 Power on this virtual machine 启动测试虚拟机

68

启动之后

69

这时候输入 用户名 root 和 passwd 设置的密码就可以登陆了

70

如果有USB的无线网卡,挂到虚拟机里,输入如下命令就可以选择无线网络了

wifi-menu

71

输入 shutdown -h now 关闭测试虚拟机

如果没有,可以去任何支持BIOS(legacy)引导的实体机试试,开机的时候狂按F2键,进入BIOS修改启动项,将U盘设置为第一个,然后重启,应该就可以进入U盘中的系统了

进入BIOS的功能不同的厂家生产的机器应该时不相同的,这个根据实际情况进项操作

如果关机之后,Windows 出现如下对话框,请点击 取消(Cancel)

72

配置UEFI引导

编辑 Installer 虚拟机,点击 Edit virtual machine settings

73

在Options选项卡,Advanced选项右侧,将Firmware type 改为UEFI,不要勾选 Enable Secure Boot,然后保存

74

和前文一样

  • 启动 Installer 虚拟机
  • 挂载根分区

    mount /dev/sdb2 /mnt
    
  • 挂载EFI分区

    mount /dev/sdb1 /mnt/boot/efi
    
  • 进入新系统

    arch-chroot /mnt
    

安装UEFI启动项

grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

75

测试UEFI引导

关闭 Installer 虚拟机

shutdown -h now

和前文一样,修改 Boot 虚拟机的启动模式为 UEFI,不要勾选 Enable Secure Boot

启动 Boot 虚拟机,这时应该可以启动了,然后关闭 Boot 虚拟机

可以去支持UEFI启动的实体机上试试,不过一定要关闭Secure Boot

Secure Boot

很遗憾,目前为止,我还没有找到解决 Secure Boot 的方法,所以只能先关闭Secure Boot 再启动U盘中的 Archlinux。

网上所有我见过的解决Secure Boot的方法,都无法解决U盘移动后,磁盘信息可能会发生变化的情况,而且一般情况下不同计算机中的磁盘信息显然都是不同的。

经测试,Secure boot 安装在硬盘中是可以使用的,具体参考 安装ArchLinux到硬盘


如果BIOS(legacy)和UEFI两种启动方式,都可以启动,那么说明Archlinux已经安装成功。这时 Installer 虚拟机就失去了它的作用,可以删除了。

实体机测试

普通PC可以在开机的时候狂按 F2 、F12、Enter 来调整启动的顺序,理论上就可以进入了。

MAC 机器在开机的时候,按住option键,出现启动选项之后,选择 EFI boot 就可以了。