Table of Contents
介绍
配置
- win10 x86_64
- VirtualBox 5.2.22
- archlinux-2018.12.01-x86_64
基础
- 必须有网络
- Arch Linux ISO镜像(根据国家和地区选择网站)
- vim基本操作
VirtualBox配置
- VirtualBox加载archLinux ISO基本操作,请参考VirtualBox fedora29 安装。
- 勾选 设置->系统->启用EFI(只针对某些操作系统)
请确保你的系统支持 - 取消勾选 设置->系统->硬件时钟使用国际标准时间(UTC)
保持VBox和本地win10系统时间一致
安装准备
- 当VirtualBox加载archlinux镜像后,若以EFI启动则显示“Arch Linux archiso x86_64 UEFI USB”
- 直接回车确认,等待片刻后,我们以root身份登录虚拟控制台
基础
-
键盘布局
默认为US美式键盘映射 -
验证启动模式
ls /sys/firmware/efi/efivars
若该目录存在则启用了UEFI模式
-
连接到网络
守护进程dhcpcd已被默认启用来探测有线网络设备,并会尝试连接ping www.baidu.com
-
更新系统时间
timedatectl set-ntp true
分区
- 分区工具
fdisk最大支持2.2T,想尝试新工具,本例使用parted分区。
可参考的分区工具表,如下
- 分区布局
和BIOS分区不同,UEFI分区必须有EFI系统分区,即ESP,文件系统为fat32
分区布局,如下
- 分区方案
-
首先给/boot分区,余下空间以LVM方式分区(采取本方案)
-
整个空间以LVM方式分区
-
100G空间分区布局
| 分区 | 大小 | 格式 | |-------+------+-------| | /boot | 548M | FAT32 | | / | 32G | ext4 | | swap | 4G | swap | | /home | rest | ext4 |
-
- 初次分区操作
-
所用parted指令如表
指令 功能 备注 parted /dev/sdX 操作sdX磁盘 X表示磁盘编号a、b、… p 查看分区相关信息 print指令缩写 rm number 删除分区编号 number分区编号 mklabel gpt 创建gpt分区表 mkpart primary 1 548 创建500M的主分区 单位为MB set 1 boot on 将编号1分区设置为boot分区 -
使用gpt分区表
此处parted可以指定/dev/sdaparted p mklabel gpt p
-
分区
分成两个分区,其中一个将作为boot分区,另一个进一步以LVM方式分区mkpart primary 1 548 mkpart primary 548 -1 p
-
设置分区编号1 Flags为ESP或boot分区
set 1 boot on p
-
设置分区编号2 Flags为LVM
退出parted使用cfdisk工具设置分区
-
- LVM分区操作
-
查看blk
lsblk
-
创建物理卷
由于初次分区只有两个分区,只有编号2分区采用LVM分区方案,故在/dev/sda2建立物理卷pvcreate /dev/sda2
-
建立卷组
将物理卷sda2加入到新建卷组arch中vgcreate arch /dev/sda2
-
建立逻辑卷
在arch卷组中建立root、home和swap逻辑卷lvcreate -L 32G arch -n root lvcreate -L 4G arch -n swap lvcreate -l +100%FREE arch -n home
-
格式化
-
esp格式化
mkfs.vfat -F32 /dev/sda1
-
lvm分区的格式化
mkfs.ext4 /dev/mapper/arch-root mkfs.ext4 /dev/mapper/arch-home mkswap /dev/mapper/arch-swap
用"fdisk -l"指令查看分区情况
挂载
-
lvm分区挂载
-
首先必须挂载根分区,然后才能挂载其它分区(包括boot分区)
mount /dev/mapper/arch-root /mnt mkdir /mnt/home mount /dev/mapper/arch-home /mnt/home
-
swap交换分区无需挂载
swapon /dev/mapper/arch-swap
-
找不到/dev/mapper/arch-?逻辑卷 ,可试一下
modprobe dm_mod vgscan vgchange -ay
-
-
esp分区挂载
mkdir -p /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi
-
确认是否已挂载
df -h
安装
选择镜像
-
将china相关放在前面
vim /etc/pacman.d/mirrorlist
-
确保网络正常
安装基本系统
pacstrap -i /mnt base base-devel
可按需选择安装程序,等待一会即可完成
配置
fstab
-
建立fstab
genfstab -U /mnt >> /mnt/etc/fstab
-
检查/mnt/etc/fstab是否正确
主要检查blkid命令显示分区UUID是否和fstab文件一致
chroot
arch-chroot /mnt
进入刚刚安装的系统
一些配置
-
时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
调整时间漂移
# hwclock --systohc --utc
-
本地化
-
由于新系统只安装了vi,故
# vi /etc/locale.gen
-
取消注释
en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8
-
生成本地化文件
# locale-gen
-
-
设置主机名
# echo naruto > /etc/hostname
-
root密码
# passwd
lvm2
-
由于使用了LVM,故需要在系统启动时中增加lvm2模块
编辑/etc/mkinitcpio.conf
找到类似HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
修改为
HOOKS="base udev autodetect modconf block lvm2 filesystems keyboard fsck"
-
修改mkinitcpio.conf文件后需要重新生成archlinux镜像
# mkinitcpio -p linux
若WARNING所示模块未安装,则可忽略WARNING
网络配置
开启有线网络
systemctl enable dhcpcd
系统引导
-
安装引导程序grub和efi管理工具
pacman -S grub efibootmgr --noconfirm
-
安装引导
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
-
会有问题,必须解决,否则无法生成引导文件,期待下个版本解决
WARNING: Failed to connect to lvmetad. Falling back to device scanning. WARNING: Device /dev/loop0 not initialized in udev database even after waiting 10000000 microseconds ...
-
解决方案
-
ctrl+D退出chroot环境
-
操作如下
# mkdir /mnt/hostlvm # mount --bind /run/lvm /mnt/hostlvm # arch-chroot /mnt # ln -s /hostlvm /run/lvm
-
-
-
生成引导配置
# grub-mkconfig -o /boot/grub/grub.cfg
整理新系统
-
退出chroot环境
-
卸载被挂载的分区
# umount -R /mnt
-
重启系统
# reboot
-
增加新账户
-
增加普通账户
useradd -m -g users -s /bin/bash naruto passwd naruto
-
增加sudo用户属性
chmod u+w /etc/sudoers echo 'naruto ALL=(ALL) ALL' >> /etc/sudoers
-
-
删除ISO文件
-
关机
shutdown -h now
-
删除“设置->存储->控制器:IDE”
-
引导界面
- 开机界面为UEFI Interactive Shell
- 三种解决方案
-
每次开机从shell中手动启动bootloader
\EFI\grub\grubx64.efi
-
把bootloader移到默认的路径/EFI/BOOT/BOOTX64.EFI
实际上可以把“EFI/grub/grubx64.efi”按照默认的方式拷贝,推荐
-
在ESP根目录创建一个startup.nsh脚本,添加内容为
\EFI\grub\grubx64.efi
-
网络管理
-
安装过程确认网络保持畅通
-
安装网络管理
# pacman -Syu networkmanager
图形界面安装
-
需要支持X
-
查看显卡类型
# lspci | grep -e VGA -e 3D
-
查看开源驱动
# pacman -Ss xf86-video
-
通用显卡
# pacman -S xf86-video-vesa
然而以上都不需要
-
虚拟机的显卡需要虚拟机支持
# pacman -S virtualbox-guest-utils 选择默认Linux内核 2)virtualbox-guest-modules-arch
或者从virtualBox选项 设备->安装增强功能 添加
-
-
X窗口管理系统
# pacman -S xorg-server xorg-xinit xorg-twm xorg-xclock xterm
测试xorg
# startx
-
桌面环境
# pacman -S lxqt
选装
# pacman -S oxygen-icons kwin 图标和kwin桌面,原生openbox不好看 # pacman -S xscreensaver 屏幕保护 # pacman -S numlockx 小键盘 # numlockx on
-
窗口管理器
lxqt建议使用sddm# pacman -S sddm # systemctl enable sddm.service # systemctl start sddm.service
-
安装字体
# pacman -S wqy-zenhei wqy-microhei ttf-dejavu
-
安装输入法
# pacman fcitx fcitx-im fcitx-configtool
设置环境变量,需在/etc/environment添加
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"
重启X桌面
-
声音
我不需要 -
应用程序安装
例如# pacman -S firefox
展示
- 只装了Firefox和kwin的效果图
- 终端调整了下设置
- 很多细节未调整,此外这个lxqt桌面自我感觉不好用
参考
-------------------------------------------
个性签名:混吃等死
-------------------------------------------
日常总结,均为原创,欢迎交流,转载请注明