Table of Contents

  1. 介绍

    1. 配置
    2. 基础
  2. VirtualBox配置
  3. 安装准备
    1. 基础
    2. 分区
    3. 格式化
    4. 挂载
  4. 安装
    1. 选择镜像
    2. 安装基本系统
  5. 配置
    1. fstab
    2. chroot
    3. 一些配置
    4. lvm2
    5. 网络配置
  6. 系统引导
  7. 整理新系统
  8. 引导界面
  9. 网络管理
  10. 图形界面安装
  11. 展示
  12. 参考

介绍

配置

  • win10 x86_64
  • VirtualBox 5.2.22
  • archlinux-2018.12.01-x86_64

基础

  1. 必须有网络
  2. Arch Linux ISO镜像(根据国家和地区选择网站)
  3. vim基本操作

VirtualBox配置

  1. VirtualBox加载archLinux ISO基本操作,请参考VirtualBox fedora29 安装。
  2. 勾选 设置->系统->启用EFI(只针对某些操作系统)

    请确保你的系统支持
  3. 取消勾选 设置->系统->硬件时钟使用国际标准时间(UTC)

    保持VBox和本地win10系统时间一致

安装准备

  • 当VirtualBox加载archlinux镜像后,若以EFI启动则显示“Arch Linux archiso x86_64 UEFI USB”

  • 直接回车确认,等待片刻后,我们以root身份登录虚拟控制台

基础

  1. 键盘布局

    默认为US美式键盘映射

  2. 验证启动模式

    ls /sys/firmware/efi/efivars

    若该目录存在则启用了UEFI模式

  3. 连接到网络

    守护进程dhcpcd已被默认启用来探测有线网络设备,并会尝试连接

    ping www.baidu.com
  4. 更新系统时间

    timedatectl set-ntp true

分区

  1. 分区工具

    fdisk最大支持2.2T,想尝试新工具,本例使用parted分区。

    可参考的分区工具表,如下

  2. 分区布局

    和BIOS分区不同,UEFI分区必须有EFI系统分区,即ESP,文件系统为fat32

    分区布局,如下

  3. 分区方案
    • 首先给/boot分区,余下空间以LVM方式分区(采取本方案)

    • 整个空间以LVM方式分区

    • 100G空间分区布局

      | 分区  | 大小 | 格式  |
      |-------+------+-------|
      | /boot | 548M | FAT32 |
      | / | 32G | ext4 |
      | swap | 4G | swap |
      | /home | rest | ext4 |
  4. 初次分区操作
    • 所用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/sda

      parted
      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工具设置分区

  5. 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

格式化

  1. esp格式化

    mkfs.vfat -F32 /dev/sda1
  2. lvm分区的格式化

    mkfs.ext4 /dev/mapper/arch-root
    mkfs.ext4 /dev/mapper/arch-home
    mkswap /dev/mapper/arch-swap



    用"fdisk -l"指令查看分区情况

挂载

  1. 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
  2. esp分区挂载

    mkdir -p /mnt/boot/efi
    mount /dev/sda1 /mnt/boot/efi

  3. 确认是否已挂载

    df -h

安装

选择镜像

  1. 将china相关放在前面

    vim /etc/pacman.d/mirrorlist

  2. 确保网络正常

安装基本系统

pacstrap -i /mnt base base-devel

可按需选择安装程序,等待一会即可完成

配置

fstab

  1. 建立fstab

    genfstab -U /mnt >> /mnt/etc/fstab
  2. 检查/mnt/etc/fstab是否正确

    主要检查blkid命令显示分区UUID是否和fstab文件一致

chroot

arch-chroot /mnt

进入刚刚安装的系统

一些配置

  1. 时区

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

    调整时间漂移

    # hwclock --systohc --utc
  2. 本地化

    • 由于新系统只安装了vi,故

      # vi /etc/locale.gen
    • 取消注释

      en_US.UTF-8 UTF-8
      zh_CN.UTF-8 UTF-8
    • 生成本地化文件

      # locale-gen
  3. 设置主机名

    # echo naruto > /etc/hostname
  4. root密码

    # passwd

