archlinux 安装记录
安装前相关知识
BIOS引导启动系统
MBR分区表+BIOS启动
MBR把硬盘分为很多区块,同时这些区块都配上对应逻辑块地址,
MBR分区下每一个分区表的大小是固定的,MBR的第一个扇区内存有启动代码
启动代码是BIOS启动系统的关键,它负责引导启动操作系统
主引导代码–>第一个分区信息–>第二个分区信息–>第三个分区信息–>第四个分区信息–>硬盘有效标志
BIOS
BIOS : Basic Input Output System基本输入输出系统。
简单来说它用于加载电脑最基本的程序代码,而这些代码是存储在CMOS里面的,他同时初始化硬件,检测硬件功能及引导操作系统的任务。
UEFI引导启动系统
GPT分区表
GPT全称GUID磁盘分区表,表示这块分区表时全局唯一标识磁盘分区表。
分区表大小不固定,硬盘容量不再限制于2TB。
在GPT硬盘第一个数据块中也有MBR的引导表示也叫做PMBR
UEFI+GPT的系统不需要主引导记录这些东西,开机会快很多。
UEFI启动
UEFI:Unified Extensible Firmware Interface
统一的可扩展固件接口,可以直接预启动开始加载操作系统
可以把很多开机程序都省去(BIOS的加电自检,硬件初始化)
UEFI图形化界面更加直观,操作者进入BIOS后可以更直观查看各项数据(暂时理解为台式机的EFI BIOS系统界面)
UEFI启动不需要活动分区,不需要主引导记录,所以UEFI比大多数BIOS快,
区别主要在启动过程不同,UEFI省略很多的自检步骤,硬盘分区下他们也不同
名称 | example | need package | 描述 |
---|
fat | mkfs.fat -F 32 -n fat /dev/sdd1 | pacman -S dosfstools | mkfs.vfat and mkfs.msdos are both symlinks to mkfs.fat, they are the same utility |
exfat | mkfs.exfat -L exfat /dev/sdc2 | pacman -S exfatprogs | windows linux mac 都可访问 U盘使用此格式 (无arch wiki) |
btrfs | mkfs.btrfs -L btrfs /dev/sdc3 | pacman -S btrfs-progs | copy on write |
ext4 | mkfs.ext4 /dev/sdc4 | pacman -S e2fsprogs | |
dd命令制作启动盘
- 查看U盘
fdisk -l
- 如果u盘挂载,卸载掉,否则会提示设备资源正忙
umount /dev/sdd*
- 格式化u盘vfat格式文件系统 centos7 提示找不到目录
mkfs -t vfat -F 32 /dev/sdd1
mkfs.fat -F 32 /dev/sdd1
- 写入iso镜像到U盘
dd if=/root/archlinux.iso of=/dev/sdd1
- 查看进度和读写速度 新终端执行
watch -n 5 pkill -USR1 ^dd$
安装系统前检查机器
- 安装过程需要联网,并且配国内镜像源
- 联网工具
ip link
& wifi-menu
- 更新时间
timedatectl set-ntp true
- 检查启动模式
ls /sys/firmware/efi/efivars
- 看分区
fdisk -l
or fdisk -l /dev/sdb
or lsblk
磁盘分区
bios模式
1
2
3
4
| fdisk /dev/sdb
一个系统安装分区---sdb1
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mnt
|
UEFI模式 需要 GPT 分区表
- 固态盘
fdisk /dev/nvme0n1
/dev/nvme0n1p1
: 主引导分区 最少300Mmkfs.fat -F 32 /dev/nvme0n1p1
/dev/nvme0n1p2
: swap 交换分区 启用休眠 大小 >= 内存大小/dev/nvme0n1p3
: root 分区mkfs.btrfs -L root /dev/nvme0n1p3
- 机械盘(btrfs subvolumes)
mkfs.btrfs -L disk /dev/sdc
- home 用户
- var 系统日志
- code 保存代码
- data 保存数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| # 固态盘分区 格式化
fdisk /dev/nvme0n1
mkfs.fat -F 32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.btrfs -L root /dev/nvme0n1p3
# 机械盘 使用 btrfs subvolumes
mkfs.btrfs -L disk /dev/sdc
mount /dev/sdc /mnt
btrfs subvolume create /mnt/home
btrfs subvolume create /mnt/var
btrfs subvolume create /mnt/data
btrfs subvolume create /mnt/code
btrfs filesystem show
btrfs subvolume list /mnt
umount /mnt
# 挂载 准备装机
mount /dev/nvme0n1p3 /mnt
mkdir -p /mnt/boot /mnt/home /mnt/var /mnt/data /mnt/code
mount /dev/nvme0n1p1 /mnt/boot
mount -o subvol=home /dev/sdc /mnt/home
mount -o subvol=var /dev/sdc /mnt/var
mount -o subvol=data /dev/sdc /mnt/data
mount -o subvol=code /dev/sdc /mnt/code
lsblk
|
格式化时报错/dev/sdb5 is apparently in use by the system 解除占用
1
2
3
4
| cat /proc/partitions
dmsetup status
dmsetup remove_all
dmsetup status
|
开始安装系统
archlinuxcn
shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| vim /etc/pacman.d/mirrorlist
# 开头
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
# 安装系统
pacstrap /mnt base linux linux-firmware
# 生成挂载信息文件
genfstab -U /mnt >> /mnt/etc/fstab
# 切换到新系统
arch-chroot /mnt
# 安装软件包
pacman -S vi vim networkmanager openssh sudo
# 配置 archlinuxcn 源
vim /etc/pacman.conf
# 末尾
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
# 导入archlinuxcn GPG包
pacman -S archlinuxcn-keyring
#安装报错failed to install packages to new root
pacman-key --refresh-keys
# 设置时区
ln -sf /usr/share/zoneinfo/$Region/$City /etc/localtime
hwclock --systohc
# 本地化
vim /etc/locale.gen
# 取消注释
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
# 设置locale
vim /etc/locale.conf
LANG=en_US.UTF-8
# 生成locale信息
locale-gen
# 主机名
vim /etc/hostname
box
# hosts设置
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
52.192.72.89 github.com
# 设置root密码
passwd
# 添加用户
useradd -m caddy
# 设置 caddy 密码
passwd caddy
# 用户添加 sudo visudo 专门编辑 /etc/sudoers 需要 vi
visudo /etc/sudoers
caddy ALL=(ALL) ALL
# 网络
systemctl enable NetworkManager
# 无线网络
# gui
nmtui
# terminal
nmcli device wifi list
nmcli device wifi connect "your wifi name" password "your wifi password"
# openssh
systemctl enable sshd
## 禁止 root ssh 仅允许 caddy 用户 ssh
vim /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers caddy
# 安装grub
pacman -S grub efibootmgr
# 设置引导
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB
# 生成grub配置
grub-mkconfig -o /boot/grub/grub.cfg
exit
# 取消挂载 重启
lsblk
# 取消多个挂载目录
umount -R /mnt
lsblk
# 或者分别取消挂载
umount /mnt/boot
umount /mnt/code
umount /mnt/data
umount /mnt/var
umount /mnt/home
umount /mnt
lsblk
reboot
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| # 查看显卡型号
lspci | grep VGA
# 官方仓库提供的驱动包:
# # +----------------------+--------------------+--------------+
# # | | 开源 | 私有 |
# # +----------------------+--------------------+--------------+
# # | 通用 | xf86-video-vesa | |
# # +----------------------+--------------------+--------------+
# # | Intel | xf86-video-intel | |
# # +--------+-------------+--------------------+--------------+
# # | | GeForce 9+ | | nvidia |
# # + +-------------+ +--------------+
# # | nVidia | GeForce 8/9 | xf86-video-nouveau | nvidia-340xx |
# # + +-------------+ +--------------+
# # | | GeForce 6/7 | | nvidia-304xx |
# # +--------+-------------+--------------------+--------------+
# # | AMD/ATI | xf86-video-ati | |
sudo pacman -S xf86-video-intel(笔记本)
sudo pacman -S nvidia nvidia-utils(nvidia独立显卡)
|
SDDM
1
2
3
4
5
| su root
sddm --example-conifg > /etc/sddm.conf
ll /usr/share/sddm/themes
vim /etc/sddm.conf
# ... Current= maya
|
1
| pacman -S xorg xorg-server xorg-xinit xorg-apps
|
自动配置文件 参考进行个性化配置 nvidia-xconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| vim /etc/X11/xorg.conf
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS" "1"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "NoLogo" "1"
Option "RenderAccel" "1"
Option "TripleBuffer" "1"
Option "RegistryDwords" "PerfLevelSrc=0x3333"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
|
KDE图像化界面
1
2
3
| pacman -S plasma kde-applications
pacman -S sddm sddm-kcm
systemctl enable sddm
|
字体
1
2
3
4
5
| pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color
# 或者
pacman -S fcitx5 fcitx5-configtool fcitx5-qt fcitx5-gtk fcitx5-chinese-addons fcitx5-material-color
# 添加拼音
fcitx5-configtool
|
字体配置
1
2
3
4
5
6
7
8
| # kde使用此配置
## /etc/profile
fcitx5 # 开机启动
# i3 使用此配置
## ~/.config/i3/config
exec --no-startup-id fcitx5
|
virtualbox 安装 archlinux
注意
- virtualbox 开启 efi
- system/Motherboard/Extended Fature/Enbale EFI
- 系统/主板/启用 EFI
- 新增的虚拟硬盘默认为 MBR分区表
fdisk /dev/sda
输入 g 修改为GPT分区表 - virtual box windows 版本 不能正确加载grub 不能引导 EFI 会自动进到 Shell
- 手动执行grub引导脚步
\EFI\GRUB\grubx64.efi
- 注意观察日志 找到 引导程序目录 在Shell下执行以下操作
fs0:
进入FS0目录mkdir \EFI\boot
cp \EFI\GRUB\grubx64.efi \EFI\boot\bootx64.efi
- 之后手动执行
\EFI\boot\bootx64.efi
进入系统 再重启即可正常引导grub
- 安装过程没有区别
virtualbox archlinux 安装记录
磁盘分区 GPT分区表 + UEFI模式
- 机械盘
fdisk /dev/sda
/dev/sda1
: 主引导分区 最少300M/dev/sda2
: swap 交换分区 启用休眠 大小 >= 内存大小/dev/sda3
: btrfs 分区 subvolumes 子卷 root、var、home、datamkfs.btrfs -L all /dev/sda3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| # 分区 格式化
fdisk /dev/sda
mkfs.fat -F 32 /dev/sda1
mkswap -L swap /dev/sda2
mkfs.btrfs -L all /dev/sda3
# /dev/sda3 使用 btrfs subvolumes
mount /dev/sda3 /mnt
btrfs subvolume create /mnt/home
btrfs subvolume create /mnt/var
btrfs subvolume create /mnt/data
btrfs filesystem show
btrfs subvolume list /mnt
umount /mnt
# 挂载 准备装机
mount -o subvol=root /dev/sda3 /mnt
mkdir -p /mnt/boot /mnt/home /mnt/var /mnt/data
mount /dev/sda1 /mnt/boot
mount -o subvol=home /dev/sda3 /mnt/home
mount -o subvol=var /dev/sda3 /mnt/var
mount -o subvol=data /dev/sda3 /mnt/data
lsblk
|
格式化时报错/dev/sdb5 is apparently in use by the system 解除占用
1
2
3
4
| cat /proc/partitions
dmsetup status
dmsetup remove_all
dmsetup status
|
开始安装系统
archlinuxcn
shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
| vim /etc/pacman.d/mirrorlist
# 开头
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
# 安装系统
pacstrap /mnt base linux linux-firmware
# 生成挂载信息文件
genfstab -U /mnt >> /mnt/etc/fstab
# 切换到新系统
arch-chroot /mnt
# 安装基础软件包
pacman -S vi vim networkmanager openssh sudo
# 配置 archlinuxcn 源
vim /etc/pacman.conf
# 末尾添加
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
# 报错failed to install packages to new root
pacman-key --refresh-keys
# 设置时区
ln -sf /usr/share/zoneinfo/$Region/$City /etc/localtime
hwclock --systohc
# 本地化
vim /etc/locale.gen
# 取消注释 或者 新增
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
# 设置locale
vim /etc/locale.conf
LANG=en_US.UTF-8
# 生成locale信息
locale-gen
# 主机名
vim /etc/hostname
vbox
# hosts设置
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
52.192.72.89 github.com
# 设置root密码
passwd
# 添加用户
useradd -m caddy
passwd caddy
# 网络
systemctl enable NetworkManager
# 无线网络
# gui
nmtui
# terminal
nmcli device wifi list
nmcli device wifi connect "your wifi name" password "your wifi password"
# openssh
systemctl enable sshd
## 禁止 root ssh 仅允许 caddy 用户 ssh
vim /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers caddy
# 用户添加 sudo visudo 可以编辑 /etc/sudoers 需要 vi
visudo /etc/sudoers
caddy ALL=(ALL) ALL
# 安装grub
pacman -S grub efibootmgr
# 设置引导
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB
# 生成grub配置
grub-mkconfig -o /boot/grub/grub.cfg
exit
# 取消挂载 重启
lsblk
# 取消多个挂载目录
umount -R /mnt
lsblk
# 或者分别取消挂载
umount /mnt/boot
umount /mnt/code
umount /mnt/data
umount /mnt/var
umount /mnt/home
umount /mnt
lsblk
reboot
|