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 ...
随机推荐
- ionic3开发环境的搭建 记录!
总的来说都很顺利,毕竟已经打包成功在手机上面跑起来了,给的两个教程很给力,基本没有误差,照着步骤敲没问题,打包命令有所更新目前已修正,吃一堑长一智下面说下其中遇到的问题:1.第一点是ionic ser ...
- Spring Boot 监控利器 —— Actutor
参考 CSDN-学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator 使用Actuator监控Spring Boot应用 程序猿DD-Spring Boot ...
- 还原真实,javascript之预编译 / 预解析
今天在群里吹水时,有群友提出一个问题.我一看很简单,就立马给出了答案:因为存在变量提升,所以输出undefined.本以为无人反驳,可确招来口诛笔伐.作为写实派的我,一贯以来坚持真实是我的使命,岂能容 ...
- 如何安装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 ...
- 记flask连接容联云时提示172001,网络错误
直接用sms.py发送没有问题,直接从写好的注册页面发送就不行.在网上查了不少方法,试过了依然没用,结果换了一个网络就好了,估计是部分网络无法正常发送..后来问了下是环境问题,开发环境不稳定
- 解决问题:怎样在页面获取数组和List集合的长度
解决问题:怎样在页面获取数组和List集合的长度 我们在前端遍历后台数据的时候,经常是从后台传过来一个数组或List集合,在前端页面就可以使用JSTL的<c:For each>标签遍历数据 ...
- Socket编程 之使用fsockopen()函数
fsockopen函数:初始化一个套接字连接到指定主机(hostname) get方式: client.php <?php //创建连接 $fp=fsockopen('localhost',80 ...
- 使用loadrunner编写webservice接口请求
1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...
- Unity --- 设置选择的图片的格式
static void Setting(string assetPath, int maxSize, TextureImporterFormat androidFormat, TextureImpor ...
- JVM垃圾回收(二)- Minor GC vs Major GC vs Full GC
Minor GC vs Major GC vs Full GC 垃圾回收的活动会清理对内存中的不同区域,这些事件一般被称为Minor,Major以及Full GC events.本章我们会讨论这些清理 ...