lvm2

  1. 由于使用了LVM,故需要在系统启动时中增加lvm2模块

    编辑/etc/mkinitcpio.conf

    找到类似

    HOOKS="base udev autodetect modconf block filesystems keyboard fsck"

    修改为

    HOOKS="base udev autodetect modconf block lvm2 filesystems keyboard fsck"
  2. 修改mkinitcpio.conf文件后需要重新生成archlinux镜像

    # mkinitcpio -p linux

    若WARNING所示模块未安装,则可忽略WARNING

网络配置

开启有线网络

systemctl enable dhcpcd

系统引导

  1. 安装引导程序grub和efi管理工具

    pacman -S grub efibootmgr --noconfirm
  2. 安装引导

    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

  3. 生成引导配置

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

整理新系统

  1. 退出chroot环境

  2. 卸载被挂载的分区

    # umount -R /mnt
  3. 重启系统

    # reboot
  4. 增加新账户

    • 增加普通账户

      useradd -m -g users -s /bin/bash naruto
      passwd naruto
    • 增加sudo用户属性

      chmod u+w /etc/sudoers
      echo 'naruto ALL=(ALL) ALL' >> /etc/sudoers
  5. 删除ISO文件

    • 关机

      shutdown -h now
    • 删除“设置->存储->控制器:IDE”

引导界面

  1. 开机界面为UEFI Interactive Shell

  2. 三种解决方案
    • 每次开机从shell中手动启动bootloader

      \EFI\grub\grubx64.efi
    • 把bootloader移到默认的路径/EFI/BOOT/BOOTX64.EFI

      实际上可以把“EFI/grub/grubx64.efi”按照默认的方式拷贝,推荐

    • 在ESP根目录创建一个startup.nsh脚本,添加内容为

      \EFI\grub\grubx64.efi

网络管理

  1. 安装过程确认网络保持畅通

  2. 安装网络管理

    # pacman -Syu networkmanager

图形界面安装

  1. 需要支持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选项 设备->安装增强功能 添加

  2. X窗口管理系统

    # pacman -S xorg-server xorg-xinit xorg-twm xorg-xclock xterm

    测试xorg

    # startx
  3. 桌面环境

    # pacman -S lxqt

    选装

    # pacman -S oxygen-icons kwin   图标和kwin桌面,原生openbox不好看
    
    # pacman -S xscreensaver        屏幕保护
    
    # pacman -S numlockx            小键盘
    # numlockx on
  4. 窗口管理器

    lxqt建议使用sddm

    # pacman -S sddm
    # systemctl enable sddm.service
    # systemctl start sddm.service
  5. 安装字体

    # pacman -S wqy-zenhei wqy-microhei ttf-dejavu
  6. 安装输入法

    # pacman fcitx fcitx-im fcitx-configtool

    设置环境变量,需在/etc/environment添加

    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"

    重启X桌面

  7. 声音

    我不需要

  8. 应用程序安装

    例如

    # pacman -S firefox

展示

  • 只装了Firefox和kwin的效果图
  • 终端调整了下设置
  • 很多细节未调整,此外这个lxqt桌面自我感觉不好用

参考

  1. 安装指南:https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)
  2. 分区:https://wiki.archlinux.org/index.php/Partitioning_(简体中文)
  3. LVM:https://wiki.archlinux.org/index.php/LVM#Configure_mkinitcpio
  4. VirtualBox:https://wiki.archlinux.org/index.php/VirtualBox#Installation_in_EFI_mode

