vBox Arch UEFI LVM安装
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桌面自我感觉不好用

参考
- 安装指南:https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)
- 分区:https://wiki.archlinux.org/index.php/Partitioning_(简体中文)
- LVM:https://wiki.archlinux.org/index.php/LVM#Configure_mkinitcpio
- VirtualBox:https://wiki.archlinux.org/index.php/VirtualBox#Installation_in_EFI_mode
vBox Arch UEFI LVM安装的更多相关文章
- UEFI+GPT安装windows
首先bios开启uefi windows安装选择驱动器界面:F10 进入命令行: list disk select disk 0 clean convert gpt
- UEFI模式安装Win10和Linux双系统
最近心血来潮,想装一个Linux.Windows双系统,吸取上次安装的经验,这次一定都要使用UEFI模式启动,需要注意的是必须是支持此种启动模式的系统(一般解压之后都有efi文件夹不需要刻录),这次遇 ...
- Vbox中Ubuntu的安装和共享文件夹设置
1. 选择版本 1.1 Ubuntu桌面版与服务器版的区别 桌面版与服务器版,只要发布版本号一致,这两者从核心来说也就是相同的,唯一的差别在于它们的预期用途.桌面版面向个人电脑使用者,可以进行文字处理 ...
- SUSE linux 使用LVM安装系统和管理
引出 在我们安装好linux系统后会发现在需要修改磁盘分区的时候会比较困难,系统安装的/目录的文件系统要更改基本不太可能,其他目录如/home目录也比较困难.但是系统安装时要是采用的LVM管理的方式安 ...
- UEFI+GPT安装WIN7,WIN8/WIN10下安装WIN7双系统
一.BIOS更改 首先来bios更改:我们知道,uefi+gpt引导虽然出来的时间比较长,但是win7还不能完全的支持,所以在使用uefi+gpt安装win7的时候就会出现各种错误!所以我们在安装Wi ...
- Dell Latitude 3490 使用 UEFI+GPT 安装 Win7 x64
转载请注明出处!转载请注明出处!转载请注明出处! 公司近期采购了一批笔记本,由于刚好赶上Dell升级换代,原来的3480升级到了3490. 由于部分同事用不惯Win10系统,再加上有些软件不兼容,于是 ...
- Arch linux(UEFI+GPT)安装及后续优化教程
Arch Linux安装过程中需要从远程存储库获取软件包,电脑需要有效的互联网连接. 1.联网 查看是否有网 ping www.baidu.com 同步时间 timedatectl set-ntp t ...
- UEFI+GPT引导实践篇(二):UEFI引导安装64位Win7/Win8
下文是在联想Y480笔记本上以UEFI方式启动安装Windows8的全过程,安装Windows7过程基本相同.注意,如果你的电脑硬盘是MBR分区结构,安装过程中将要删除硬盘上所有数据,请安装前备份硬盘 ...
- win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
本教程简要介绍在UEFI 启动模式下在GPT分区表中,最简单的方法安装 Windows 10 x64 位系统.(并非傻瓜教程,安装者总要有一定的经验基础)下面先简单介绍一下UEFI和GTP. UEFI ...
随机推荐
- 有关this
this是Javascript函数内部的一个特殊对象,引用的是函数运行时的环境对象,也就是说,this是动态的(箭头函数除外),是在运行时进行绑定的,并不是在编写时绑定(箭头函数是编写时绑定). th ...
- 【Django模板006】
在前面的几节中我们都是用简单的django.HttpResponse来把内容显示到网页上,本节将讲解如何使用渲染模板的方法来显示内容. 1.创建一个zqxt_tmpl项目,和一个名称为learn的应用 ...
- NBC朴素贝叶斯分类器 ————机器学习实战 python代码
这里的p(y=1|x)计算基于朴素贝叶斯模型(周志华老师机器学习书上说的p(xi|y=1)=|Dc,xi|/|Dc|) 也可以基于文本分类的事件模型 见http://blog.csdn.net/app ...
- Docker Swarm Mode 学习笔记(聊聊 replicas)
在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3' se ...
- pip安装报错
ERROR: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat) python通过pip或者源码来安装某些模块时,这 ...
- 对java中路径的一些理解
开始前先贴一下项目结构 public class TestLocation { @Test public void test1(){ String s1 = Objects.requireNonNul ...
- script 修改 plist遇到的问题
一个sh脚本每次build的时候动态修改info.plist文件 达到动态更改版本号的目的 但是估计是因为缓存的缘故 每次只有clean之后再运行才会修改成功 看script执行的log 好像是先修改 ...
- Oracle创建表、修改字段类型
1.创建表 1.创建表 create table SCM_PER( --SCM_PER表名 ID ) primary key,--主键ID USERID ),--用户ID --Permission v ...
- 【转载】Jmeter 性能测试入门
[转载]Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...
- numpy 数组索引数组
在numpy中,数组除了可以被整数索引,还可以被数组索引. a[b]就是已数组b的元素为索引,读取数组a的值. 当被索引数组a是一维数组,b是一维或则多维数组时,结果维度维度与索引数组b相同. a = ...