Virtualbox下开启UEFI固件安装Arch Linux虚拟机
Arch Linux是我最喜爱的Linux发行版之一。它采用滚动发行(rolling release),这意味着你不必每6个月升级到一个新的版本,只要经常更新软件包就行了。Arch Linux的安装过程对于用户来说是有点难度的,但在安装完成后使用起来非常容易方便。这篇教程在Virtualbox下开启UEFI固件,介绍如何安装Arch Linux。
Virtualbox开启UEFI固件
首先,按照平常的步骤用Virtualbox创建一个虚拟机。不过在安装系统之前我们在设置窗口下点击左侧栏的系统标签,然后勾选启用UEFI,点击确认OK按钮以使更改生效。
UEFI固件安装Arch Linux虚拟机
在启动虚拟机安装系统之前,我们需要在存储设置里添加Arch Linux的ISO镜像文件,不然启动虚拟机后会进入UEFI shell。
添加Arch Linux ISO镜像文件后,启动虚拟机。选择第一个选项以UEFI模式启动。
你将自动登录为root用户。
检查虚拟机是否可以访问互联网。
ping -c6 linuxdashen.com
如果你在物理机上安装Arch Linux,可以用下面的命令连接到Wi-Fi无线网络。
wifi-menu
将键盘布局设置为美国键盘。
loadkeys us
UEFI固件与GPT硬盘分区
现在我们对Virtualbox虚拟硬盘进行分区。我使用一个虚拟硬盘,所以这个虚拟硬盘的设备名为/dev/sda。由于我是在UEFI固件上安装Arch Linux的,所以硬盘采用GPT分区,并且硬盘需要有一个EFI系统分区。
使用parted分区编辑器将虚拟硬盘的分区模式设置为GPT。
parted /dev/sda mklabel gpt
可以使用这个命令来查看硬盘的分区模式。
parted /dev/sda -l
现在告诉parted我们将对/dev/sda进行分区。
parted /dev/sda
首先分一个EFI系统分区,大小为512MiB。分区类型为primary。
mkpart primary fat32 2048s 1050624s
注意,我采用扇区(sector)作为分区的单位大小,我的虚拟硬盘逻辑扇区和物理扇区大小都为512字节。上面的命令刚好可以划分一个512MiB的EFI系统分区。你的硬盘逻辑扇区和物理扇区的大小很可能不一致。
现在可以查看这个EFI系统分区。
unit MiB print
现在这个分区还不是EFI分区,为了让它变成EFI分区,我们将它的标识(flag)设置为boot。
set 1 boot on
再次查看这个分区就会看见它变成了EFI系统分区。
现在划分一个root分区,分区类型为primary。
mkpart primary ext4 1050625s 100%
100%的意思是使用从1050625扇区后的所有的空间。注意,我的EFI分区以1050624扇区结尾。我将剩下的所有空间都分配给root分区是因为我不划分swap交换分区和home分区。
然后,将/dev/sda1 EFI分区格式化成fat16文件系统,将/dev/sda2 root分区格式化成ext4文件系统。
mkfs -t fat /dev/sda1 mkfs -t ext4 /dev/sda2
将root分区挂载到/mnt目录下。
mount /dev/sda2 /mnt
在root分区下创建一个boot目录。
mkdir /mnt/boot
将EFI系统分区挂载到/mnt/boot/目录下。
mount /dev/sda1 /mnt/boot/
到了这里,分区就完成了。
选择一个Arch Linux镜像站点
编辑mirrorlist文件。
nano /etc/pacman.d/mirrorlist
要选择一个镜像站点,将镜像站点的地址复制到镜像列表的最前面就行了。比如,我将中科大(ustc)的Arch Linux镜像站复制到了最前面。
保存文件。
安装基本系统(base system)
使用pacstrap来安装基本系统。注意我们将root分区挂载到了/mnt目录下,所以下面的命令将基本系统安装在root分区。
pacstrap -i /mnt base
然后,生成一个fstab分区表文件。
genfstab -U -p /mnt >> /mnt/etc/fstab
使用chroot。
arch-chroot /mnt
生成locale。
nano /etc/locale.gen
找到en_US.UTF-8 UTF-8 以及所有以zh_CN开头的locale,去年它们前面的#符号。这就表示启用en_US以及zh_CN的locale。
生成/etc/locale.conf文件并将en_US.UTF-8设置为默认的locale。
echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8 local-gen
然后将时区设置成中国上海。
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装无线网络的工具。
pacman -S wireless_tools wpa_supplicant wpa_actiond dialog
如果要连接到无线网络,使用下面的命令。
wifi-menu
启用无线网卡。
systemctl enable net-auto-wireless.service
安装网络管理器以及常用的网络管理器扩展组件。
pacman -S networkmanger networkmanger-vpnc network-manger-applet networkmanger-pptp networkmanager-openconnect
启用网络管理器。
systemctl enable NetworkManager
配置pacman软件包管理器。
nano /etc/pacman.conf
找到repositories这一区域,其中[core] [extra] [community]这三个软件库是默认启用的。如果你需要在64位Arch Linux系统上安装和使用32位的软件包,那么必须启用[multilib]软件库。
在文件中找到下面两行,去年前面的#符号就启用了[multilib]软件库。
[multilib] Include = /etc/pacman.d/mirrorlist
保存文件后,更新软件库。
pacman -Sy
为root用户设置一个密码。
passwd root
创建一个普通用户,并将这个用户添加到wheel,storage,power用户组。
useradd -m -g users -G wheel,storage,power -s /bin/bash <username>
为这个用户设置一个密码。
passwd <username>
安装sudo工具。
pacman -S sudo
然后编辑/etc/sudoers文件。
EDITOR=nano visudo
找到这一行。
# %wheel ALL=(ALL) ALL
去年前面的#符号。保存文件。这表示允许wheel组的用户使用sudo来管理系统。
安装Grub启动管理器和EFI启动管理器。
pacman -S grub efibootmgr
将Grub boot loader安装在/dev/sda虚拟硬盘。
grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot
生成Grub配置文件。
grub-mkconfig -o /boot/grub/grub.cfg
退出chroot环境。
exit
重启虚拟机。
reboot
重启虚拟机后的安装
现在你将看到Grub2启动管理器。
以普通用户登录,然后安装alsa-utils。
sudo pacman -S alsa-utils
进入alsamixer声音配置工具。
alsamixer
MM代表静音。按M键取消静音。Master和PCM声道一定要取消静音。使用上下键调整音量
按ESC键退出alsamixer。使用下面的命令测试声卡是否正常工作。
speaker-test -c2
如果听见有声音,说明声卡在正常工作。按Ctrl+C键停止测试。
安装X窗口系统。
sudo pacman -S xorg-server xorg-xinit xorg-server-utils
安装mesa以启用3D支持。
sudo pacman -S mesa
查看系统的显卡。
lspci -k | grep -A 2 -i "VGA"
如果是Intel集成显卡,那么安装Intel的开源显卡驱动。
sudo pacman -S xf86-video-intel
如果是Nvidia显卡,那么安装Nvidia闭源显卡驱动。
sudo pacman -S nvidia lib32-nvidia-utils
ATI显卡驱动
sudo pacman -S nvidia lib32-nvidia-utils
Virtualbox虚拟显卡安装virtualbox-guest-utils。
sudo pacman -S virtualbox-guest-utils
其他显卡安装vesa显卡驱动。
sudo pacman -S xf86-video-vesa
安装X.org三个测试组件。
sudo pacman -S xorg-twm xorg-xclock xterm
使用这个命令测试X.org是否可以正常工作。
startx
如果看见了三个程序窗口,说明X.org在正常工作。
安装字体。dejavu是Linux系统的常见西文字体,ubuntu-font-family是ubuntu家族字体,wqy-microhei是文泉驿微米黑字体。wqy-zenhei是文泉驿正黑字体。如果不安装中文字体,则会出现中文乱码的现象。
sudo pacman -S ttf-dejavu ttf-ubuntu-font-family wqy-microhei wqy-zenhei
安装XFCE4桌面环境
sudo pacman -S xfce4 xfce4-goodies gamin firefox
在启动xfce桌面环境之前,我们要复制xinitrc这个文件到home目录下,然后编辑。
cp /etc/X11/xinit/xinitrc ~/.xinitrc nano ~/.xinitrc
注释掉最后5行命令,将下面一行命令添加到文件末尾。
exec startxfce4
保存文件后启动X窗口系统。
startx
你应该可以看见xfce桌面环境。
安装Slim登录管理器
如果你不想每次登录时都输入startx命令,那么可以安装一个登录管理器,如Slim。
sudo pacman -S slim slim-themes
启用Slim登录管理器。
sudo systemctl enable slim.service
编辑/etc/slim.conf文件来选择一个主题。
sudo nano /etc/slim.conf
找到这一行。
current_theme default
将它更改成:
current_theme archlinux-simplyblack
保存文件后重启虚拟机。你将看到Slim登录管理器。
如果要更改计算机名称,使用这条命令。
sudo hostnamectl set-hostname <your-hostname>
启用NTP时间同步。
timedatectl set-ntp true
你可能需要安装的一些软件包:
sudo pacman -S flashplugin vlc terminator gnome-tweak-tool ibus ibus-table ibus-pinyin htop parted gparted transmission-cli transmission-gtk wine wine-mono wine_gecko winetricks banshee
今天才发现Virtualbox的UEFI固件功能,对于学习UEFI固件和GPT硬盘分区非常有帮助。
一直看到过这个vbox里有uefi功能,但是一直没有试过。
建议加一个快速回到页面顶部的部件。