vBox Arch UEFI LVM安装的更多相关文章

  1. UEFI+GPT安装windows

    首先bios开启uefi windows安装选择驱动器界面:F10 进入命令行: list disk select disk 0 clean convert gpt

  2. UEFI模式安装Win10和Linux双系统

    最近心血来潮,想装一个Linux.Windows双系统,吸取上次安装的经验,这次一定都要使用UEFI模式启动,需要注意的是必须是支持此种启动模式的系统(一般解压之后都有efi文件夹不需要刻录),这次遇 ...

  3. Vbox中Ubuntu的安装和共享文件夹设置

    1. 选择版本 1.1 Ubuntu桌面版与服务器版的区别 桌面版与服务器版,只要发布版本号一致,这两者从核心来说也就是相同的,唯一的差别在于它们的预期用途.桌面版面向个人电脑使用者,可以进行文字处理 ...

  4. SUSE linux 使用LVM安装系统和管理

    引出 在我们安装好linux系统后会发现在需要修改磁盘分区的时候会比较困难,系统安装的/目录的文件系统要更改基本不太可能,其他目录如/home目录也比较困难.但是系统安装时要是采用的LVM管理的方式安 ...

  5. UEFI+GPT安装WIN7,WIN8/WIN10下安装WIN7双系统

    一.BIOS更改 首先来bios更改:我们知道,uefi+gpt引导虽然出来的时间比较长,但是win7还不能完全的支持,所以在使用uefi+gpt安装win7的时候就会出现各种错误!所以我们在安装Wi ...

  6. Dell Latitude 3490 使用 UEFI+GPT 安装 Win7 x64

    转载请注明出处!转载请注明出处!转载请注明出处! 公司近期采购了一批笔记本,由于刚好赶上Dell升级换代,原来的3480升级到了3490. 由于部分同事用不惯Win10系统,再加上有些软件不兼容,于是 ...

  7. Arch linux(UEFI+GPT)安装及后续优化教程

    Arch Linux安装过程中需要从远程存储库获取软件包,电脑需要有效的互联网连接. 1.联网 查看是否有网 ping www.baidu.com 同步时间 timedatectl set-ntp t ...

  8. UEFI+GPT引导实践篇(二):UEFI引导安装64位Win7/Win8

    下文是在联想Y480笔记本上以UEFI方式启动安装Windows8的全过程,安装Windows7过程基本相同.注意,如果你的电脑硬盘是MBR分区结构,安装过程中将要删除硬盘上所有数据,请安装前备份硬盘 ...

  9. win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)

    本教程简要介绍在UEFI 启动模式下在GPT分区表中,最简单的方法安装 Windows 10 x64 位系统.(并非傻瓜教程,安装者总要有一定的经验基础)下面先简单介绍一下UEFI和GTP. UEFI ...

随机推荐

  1. ionic3开发环境的搭建 记录!

    总的来说都很顺利,毕竟已经打包成功在手机上面跑起来了,给的两个教程很给力,基本没有误差,照着步骤敲没问题,打包命令有所更新目前已修正,吃一堑长一智下面说下其中遇到的问题:1.第一点是ionic ser ...

  2. Spring Boot 监控利器 —— Actutor

    参考 CSDN-学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator 使用Actuator监控Spring Boot应用 程序猿DD-Spring Boot ...

  3. 还原真实,javascript之预编译 / 预解析

    今天在群里吹水时,有群友提出一个问题.我一看很简单,就立马给出了答案:因为存在变量提升,所以输出undefined.本以为无人反驳,可确招来口诛笔伐.作为写实派的我,一贯以来坚持真实是我的使命,岂能容 ...

  4. 如何安装mariadb服务器和解决 can't connect to local mysql server through socket...

    故障现象, ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.s ...

  5. 记flask连接容联云时提示172001,网络错误

    直接用sms.py发送没有问题,直接从写好的注册页面发送就不行.在网上查了不少方法,试过了依然没用,结果换了一个网络就好了,估计是部分网络无法正常发送..后来问了下是环境问题,开发环境不稳定

  6. 解决问题:怎样在页面获取数组和List集合的长度

    解决问题:怎样在页面获取数组和List集合的长度 我们在前端遍历后台数据的时候,经常是从后台传过来一个数组或List集合,在前端页面就可以使用JSTL的<c:For each>标签遍历数据 ...

  7. Socket编程 之使用fsockopen()函数

    fsockopen函数:初始化一个套接字连接到指定主机(hostname) get方式: client.php <?php //创建连接 $fp=fsockopen('localhost',80 ...

  8. 使用loadrunner编写webservice接口请求

    1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...

  9. Unity --- 设置选择的图片的格式

    static void Setting(string assetPath, int maxSize, TextureImporterFormat androidFormat, TextureImpor ...

  10. JVM垃圾回收(二)- Minor GC vs Major GC vs Full GC

    Minor GC vs Major GC vs Full GC 垃圾回收的活动会清理对内存中的不同区域,这些事件一般被称为Minor,Major以及Full GC events.本章我们会讨论这些清理 ...