Virtualbox上面UEFI/GPT安装Archlinux
失败了N多次终于成功了,一点点看着ArchLinux的Wiki弄出来的。希望对朋友们有用。ArchLinux的Wiki有很详细的介绍,如果有不懂的可以参考:ArchLinuxWiki。首先明确下如果你想用UEFI+GPT方式,在建立虚拟机的时候必须选择64位的,不要问我为什么,我不知道,我是试出来的,后来才明白UEFI+GPT只能支持64位系统。还有,建立虚拟机之后,设置里面的系统选项卡启用EFI需要勾选。Arch物理资源配置:这些都需要看自己电脑配置的情况我的配置是:CPU2核心,内存1G,硬盘4G,其他默认。下面就启动进入安装了
1
2
#列出当前设备
lsblk
有两种分区类型:
GUID 分区表(GPT)
主引导记录(MBR)
Arch 安装盘中包含了多种分区工具,可以根据分区表的类型进行选择:
parted: 支持 GPT 和 MBR
fdisk, cfdisk, sfdisk: GPT 和 MBR
gdisk, cgdisk, sgdisk: GPT
注:我在使用Wiki上的parted命令时总是大小分不正确,可能我还是不太会用。这里我用gdisk命令。
1
2
#使用gdisk交互模式进行硬盘分区操作,下面x是lsblk命令列出的你的硬盘的块号,我的是a
gdisk /dev/sda
gdisk命令用法可以参考ArchLinuxWiki。
1
2
#首先建立新的空GUID分区表
o(不是数字0)
下面进行分区,分区方案仅供参考(总大小:4G)
[*]EFI启动分区:512M
[*]/(root)分区:1.5G
[*]swap交换分区:2G
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#使用n命令创建一个新的分区。
n
#输入分区序号,这里默认直接回车。
#输入起始地址,或者输入偏移量大小,这里还是使用默认的,直接回车。
#输入结束地址,或者输入偏移量大小,这里输入+512M,分给EFI启动。
+512M
#输入分区类型代码,EFI分区类型代码ef00。
ef00
#创建第二个分区,同上。
n
#输入分区序号。
#输入起始地址。
#输入结束地址,这里输入1.5G,分给/(root)分区。
+1.5G
#输入分区类型代码,linux文件系统分区类型代码8300,默认就是8300,所以直接打回车。
#创建第三个分区,同上。
n
#输入分区序号。
#输入起始地址。
#输入结束地址,这里输入2G,分给swap交换分区。
+2G
#输入分区类型代码,swap交换分区类型代码8200。
8200
#最后千万别忘了写入分区信息
w
分区结束,下面将分区进行格式化为需要的文件系统。
首先查看sda所有分区
1
lsblk /dev/sda
会出现三个分区
分区名称分区大小分区设备标号挂载点
EFI512M/dev/sda1
/1.5G/dev/sda2
swap2G/dev/sda3
EFI分区需要格式化为fat32或vfat32。
/(root)分区需要格式化为ext类型,推荐ext4。
swap交换分区需要格式化为linux swap类型。
1
2
3
mkfs.vfat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
挂载已经格式化好文件系统的分区。
先挂载 / (root) 分区,其它目录都要在 / 分区中创建然后再挂载。在安装环境中用 /mnt 目录挂载 root:
1
mount /dev/sda2 /mnt
然后挂载其余单独分区(除了 Swap),比如 /boot,/var。先创建目录,然后挂载分区:
建议将 EFI 系统分区挂载到 /mnt/boot。
1
2
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot
挂载swap分区:
1
swapon /dev/sda3
再看下分区表
1
lsblk /dev/sda
分区名称分区大小分区设备标号挂载点
EFI512M/dev/sda1/boot
/1.5G/dev/sda2/
swap2G/dev/sda3
至此就可以安装Arch了。
在安装系统之前需要调整一下镜像源地址,将中国的镜像源地址放在mirrirlist文件开头。
1
nano /etc/pacman.d/mirrorlist
1
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
更改镜像列表后请务必使用 pacman -Syy 强制刷新
1
pacman -Syy
使用 pacstrap 来安装基本系统。如果您想通过 AUR 或者 ABS 编译安装软件包,需要装上 base-devel:
1
pacstrap -i /mnt base base-devel
使用 -i 选项时会在实际安装前进行确认,可以不要。
生成分区表,用以下命令生成 fstab
1
genfstab -U -p /mnt >> /mnt/etc/fstab
切换到新系统:
1
arch-chroot /mnt /bin/bash
本地化:
1
nano /etc/locale.gen
添加以下字符编码:
1
2
3
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN GB2312
接着执行locale-gen以生成locale讯息:
1
locale-gen
1
echo LANG=en_US.UTF-8 > /etc/locale.conf
创建初始 ramdisk 环境(这个我还是没有弄明白是干吗的~!~)。
1
mkinitcpio -p linux
用 passwd 设置一个 root 密码:
1
2
3
passwd
输入密码
请再次输入密码
下面安装 bootloader,这里请注意,bootloader引导程序有很多选择,但是它们都是通过EFISTUB进行引导操作的,区别就是外观不同,兼容性不同,Wiki里面提供的是systemd-boot这个程序的安装方法以及ArchLinux通过systemd-boot的引导方法,想查看还有哪些bootloader可以使用请参考:bootloader。我首先使用的也是systemd-boot程序引导的ArchLinux,可以参考:systemd-boot
安装程序假定系统使用 GPT 分区表,具有 Unified Extensible Firmware Interface#EFI 系统分区,FAT32 格式,512 MiB 或更大,gdisk type 为 EF00). EFI 系统分区挂载到 /boot。
安装 systemd-boot 到 EFI 系统分区:
1
bootctl install
用nano编辑bootctl的配置文件,/boot/loader/loader.conf
1
2
3
4
5
6
#默认加载的启动配置文件,系统会在/boot/loader/entries目录下寻找arch.conf
defaultarch
#超时时间
timeout4
#是否允许用户编辑内核参数。1(默认值)是允许,0 是阻止。因为用户可以通过 init=/bin/bash 来绕过root密码并获得root权限,建议设置成0。
editor 0
增加启动选项nano新建/boot/loader/entries/arch.conf配置文件
用 blkid -s PARTUUID -o value /dev/sda2 找到/(root)分区的PARTUUID,请注意这里不是EFI分区,是/(root)分区!!!请将自己的PARTUUID替换下面的PARTUUID。
1
2
3
4
5
#要在EFI引导程序中显示的操作系统的名称
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
保存退出。
主机名
设置个您喜欢的主机名,例如:
1
echo ArchLinux20160222 > /etc/hostname
并在 /etc/hosts 添加同样的主机名:
1
2
3
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost ArchLinux20160222
::1 localhost.localdomain localhost ArchLinux20160222
离开 chroot 环境:
1
exit
关闭计算机:
1
poweroff
移除安装ISO文件。
再次启动,OK。
页:
[1]